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 un esquema XSD anotado, cuando se asigna un atributo (o elemento) a una columna BLOB en Microsoft SQL Server, los datos se devuelven en formato codificado en Base 64 dentro de XML.
Si desea que se devuelva una referencia a los datos (un URI) que se pueden usar más adelante para recuperar los datos BLOB en un formato binario, especifique la sql:encode anotación. Puede especificar sql:encode en un atributo o elemento de tipo simple.
Especifique la sql:encode anotación para indicar que se debe devolver una dirección URL al campo en lugar del valor del campo.
sql:encode depende de la clave principal para generar una selección singleton en la dirección URL. La clave principal se puede especificar mediante la sql:key-fields anotación .
A la sql:encode anotación se le puede asignar el valor "url" o "predeterminado". Un valor de "valor predeterminado" devuelve datos en formato codificado en Base 64.
La sql:encode anotación no se puede usar con sql:use-cdata o en los tipos de atributo ID, IDREF, IDREFS, NMTOKEN o NMTOKENS. Tampoco se puede usar con el atributo fijo XSD.
Nota:
Las columnas de tipo BLOB no se pueden usar como parte de una clave o clave externa.
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 sql:encode para obtener una referencia de dirección URL a datos BLOB
En este ejemplo, el esquema de asignación especifica en el atributo LargePhoto para recuperar la referencia de URI a una foto de producto específica (en lugar de recuperar los datos binarios sql:encode en formato codificado en Base 64).
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="ProductPhoto" sql:relation="Production.ProductPhoto"
sql:key-fields="ProductPhotoID" >
<xsd:complexType>
<xsd:attribute name="ProductPhotoID" type="xsd:int" />
<xsd:attribute name="LargePhoto" type="xsd:string" sql:encode="url" />
</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 sqlEncode.xml.
Copie la plantilla siguiente y péguela en un archivo de texto. Guarde el archivo como sqlEncodeT.xml en el mismo directorio donde guardó sqlEncode.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sqlEncode.xml"> /ProductPhoto[@ProductPhotoID=100] </sql:xpath-query> </ROOT>La ruta de acceso del directorio especificada para el esquema de asignación (sqlEncode.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:\SqlXmlTest\sqlEncode.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 4.0.
El resultado es el siguiente:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100"
LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />
</ROOT>