我需要创建一个类似于下面文本的XML输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Requests>
<RequestSetId>20170321</RequestSetId>
<RequestStream>Anniversary</RequestStream>
<ns0:Request xmlns:ns0="http://www.sample.com/xsd/BatchCenter_001">
<ns0:TrackAndTrace>
<ns0:CPAId>017</ns0:CPAId>
<ns0:ConversationId>bd48928c-8f5e-4a3d-e85b-2c5d67a5f0d1</ns0:ConversationId>
<ns0:EventId>4c8adceb-a48c-41b1-9ebc-a9d90507447e</ns0:EventId>
<ns0:CorrelationId>e85b928c-8f5e-4a3d-bd48-2c5d67a5f0d1</ns0:CorrelationId>
</ns0:TrackAndTrace>
<ns2:SendCustomerMessage_001_Rq xmlns:ns2="http://www.sample.com/CustomerCommunication_001/SendCustomerMessage_001">
<ns2:Location>
<ns2:Purpose>ForceEmail</ns2:Purpose>
<ns2:OutputProfile>HRM_OutputProfile_Batch</ns2:OutputProfile>
<ns2:ContactForm>
<ns2:CustomerMessageAddress>
<ns2:EmailAddress>NAME.LASTNAME@EMAIL.COM</ns2:EmailAddress>
</ns2:CustomerMessageAddress>
</ns2:ContactForm>
<ns2:CommunicationDate>2017-03-20</ns2:CommunicationDate>
</ns2:Location>
</ns2:SendCustomerMessage_001_Rq>
</ns0:Request>
</Requests>
我使用下面的示例XMLMap,并且我为TrackAndTrace错误地放置了结束标记。
<TABLE description="Requests" name="Requests">
<TABLE-PATH syntax="XPath">/Requests</TABLE-PATH>
<COLUMN name="RequestSetId" retain="YES">
<PATH syntax="XPath">/Requests/RequestSetId</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>20</LENGTH>
</COLUMN>
<COLUMN name="RequestStream" retain="YES">
<PATH syntax="XPathENR">/Requests/RequestSetId/RequestStream</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>20</LENGTH>
</COLUMN>
<COLUMN name="CorrelationId">
<PATH syntax="XPathENR">/Requests/{1}Request/{1}TrackAndTrace/{1}CorrelationId</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>40</LENGTH>
</COLUMN>
<COLUMN name="EventId">
<PATH syntax="XPathENR">/Requests/{1}Request/{1}TrackAndTrace/{1}EventId</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>40</LENGTH>
</COLUMN>
<COLUMN name="ConversationId">
<PATH syntax="XPathENR">/Requests/{1}Request/{1}TrackAndTrace/{1}ConversationId</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>40</LENGTH>
</COLUMN>
<COLUMN name="CPAId">
<PATH syntax="XPathENR">/Requests/{1}Request/{1}TrackAndTrace/{1}CPAId</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>8</LENGTH>
</COLUMN>
<COLUMN name="Purpose">
<PATH syntax="XPathENR">/Requests/{1}Request/{2}SendCustomerMessage_001_Rq/{2}Location/{2}Purpose</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>10</LENGTH>
</COLUMN>
<COLUMN name="OutputProfile">
<PATH syntax="XPathENR">/Requests/{1}Request/{2}SendCustomerMessage_001_Rq/{2}Location/{2}OutputProfile</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>25</LENGTH>
</COLUMN>
<COLUMN name="CommunicationDate">
<PATH syntax="XPathENR">/Requests/{1}Request/{2}SendCustomerMessage_001_Rq/{2}Location/{2}CommunicationDate</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>date</DATATYPE>
<FORMAT width="10">IS8601DA</FORMAT>
<INFORMAT width="10">IS8601DA</INFORMAT>
</COLUMN>
<COLUMN name="EmailAddress">
<PATH syntax="XPathENR">/Requests/{1}Request/{2}SendCustomerMessage_001_Rq/{2}Location/{2}ContactForm/{2}CustomerMessageAddress/{2}EmailAddress</PATH>
<TYPE>character</TYPE>
<DATATYPE>string</DATATYPE>
<LENGTH>100</LENGTH>
</COLUMN>
</TABLE>
</SXLEMAP>
这是我用来输出xml的代码:
libname XML 'C:\test_XML\XML';
filename out 'C:\test_XML\XML\Requests.xml';
libname out xml92 xmltype=xmlmap xmlmap='C:\test_XML\XMLMAP\req_map.map';
data out.Requests;
set XML.requests;
run;
此致 天使