前のページ|次のページ

メタデータとは別にXMLドキュメントをエクスポートする

次の例では、SASデータセットからXMLドキュメントをエクスポートする際に、メタデータ関連情報を含める別のファイルを指定します。この例は、XMLMETA=オプションとXMLSCHEMA=オプションの使い方を示すものであり、Microsoft Accessデータベースにより作成されたSASデータセットを使用しています。
まず、SASデータセットINPUT.SUPPLIERSのCONTENTSプロシジャ出力は次のようになります。
INPUT.SUPPLIERSのCONTENTSプロシジャ出力
INPUT.SUPPLIERSのCONTENTSプロシジャ出力
次のSASプログラムは、SASデータセットINPUT.SUPPLIERSからXMLドキュメントをエクスポートします。
libname input 'C:\My Documents\myfiles'; 1

filename xsd 'C:\My Documents\XML\suppliers.xsd'; 2

libname output xml 'C:\My Documents\XML\suppliers.xml' xmltype=msaccess
   xmlmeta=schemadata xmlschema=xsd; 3

data output.suppliers; 4
   set input.suppliers;
run;     
1 最初のLIBNAMEステートメントは、ライブラリ参照名INPUTを、SASデータセットSUPPLIERSが格納されるSASライブラリの物理的な場所に割り当てます。
2 続くFILENAMEステートメントは、ファイル参照名XSDを、メタデータ関連情報が格納される別の外部ファイルの物理的な場所に割り当てます。
3 2番目のLIBNAMEステートメントは、エンジンとしてXML Engineを指定した上で、ライブラリ参照名OUTPUTを、エクスポートされたXMLドキュメントが格納されるファイルの物理的な場所(完全なパス名、ファイル名、ファイル拡張子を含むもの)に割り当てます。エンジンオプションとして次のものが指定されています。
  • XMLTYPE=MSACCESSは、Microsoft Accessデータベース用のマークアップ標準をサポートします。
  • XMLMETA=SCHEMADATAを指定すると、エクスポートされるマークアップにデータ内容とメタデータ関連情報の両方が含められます。
  • XMLSCHEMA=には、先行するFILENAMEステートメントでメタデータ関連情報が格納される別の外部ファイルに割り当てられたファイル参照名を指定します。
4 続くDATAステップは、SASデータセットINPUT.SUPPLIERSを読み込み、その内容をMicrosoft AccessデータベースのXMLマークアップ形式でXMLドキュメントSuppliers.XMLに出力します。その後、別の外部ファイルSuppliers.XSDにメタデータ情報を出力します。
結果として作成されるXMLドキュメントの内容の一部をXMLドキュメントSuppliers.XMLの内容に示します。別のファイルに格納されるメタデータ情報をメタデータ情報を格納した別ファイルSuppliers.XSDの内容に示します。
XMLドキュメントSuppliers.XMLの内容
<?xml version="1.0" encoding="windows-1252" ?> <dataroot  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:od="urn:schemas-microsoft-com:officedata" xsi:noNamespaceSchemaLocation="suppliers.xsd"> <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>
メタデータ情報を格納した別ファイルSuppliers.XSDの内容
<?xml version="1.0" encoding="windows-1252" ?> <xs:schema 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: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>
前のページ|次のページ|ページの先頭へ