BookmarkSubscribeRSS Feed
craig159753
Quartz | Level 8

Hi,

 

I am trying to understand the XMLV2 LIBNAME engine. I have got the code to work with a custom XML map, but the dataset is empty.

 

My XML file:

<?xml version="1.0" encoding="UTF-8"?>

<ODM xmlns="http://www.cdisc.org/ns/odm/v1.3" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:nciodm="http://ncicb.nci.nih.gov/xml/odm/EVS/CDISC" xs:schemaLocation="http://www.nci.nih.gov/EVS/CDISC ../schema/controlledterminology1-0-0.xsd" FileType="Snapshot" FileOID="CDISC_CT.SDTM.2020-12-18" Granularity="Metadata" CreationDateTime="2020-12-17T14:45:28" AsOfDateTime="2020-12-18T00:00:00" ODMVersion="1.3.2" Originator="CDISC XML Technologies Team (Terminology2ODM converter)" SourceSystem="NCI Thesaurus" SourceSystemVersion="2020-12-18">
    <Study OID="CDISC_CT.SDTM.2020-12-18">
        <GlobalVariables>
            <StudyName>CDISC SDTM Controlled Terminology</StudyName>
            <StudyDescription>CDISC SDTM Controlled Terminology, 2020-12-18</StudyDescription>
            <ProtocolName>CDISC SDTM Controlled Terminology</ProtocolName>
        </GlobalVariables>
        <MetaDataVersion OID="CDISC_CT_MetaDataVersion.SDTM.2020-12-18" Name="CDISC SDTM Controlled Terminology" Description="CDISC SDTM Controlled Terminology, 2020-12-18">            
            <CodeList OID="CL.C66742.NY" Name="No Yes Response" DataType="text" nciodm:ExtCodeID="C66742" nciodm:CodeListExtensible="No">
                <Description>
                    <TranslatedText xml:lang="en">A term that is used to indicate a question with permissible values of yes/no/unknown/not applicable.</TranslatedText>
                </Description>
                <EnumeratedItem CodedValue="N" nciodm:ExtCodeID="C49487">
                    <nciodm:CDISCSynonym>No</nciodm:CDISCSynonym>
                    <nciodm:CDISCDefinition>The non-affirmative response to a question. (NCI)</nciodm:CDISCDefinition>
                    <nciodm:PreferredTerm>No</nciodm:PreferredTerm>
                </EnumeratedItem>
                <EnumeratedItem CodedValue="NA" nciodm:ExtCodeID="C48660">
                    <nciodm:CDISCSynonym>NA</nciodm:CDISCSynonym>
                    <nciodm:CDISCSynonym>Not Applicable</nciodm:CDISCSynonym>
                    <nciodm:CDISCDefinition>Determination of a value is not relevant in the current context. (NCI)</nciodm:CDISCDefinition>
                    <nciodm:PreferredTerm>Not Applicable</nciodm:PreferredTerm>
                </EnumeratedItem>
                <EnumeratedItem CodedValue="U" nciodm:ExtCodeID="C17998">
                    <nciodm:CDISCSynonym>U</nciodm:CDISCSynonym>
                    <nciodm:CDISCSynonym>UNK</nciodm:CDISCSynonym>
                    <nciodm:CDISCSynonym>Unknown</nciodm:CDISCSynonym>
                    <nciodm:CDISCDefinition>Not known, not observed, not recorded, or refused. (NCI)</nciodm:CDISCDefinition>
                    <nciodm:PreferredTerm>Unknown</nciodm:PreferredTerm>
                </EnumeratedItem>
                <EnumeratedItem CodedValue="Y" nciodm:ExtCodeID="C49488">
                    <nciodm:CDISCSynonym>Yes</nciodm:CDISCSynonym>
                    <nciodm:CDISCDefinition>The affirmative response to a question. (NCI)</nciodm:CDISCDefinition>
                    <nciodm:PreferredTerm>Yes</nciodm:PreferredTerm>
                </EnumeratedItem>
                <nciodm:CDISCSubmissionValue>NY</nciodm:CDISCSubmissionValue>
                <nciodm:CDISCSynonym>No Yes Response</nciodm:CDISCSynonym>
                <nciodm:PreferredTerm>CDISC SDTM Yes No Unknown or Not Applicable Response Terminology</nciodm:PreferredTerm>
            </CodeList>
        </MetaDataVersion>
    </Study>
</ODM>

This is my XML map:

<?xml version="1.0" encoding="UTF-8"?>
<SXLEMAP version="1.2" name="SXLEMAP">
  <TABLE name="EnumeratedItem">
    <TABLE-DESCRIPTION>Terminology EnumeratedItem</TABLE-DESCRIPTION>
    <TABLE-PATH syntax="XPath">
      /ODM/Study/MetaDataVersion/CodeList/EnumeratedItem
    </TABLE-PATH>
    <COLUMN name="CL_NAME">
      <PATH syntax="XPath">/ODM/Study/MetaDataVersion/CodeList/@OID</PATH>
      <TYPE>character</TYPE>
      <DATATYPE>string</DATATYPE>
      <LENGTH>100</LENGTH>
    </COLUMN>
  </TABLE>
