前のページ|次のページ

Microsoft Accessで作成したXMLドキュメントのインポート

次の例では、Microsoft Accessデータベースにより作成されたXMLドキュメントをインポートします。このXMLドキュメントには埋め込み型のXMLスキーマが含まれているため、マークアップタイプとしてデフォルトのGENERICではなくMSACCESSを指定する必要があります。MSACCESSを指定すると、埋め込み型のスキーマから変数の属性が取得されます。
<?xml version="1.0" encoding="windows-1252" ?>
<root      xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:od="urn:schemas-microsoft-com:officedata">
   <xs:schema>
      <xs:element name="dataroot">
         <xs:complexType>
            <xs:sequence>
               <xs:element ref="SUPPLIERS"  minOccurs="0"
maxOccurs="unbounded" />
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="SUPPLIERS">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="HOMEPAGE" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="94" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="FAX" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="15" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="PHONE" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="15" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="COUNTRY" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="11" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="POSTALCODE" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="8" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="REGION" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="8" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="CITY" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="13" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="ADDRESS" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="45" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="CONTACTTITLE" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="28" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="CONTACTNAME" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="26" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="COMPANYNAME" minOccurs="0"
                           od:jetType="text" od:sqlSType="nvarchar">
                  <xs:simpleType>
                     <xs:restriction base="xs:string">
                        <xs:maxLength value="38" />
                     </xs:restriction>
                  </xs:simpleType>
               </xs:element>
               <xs:element name="SUPPLIERID" minOccurs="0"
                           od:jetType="double" od:sqlSType="double"
type="xs:double" />
            </xs:sequence>
         </xs:complexType>
      </xs:element>
   </xs:schema>
   <dataroot>
      <SUPPLIERS>
         <HOMEPAGE/>
         <FAX/>
         <PHONE>(272) 444-2222</PHONE>
         <COUNTRY>UK</COUNTRY>
         <POSTALCODE>EC1 4SD</POSTALCODE>
         <REGION/>
         <CITY>London</CITY>
         <ADDRESS>49 Franklin St.</ADDRESS>
         <CONTACTTITLE>Purchasing Manager</CONTACTTITLE>
         <CONTACTNAME>Charlotte Smith</CONTACTNAME>
         <COMPANYNAME>Exotic Flowers</COMPANYNAME>
         <SUPPLIERID>1</SUPPLIERID>
      </SUPPLIERS>
      <SUPPLIERS>
         <HOMEPAGE>#MYCAJUN.HTM#</HOMEPAGE>
         <FAX/>
         <PHONE>(512) 284-3677</PHONE>
         <COUNTRY>USA</COUNTRY>
         <POSTALCODE>70117</POSTALCODE>
         <REGION>LA</REGION>
         <CITY>New Orleans</CITY>
         <ADDRESS>P.O. Box 78934</ADDRESS>
         <CONTACTTITLE>Order Administrator</CONTACTTITLE>
         <CONTACTNAME>Shelley Martin</CONTACTNAME>
         <COMPANYNAME>New Orleans Cajun Foods</COMPANYNAME>
         <SUPPLIERID>2</SUPPLIERID>
      </SUPPLIERS>
   .
   .
   .
   </dataroot>
</root>
次のSASプログラムは、XMLドキュメントをSASデータセットとして変換します。
libname access xml '/u/myid/XML/suppliers.xml' xmltype=msaccess 1
   xmlmeta=schemadata; 1

proc print data=access.suppliers (obs=2); 2
   var contactname companyname;
run;
1 このLIBNAMEステートメントは、エンジンとしてXML Engineを指定した上で、ライブラリ参照名ACCESSを、XMLドキュメントの物理的な場所(完全なパス名、ファイル名、ファイル拡張子を含むもの)に割り当てます。デフォルトでは、XML EngineはGENERICマークアップの使用を仮定するため、XMLTYPE=MSACCESSオプションを使用することにより、XML EngineがこのXMLドキュメントをMSACCESSマークアップタイプとして読み込み、埋め込み型のスキーマから変数の属性を取得するようにします。オプションXMLMETA=SCHEMADATAを指定すると、入力XMLドキュメントからデータ内容とメタデータ関連情報の両方がインポートされます。
2 PRINTプロシジャにより出力を生成します。同プロシジャでは、OBS=データセットオプションを使用することで、先頭の2つのオブザベーションのみを出力しています。また、VARステートメントにより、指定の変数(列)のみを出力しています。
ACCESS.SUPPLIERSのPRINTプロシジャ出力
ACCESS.SUPPLIERSのPRINTプロシジャ出力
CONTENTSプロシジャを使用することで、ファイルの属性や、変換された各列(変数)の属性を出力に表示できます。これらの属性には、埋め込み型のXMLスキーマから取得した変数の型や長さなどが含まれます。埋め込み型のXMLスキーマが存在しない場合、属性の結果はデフォルト値になります。
proc contents data=access.suppliers;
run;
ACCESS.SUPPLIERSのCONTENTSプロシジャ出力
ACCESS.SUPPLIERSのCONTENTSプロシジャ出力
前のページ|次のページ|ページの先頭へ