# RXS_OpenDom()

This subprocedure initializes DOM parsing for a specified chunk of XML.

## Subprocedure Prototype

### IBM i 6.1+

```rpgle
      // Returns an RXS_ParseDOMDS_t which contains information and pointers used
      //   by subsequent DOM parsing APIs.
     D RXS_OpenDom     PR                  Extproc('RXS_OpenDom') Opdesc
     D                                     Like(RXS_ParseDOMDS_t)

      // Chunk of XML to be used for subsequent DOM operations.
     D  Xml                                Like(RXS_Var16Mv_t) Const
     D                                     Options(*Omit:*Varsize)

      // Holds RXS_OpenDomDS_t used to set up initial DOM parsing options.
     D  DS                                 LikeDS(RXS_OpenDomDS_t)
     D                                     Options(*Nopass:*Varsize)
```


## Example Code

### IBM i 6.1+

#### Example 1
```rpgle
      *--------------------------------------------------------------
      * This example demonstrates configuring DOM parsing using a RXS_ParseDOMDS_t
      *  datastructure.
      *--------------------------------------------------------------
     H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

      /copy QRPGLECPY,RXSCB

     D OpenDomDS       DS                  LikeDS(RXS_OpenDOMDS_t)
     D                                     Inz(*LIKEDS)            
     D RootDomDS       DS                  LikeDS(RXS_PraseDOMDS_t)
     D                                     Inz(*LIKEDS)
      /free
       reset OpenDomDS;   
       reset RootDomDS;
                                                        
       OpenDomDS.InputCcsid = RXS_CCSID_UTF8;                               
       RootDomDS = RXS_OpenDom( gXmlResponse : OpenDomDS );                 
       
       gXPath = RXS_XPath( '/*:Envelope/*:Body/*:FahrenheitToCelsius' +     
         'Response/*:FahrenheitToCelsiusResult' );        
       
       gCelsius = %Dec( RXS_ParseDomToText( gXPath : RootDomDS ) : 11 : 7 );
       
       RXS_CloseDom( RootDomDS );

       *INLR = *ON;
      /end-free
```

## Data Structures

### RXS_OpenDomDS_t

```rpgle
     D RXS_OpenDomDS_t...
     D                 DS                  Qualified Template Inz

     D   ReturnedErrorInfo...
     D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz

     D   OnErrorMessageType...
     D                               10I 0

      // Specifies the CCSID of the XML being parsed.
     D   InputCcsid...
     D                               10I 0

      // Specifies the CCSID the parsed data will be converted to.
     D   OutputCcsid...
     D                               10I 0

      // Specifies an IFS path to an XML file to parse instead of the Input parm.
     D   Stmf...
     D                                     Like(RXS_Var1Kv_t)
```

