Compartir a través de


Especificar un espacio de nombres de destino mediante sql:target-namespace (esquema de XDR)

Nota importanteImportante

Este tema se incluye como referencia para las aplicaciones heredadas. No se llevará a cabo ningún trabajo de desarrollo de esta característica en el futuro. Evite utilizarla en nuevos trabajos de desarrollo. En su lugar, use esquemas XSD anotados para crear vistas XML. Para obtener más información, vea Introducción a los esquemas XSD anotados (SQLXML 4.0). Puede convertir los esquemas XDR anotados existentes en esquemas XSD. Para obtener más información, vea Convertir esquemas XDR anotados en esquemas XSD equivalentes (SQLXML 4.0).

La anotación sql:target-namespace se puede utilizar para colocar elementos y atributos del espacio de nombres predeterminado en un espacio de nombres diferente. El atributo sql:target-namespace sólo se puede agregar a la etiqueta <Esquema> en el esquema XDR.

El valor de sql:target-namespace es el espacio de nombres URI (Identificador uniforme de recursos) que se utiliza para generar los elementos y atributos especificados en el esquema de asignación. Este URI se aplica a todos los elementos y atributos del espacio de nombres predeterminado. El documento XML devuelto desde las consultas dirigidas a este esquema contiene declaraciones xmlns:prefix="uri" y prefija los nombres de elemento y atributo en consecuencia. El URI que se utiliza procede del valor de la anotación sql:target-namespace. Sin embargo, el prefijo se genera arbitrariamente y no corresponde a ningún valor del esquema (aun cuando los prefijos se utilizan en el esquema).

Ejemplos

Para crear ejemplos funcionales mediante los ejemplos siguientes, debe cumplir determinados requisitos. Para obtener más información, vea Requisitos para ejecutar los ejemplos de SQLXML.

A. Especificar un espacio de nombres de destino

En este ejemplo, la anotación sql:target-namespace se utiliza para especificar el espacio de nombres de destino. Como resultado, todos los elementos y atributos que habrían ido al espacio de nombres predeterminado se redirigen al espacio de nombres de destino (MyNamespace).

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql"
        sql:target-namespace="urn:MyNamespace">
<ElementType name="Sales.SalesOrderHeader" >
   <AttributeType name="SalesOrderID" />
   <attribute type="SalesOrderID"/>
</ElementType>
<ElementType name="Sales.Customer" >
   <AttributeType name="CustomerID" />
   <attribute type="CustomerID" />
   <element type="Sales.SalesOrderHeader" >
      <sql:relationship 
            key="CustomerID" 
            foreign-key="CustomerID" 
            key-relation="Sales.Customer" 
            foreign-relation="Sales.SalesOrderHeader" />
   </element>
</ElementType>
</Schema>

Para probar una consulta XPath de ejemplo en el esquema

  1. Copie el código de esquema anterior y péguelo en un archivo de texto. Guarde el archivo como TargetNS-Xdr.xml.

  2. Copie la plantilla siguiente y péguela en un archivo de texto. Guarde el archivo como TargetNS-XdrT.xml en el mismo directorio donde guardó TargetNS-Xdr.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="TargetNS-Xdr.xml" 
                       xmlns:x="urn:MyNamespace" >
        x:Sales.Customer[@CustomerID=1]
      </sql:xpath-query>
    </ROOT>
    

    La consulta XPath de la plantilla solicita todos los elementos <Customer> definidos en el espacio de nombres "MyNamespace". En la plantilla se enlaza un prefijo x al espacio de nombres.

    La ruta de acceso al directorio especificada para el esquema de asignación (TargetNS-Xdr.xml) es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:

    mapping-schema="C:\MyDir\TargetNS-Xdr.xml"
    
  3. Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.

    Para obtener más información, vea Utilizar ADO para ejecutar consultas SQLXML 4.0.

El conjunto de resultados es el siguiente:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <y0:Sales.Customer xmlns:y0="urn:MyNamespace" CustomerID="1">
    <y0:Sales.SalesOrderHeader SalesOrderID="43860" /> 
    <y0:Sales.SalesOrderHeader SalesOrderID="44501" /> 
    <y0:Sales.SalesOrderHeader SalesOrderID="45283" /> 
    <y0:Sales.SalesOrderHeader SalesOrderID="46042" /> 
  </y0:Sales.Customer>
</ROOT>

Observe que los prefijos generados son arbitrarios, pero se asignan al mismo espacio de nombres.

Vea también

Referencia