前のページ|次のページ

XMLMapを使用し、階層構造を持つXMLドキュメントをエクスポートする

次の例では、既存のXMLMapを使用して、SASデータセットを特定のXMLドキュメント構造に対応付ける方法をXML Engineに伝えています。このXMLMapは、セクションXMLMapを使用し、XMLドキュメントを1つのSASデータセットとしてインポートするで、データセットNHL.TEAMSをインポートする際に使用されたものです。
エクスポートするSASデータセットNHL.TEAMSの内容は次のとおりです。
データセットNHL.TEAMSのPRINTプロシジャ出力
データセットNHL.TEAMSのPRINTプロシジャ出力
XMLMapを使用せずにデータをエクスポートした場合、結果として作成されるXMLドキュメントの構造は矩形となり、SASデータセット内のオブザベーションごとに1つのTEAMS要素が含まれることになります。例:
<?xml version="1.0" encoding="windows-1252" ?>
<TABLE>
  <TEAMS>
      <NAME>Thrashers</NAME>
      <ABBREV>ATL</ABBREV>
      <CONFERENCE>Eastern</CONFERENCE>
      <DIVISION>Southeast</DIVISION>
  </TEAMS>
  <TEAMS>
      <NAME>Hurricanes</NAME>
      <ABBREV>CAR</ABBREV>
      <CONFERENCE>Eastern</CONFERENCE>
      <DIVISION>Southeast</DIVISION>
  </TEAMS>
.
.
.
</TABLE>
各会議における部門別のデータ階層構造を持つXMLドキュメントとしてSASデータセットをエクスポートするには、XMLMapが必要となります。既存のXMLMapに対する唯一の変更は、OUTPUT要素を含めることです。次の例では、XMLMap構文の表記について説明します。
<?xml version="1.0" ?>
<SXLEMAP version="2.1"> 1
    <OUTPUT> 2
       <HEADING> 2
          <ATTRIBUTE  name="description" 3
                      value="Teams of the National Hockey League" />
       </HEADING>
       <TABLEREF name="TEAMS" /> 4
    </OUTPUT>

  <TABLE name="TEAMS">

        <TABLE-PATH syntax="XPath">/NHL/CONFERENCE/DIVISION/TEAM</TABLE-PATH>

        <COLUMN name="NAME">
          <PATH syntax="XPath">/NHL/CONFERENCE/DIVISION/TEAM/@name</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>STRING</DATATYPE>
            <LENGTH>30</LENGTH>
         </COLUMN>

        <COLUMN name="ABBREV">
          <PATH syntax="XPath">/NHL/CONFERENCE/DIVISION/TEAM/@abbrev</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>STRING</DATATYPE>
            <LENGTH>3</LENGTH>
         </COLUMN>

       <COLUMN name="CONFERENCE" retain="YES">
          <PATH syntax="XPath">/NHL/CONFERENCE</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>STRING</DATATYPE>
            <LENGTH>10</LENGTH>
        </COLUMN>

       <COLUMN name="DIVISION" retain="YES">
           <PATH syntax="XPath">/NHL/CONFERENCE/DIVISION</PATH>
            <TYPE>character</TYPE>
            <DATATYPE>STRING</DATATYPE>
            <LENGTH>10</LENGTH>
        </COLUMN>
    </TABLE>
</SXLEMAP>
1 XMLMapを使用してSASデータセットをXMLドキュメントとしてエクスポートするには、XMLMapのバージョン番号として1.9または2.1を指定する必要があります。
2 XMLMapを使用してSASデータセットをXMLドキュメントとしてエクスポートするには、XMLMapにOUTPUT要素を含める必要があります。OUTPUT要素には、1つ以上のHEADING要素と、1つのTABLEREF要素が含まれています。
3 ATTRIBUTE要素は、追加となるファイル属性情報を定義するものであり、ここではエクスポートされるXMLドキュメントの名前と説明を指定します。
4 TABLEREF要素は、エクスポートされるテーブルの名前を参照するものであり、ここではテーブルTEAMSを指定します。
次のSASステートメントは、NHLEXPORT.MAPという名前のXMLMapを使用して、SASデータセットNHL.TEAMSをXMLドキュメントNHLOUT.XMLにエクスポートします。
libname nhl 'C:\My Documents\myfiles';

filename out 'C:\My Documents\XML\nhlout.xml';

libname out xmlv2 xmltype=xmlmap xmlmap='C:\My Documents\XML\nhlexport.map';

data out.TEAMS;
   set nhl.teams;
run;
結果として生成されるXMLドキュメントの内容は次のようになります。
<?xml version="1.0" encoding="windows-1252" ?>
<!--    SAS XML Libname Engine (SAS92XML)
      SAS XMLMap Generated Output
      Version 9.04.01B0D09202012
      Created 2012-09-21T13:47:16
  -->

<NHL description="Teams of the National Hockey League">
   <CONFERENCE>Eastern
      <DIVISION>Southeast
         <TEAM name="Thrashers" abbrev="ATL" />
         <TEAM name="Hurricanes" abbrev="CAR" />
         <TEAM name="Panthers" abbrev="FLA" />
         <TEAM name="Lightning" abbrev="TB" />
         <TEAM name="Capitals" abbrev="WSH" />
      </DIVISION>
   </CONFERENCE>
   <CONFERENCE>Western
      <DIVISION>Pacific
         <TEAM name="Stars" abbrev="DAL" />
         <TEAM name="Kings" abbrev="LA" />
         <TEAM name="Ducks" abbrev="ANA" />
         <TEAM name="Coyotes" abbrev="PHX" />
         <TEAM name="Sharks" abbrev="SJ" />
      </DIVISION>
   </CONFERENCE>
</NHL>
前のページ|次のページ|ページの先頭へ