この例では、次の SQLXMLOLEDB プロバイダー固有のプロパティの使用を示します。
ClientSideXMLBase PathMapping Schema
このサンプル ADO アプリケーションでは、XSD マッピング スキーマ (MySchema.xml) に対して XPath クエリ (ルート) が指定されています。 スキーマには、ContactID、FirstName、および LastName 属性を持つ <Contacts> 要素があります。 スキーマでは、既定のマッピングが行われます。要素名は同じ名前のテーブルにマップされ、単純型の属性は同じ名前の列にマップされます。
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:sql='urn:schemas-microsoft-com:mapping-schema'>
<xsd:element name= 'root' sql:is-constant='1'>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref = 'Contacts'/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name='Contacts' sql:relation='Person.Contact'>
<xsd:complexType>
<xsd:attribute name='ContactID' type='xsd:integer' />
<xsd:attribute name='FirstName' type='xsd:string'/>
<xsd:attribute name='LastName' type='xsd:string' />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Mapping Schema プロパティは、XPath クエリの実行対象となるマッピング スキーマを提供します。 マッピング スキーマには、XSD または XDR スキーマを指定できます。 Base Path プロパティは、マッピング スキーマへのファイル パスを提供します。
ClientSideXML プロパティは True に設定されています。 そのため、XML ドキュメントはクライアントで生成されます。
アプリケーションでは、XPath クエリが直接指定されます。 したがって、XPath 方言 {ec2a4293-e898-11d2-b1b7-00c04f680c56} を含む必要があります。
注
このコードでは、接続文字列に SQL Server のインスタンスの名前を指定する必要があります。 また、この例では、追加のネットワーク クライアント ソフトウェアをインストールする必要があるデータ プロバイダーに対する SQL Server Native Client (SQLNCLI11) の使用を指定します。 詳細については、「 SQL Server Native Client のシステム要件」を参照してください。
Option Explicit
Sub main()
Dim oTestStream As New ADODB.Stream
Dim oTestConnection As New ADODB.Connection
Dim oTestCommand As New ADODB.Command
oTestConnection.Open "provider=SQLXMLOLEDB.4.0;data provider=SQLNCLI11;data source=SqlServerName;initial catalog=AdventureWorks;Integrated Security= SSPI;"
oTestCommand.ActiveConnection = oTestConnection
oTestCommand.Properties("ClientSideXML") = True
oTestCommand.CommandText = "root"
oTestStream.Open
oTestCommand.Dialect = "{ec2a4293-e898-11d2-b1b7-00c04f680c56}"
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Properties("Base Path").Value = "c:\Schemas\SQLXML4\XPathDirect\"
oTestCommand.Properties("Mapping Schema").Value = "mySchema.xml"
oTestCommand.Properties("Output Encoding") = "utf-8"
oTestCommand.Execute , , adExecuteStream
oTestStream.Position = 0
oTestStream.Charset = "utf-8"
Debug.Print oTestStream.ReadText(adReadAll)
End Sub
Sub Form_Load()
main
End Sub