Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se muestra cómo usar las siguientes propiedades específicas del proveedor SQLXMLOLEDB:
ClientSideXML
Ruta de acceso base
Esquema de asignación
En esta aplicación de ADO de ejemplo, se especifica una plantilla XML que consta de una consulta XPath (raíz) en el esquema de asignación XSD (MySchema.xml) que se describe en Ejecución de consultas XPath (proveedor SQLXMLOLEDB).
La propiedad Mapping Schema proporciona el esquema de asignación XSD con el que se ejecuta la consulta XPath. La propiedad Ruta de acceso base proporciona la ruta de acceso del archivo al esquema de asignación.
La propiedad ClientSideXML se establece en True. Por lo tanto, el documento XML se genera en el cliente.
En la aplicación, se especifica directamente una consulta XPath. Por lo tanto, el dialecto {5d531cb2-e6ed-11d2-b252-00c04f681b71} debe incluirse.
Nota:
En el código, debe proporcionar el nombre de la instancia de Microsoft SQL Server en la cadena de conexión. Además, en este ejemplo se especifica el uso de SQL Server Native Client (SQLNCLI11) para el proveedor de datos que requiere que se instale software cliente de red adicional. Para obtener más información, vea Requisitos del sistema para 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") = "False"
oTestCommand.CommandText = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'> " & _
" <sql:xpath-query mapping-schema='mySchema.xml' > " & _
" root " & _
" </sql:xpath-query> " & _
" </ROOT> "
oTestStream.Open
' You need the dialect if you are executing a template.
oTestCommand.Dialect = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Properties("Base Path").Value = "c:\Schemas\SQLXML4\TemplateWithXPath\"
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
Este es el esquema:
<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 = 'Contact'/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name='Contact' 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>