</SXLEMAP> 

When I look at the IN library, I see the EnumeratedItems dataset, but it is empty. The log is clean, so not sure what I am missing.

 

This is the SAS code used

filename in_map "C:\Documents\Example.map";

libname in xmlv2 "C:\Documents\Example.xml" xmlmap=in_map;
3 REPLIES 3
JosvanderVelden
SAS Super FREQ

Try it with the map file included below.

<?xml version="1.0" encoding="windows-1252"?>
<!-- ############################################################ -->
<!-- 2021-03-12T14:34:43 -->
<!-- SAS XML Libname Engine Map -->
<!-- Generated by XML Mapper, 904700.0.0.20200715190000_v940m7 -->
<!-- ############################################################ -->
<!-- ###  Validation report                                   ### -->
<!-- ############################################################ -->
<!-- XMLMap validation completed successfully. -->
<!-- ############################################################ -->
<SXLEMAP name="AUTO_GEN" version="2.1">

    <NAMESPACES count="4">
        <NS id="1" prefix="">http://www.cdisc.org/ns/odm/v1.3</NS>
        <NS id="2" prefix="xs">http://www.w3.org/2001/XMLSchema-instance</NS>
        <NS id="3" prefix="nciodm">http://ncicb.nci.nih.gov/xml/odm/EVS/CDISC</NS>
        <NS id="4" prefix="xml">http://www.w3.org/XML/1998/namespace</NS>
    </NAMESPACES>

    <!-- ############################################################ -->
    <TABLE description="ODM" name="ODM">
        <TABLE-PATH syntax="XPathENR">/{1}ODM</TABLE-PATH>

        <COLUMN class="ORDINAL" name="ODM_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="ODM_schemaLocation">
            <PATH syntax="XPathENR">/{1}ODM/@{2}schemaLocation</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>73</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_FileType">
            <PATH syntax="XPathENR">/{1}ODM/@FileType</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>8</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_FileOID">
            <PATH syntax="XPathENR">/{1}ODM/@FileOID</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>24</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_Granularity">
            <PATH syntax="XPathENR">/{1}ODM/@Granularity</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>8</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_CreationDateTime">
            <PATH syntax="XPathENR">/{1}ODM/@CreationDateTime</PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>datetime</DATATYPE>
            <FORMAT width="19">IS8601DT</FORMAT>
            <INFORMAT width="19">IS8601DT</INFORMAT>
        </COLUMN>

        <COLUMN name="ODM_AsOfDateTime">
            <PATH syntax="XPathENR">/{1}ODM/@AsOfDateTime</PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>datetime</DATATYPE>
            <FORMAT width="19">IS8601DT</FORMAT>
            <INFORMAT width="19">IS8601DT</INFORMAT>
        </COLUMN>

        <COLUMN name="ODM_ODMVersion">
            <PATH syntax="XPathENR">/{1}ODM/@ODMVersion</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>5</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_Originator">
            <PATH syntax="XPathENR">/{1}ODM/@Originator</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>55</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_SourceSystem">
            <PATH syntax="XPathENR">/{1}ODM/@SourceSystem</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>13</LENGTH>
        </COLUMN>

        <COLUMN name="ODM_SourceSystemVersion">
            <PATH syntax="XPathENR">/{1}ODM/@SourceSystemVersion</PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>date</DATATYPE>
            <FORMAT width="10">IS8601DA</FORMAT>
            <INFORMAT width="10">IS8601DA</INFORMAT>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="Study" name="Study">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study</TABLE-PATH>

        <COLUMN class="ORDINAL" name="ODM_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="Study_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="Study_OID">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/@OID</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>24</LENGTH>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="GlobalVariables" name="GlobalVariables">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}GlobalVariables</TABLE-PATH>

        <COLUMN class="ORDINAL" name="Study_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="GlobalVariables_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}GlobalVariables</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="StudyName">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}GlobalVariables/{1}StudyName</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>33</LENGTH>
        </COLUMN>

        <COLUMN name="StudyDescription">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}GlobalVariables/{1}StudyDescription</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>45</LENGTH>
        </COLUMN>

        <COLUMN name="ProtocolName">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}GlobalVariables/{1}ProtocolName</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>33</LENGTH>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="MetaDataVersion" name="MetaDataVersion">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion</TABLE-PATH>

        <COLUMN class="ORDINAL" name="Study_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="MetaDataVersion_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="MetaDataVersion_OID">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/@OID</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>40</LENGTH>
        </COLUMN>

        <COLUMN name="MetaDataVersion_Name">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/@Name</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>33</LENGTH>
        </COLUMN>

        <COLUMN name="MetaDataVersion_Description">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/@Description</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>45</LENGTH>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="CodeList" name="CodeList">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList</TABLE-PATH>

        <COLUMN class="ORDINAL" name="MetaDataVersion_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="CodeList_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="CodeList_OID">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/@OID</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>12</LENGTH>
        </COLUMN>

        <COLUMN name="CodeList_Name">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/@Name</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>15</LENGTH>
        </COLUMN>

        <COLUMN name="CodeList_DataType">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/@DataType</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>4</LENGTH>
        </COLUMN>

        <COLUMN name="CodeList_ExtCodeID">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/@{3}ExtCodeID</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>6</LENGTH>
        </COLUMN>

        <COLUMN name="CodeList_CodeListExtensible">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/@{3}CodeListExtensible</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>2</LENGTH>
        </COLUMN>

        <COLUMN name="CDISCSubmissionValue">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{3}CDISCSubmissionValue</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>2</LENGTH>
        </COLUMN>

        <COLUMN name="CDISCSynonym1">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{3}CDISCSynonym</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>15</LENGTH>
        </COLUMN>

        <COLUMN name="PreferredTerm">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{3}PreferredTerm</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>64</LENGTH>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="Description" name="Description">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description</TABLE-PATH>

        <COLUMN class="ORDINAL" name="CodeList_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="Description_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="TranslatedText" name="TranslatedText">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description/{1}TranslatedText</TABLE-PATH>

        <COLUMN class="ORDINAL" name="Description_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="TranslatedText_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description/{1}TranslatedText</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="TranslatedText_lang">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description/{1}TranslatedText/@{4}lang</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>2</LENGTH>
        </COLUMN>

        <COLUMN name="TranslatedText">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}Description/{1}TranslatedText</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>100</LENGTH>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="EnumeratedItem" name="EnumeratedItem">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem</TABLE-PATH>

        <COLUMN class="ORDINAL" name="CodeList_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="EnumeratedItem_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="EnumeratedItem_CodedValue">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/@CodedValue</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>2</LENGTH>
        </COLUMN>

        <COLUMN name="EnumeratedItem_ExtCodeID">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/@{3}ExtCodeID</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>6</LENGTH>
        </COLUMN>

        <COLUMN name="CDISCDefinition">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/{3}CDISCDefinition</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>70</LENGTH>
        </COLUMN>

        <COLUMN name="PreferredTerm">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/{3}PreferredTerm</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>14</LENGTH>
        </COLUMN>

    </TABLE>

    <!-- ############################################################ -->
    <TABLE description="CDISCSynonym" name="CDISCSynonym">
        <TABLE-PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/{3}CDISCSynonym</TABLE-PATH>

        <COLUMN class="ORDINAL" name="EnumeratedItem_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN class="ORDINAL" name="CDISCSynonym_ORDINAL">
            <INCREMENT-PATH beginend="BEGIN" syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/{3}CDISCSynonym</INCREMENT-PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>integer</DATATYPE>
        </COLUMN>

        <COLUMN name="CDISCSynonym">
            <PATH syntax="XPathENR">/{1}ODM/{1}Study/{1}MetaDataVersion/{1}CodeList/{1}EnumeratedItem/{3}CDISCSynonym</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>string</DATATYPE>
            <LENGTH>14</LENGTH>
        </COLUMN>

    </TABLE>

