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.
Todos los elementos y atributos del esquema XSD se asignan a una tabla o vista de base de datos y columna debido a la asignación predeterminada. Si desea crear un elemento en el esquema XSD que no se asigna a ninguna tabla de base de datos (vista) o columna y que no aparece en el XML, puede especificar la sql:mapped anotación.
La sql:mapped anotación es especialmente útil si el esquema no se puede modificar o si el esquema se usa para validar XML de otros orígenes y todavía contiene datos que no están almacenados en la base de datos. La sql:mapped anotación difiere de sql:is-constant en que los elementos y atributos no asignados no aparecen en el documento XML.
La sql:mapped anotación toma un valor booleano (0 = false, 1 = true). Los valores permitidos son 0, 1, true y false.
Ejemplos
Para crear muestras funcionales mediante los ejemplos siguientes, debe cumplir determinados requisitos. Para obtener más información, vea Requisitos para ejecutar ejemplos de SQLXML.
Un. Especificación de la anotación sql:mapped
Supongamos que tiene un esquema XSD de otro origen. Este esquema XSD consta de un <elemento Person.Contact> con atributos ContactID, FirstName, LastName y HomeAddress .
Al asignar este esquema XSD a la tabla Person.Contact de la base de datos AdventureWorks, sql:mapped se especifica en el atributo HomeAddress porque la tabla Employees no almacena las direcciones principales de los empleados. Como resultado, este atributo no se asigna a la base de datos y no se devuelve en el documento XML resultante cuando se especifica una consulta XPath en el esquema de asignación.
La asignación predeterminada tiene lugar para el resto del esquema. El <elemento Person.Contact> se asigna a la tabla Person.Contact y todos los atributos se asignan a las columnas con el mismo nombre en la tabla Person.Contact.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact">
<xsd:complexType>
<xsd:attribute name="ContactID" type="xsd:string"/>
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
<xsd:attribute name="HomeAddress" type="xsd:string"
sql:mapped="false" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Para probar una consulta XPath de ejemplo en el esquema
Copie el código de esquema anterior y péguelo en un archivo de texto. Guarde el archivo como sql-mapped.xml.
Copie la plantilla siguiente y péguela en un archivo de texto. Guarde el archivo como sql-mappedT.xml en el mismo directorio donde guardó sql-mapped.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sql-mapped.xml"> /Person.Contact[@ContactID < 10] </sql:xpath-query> </ROOT>La ruta de acceso del directorio especificada para el esquema de asignación (MySchema.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\sql-mapped.xml"Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.
Para obtener más información, consulte Uso de ADO para ejecutar consultas SQLXML.
Este es el conjunto de resultados:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong" />
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel" />
<Person.Contact ContactID="3" FirstName="Kim" LastName="Abercrombie" />
<Person.Contact ContactID="4" FirstName="Humberto" LastName="Acevedo" />
<Person.Contact ContactID="5" FirstName="Pilar" LastName="Ackerman" />
<Person.Contact ContactID="6" FirstName="Frances" LastName="Adams" />
<Person.Contact ContactID="7" FirstName="Margaret" LastName="Smith" />
<Person.Contact ContactID="8" FirstName="Carla" LastName="Adams" />
<Person.Contact ContactID="9" FirstName="Jay" LastName="Adams" />
</ROOT>
Tenga en cuenta que ContactID, FirstName y LastName están presentes, pero HomeAddress no es porque el esquema de asignación especificado 0 para el sql:mapped atributo.
Véase también
Asignación predeterminada de elementos y atributos XSD a tablas y columnas (SQLXML 4.0)