Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In uno schema XSD con annotazioni, quando viene eseguito il mapping di un attributo (o elemento) a una colonna BLOB in Microsoft SQL Server, i dati vengono restituiti in formato con codifica Base 64 all'interno di XML.
Se si vuole che venga restituito un riferimento ai dati (un URI) che può essere usato in un secondo momento per recuperare i dati BLOB in un formato binario, specificare l'annotazione sql:encode . È possibile specificare sql:encode in un attributo o in un elemento di tipo semplice.
Specificare l'annotazione sql:encode per indicare che deve essere restituito un URL del campo anziché il valore del campo.
sql:encode dipende dalla chiave primaria per generare una selezione singleton nell'URL. È possibile specificare la chiave primaria usando l'annotazione sql:key-fields .
All'annotazione sql:encode è possibile assegnare l'url o il valore "predefinito". Il valore "default" restituisce i dati in formato con codifica Base 64.
L'annotazione sql:encode non può essere usata con o sui sql:use-cdata tipi di attributo ID, IDREF, IDREFS, NMTOKEN o NMTOKENS. Non può essere usato anche con l'attributo fisso XSD.
Annotazioni
Le colonne di tipo BLOB non possono essere usate come parte di una chiave o di una chiave esterna.
Esempi
Per creare esempi reali utilizzando gli esempi seguenti, è necessario soddisfare alcuni requisiti. Per altre informazioni, vedere Requisiti per l'esecuzione di esempi SQLXML.
Un. Specifica di sql:encode per ottenere un riferimento URL ai dati BLOB
In questo esempio, lo schema di mapping specifica sql:encode sull'attributo LargePhoto per recuperare il riferimento URI a una foto di prodotto specifica (anziché recuperare i dati binari in formato con codifica 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>
Per testare una query Xpath di esempio sullo schema
Copiare il codice dello schema precedente e incollarlo in un file di testo. Salvare il file come sqlEncode.xml.
Copiare il modello seguente e incollarlo in un file di testo. Salvare il file come sqlEncodeT.xml nella stessa directory in cui è stato salvato 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>Il percorso della directory specificato per lo schema di mapping (sqlEncode.xml) è relativo alla directory in cui viene salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\SqlXmlTest\sqlEncode.xml"Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.
Risultato:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100"
LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />
</ROOT>