</SXLEMAP>

The map-file was created using the automap with XML feature in the SAS XLM Mapper.

 

craig159753
Quartz | Level 8

Hi @JosvanderVelden 

 

Thanks for getting back to me, oddly this partially worked. I only get one table out "EnumeratedItem", however looking at the map you provided I have a few questions
1. What about the other tables defined in the map, where are they? (GlobalVariables, MetadataVersion, CodeList, etc.)

2. How do you control the column names in the tables, e.g. the column names in the EnumeratedItem are called CL_NAME, CL_LABEL, CL_CODE, etc.

 

Thanks

Craig

JosvanderVelden
SAS Super FREQ
You can read these papers to get to know the basics of the SAS XML Mapper:
https://www.lexjansen.com/mwsug/2011/sas101/MWSUG-2011-S107.pdf
https://www.lexjansen.com/nesug/nesug10/ff/ff14.pdf

To download the XM Mapper and try it yourself use: https://support.sas.com/downloads/index.htm#anc_S. Select the latest version or if you already have sas installed choose the version that has the same release as your sas installation.

I tested with the following code and see all tables:
filename in_map "/home/jvelden0/SASCommunities/example.map";
libname in xmlv2 "/home/jvelden0/SASCommunities/example.xml" xmlmap=in_map;
filename in_map2 "/home/jvelden0/SASCommunities/example2.map";
libname in2 xmlv2 "/home/jvelden0/SASCommunities/example.xml" xmlmap=in_map2;
Note: your map-file is example.map; example2.map is the one created by SAS XML Mapper.

Best regards, Jos

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 566 views
  • 0 likes
  • 2 in conversation