Richiesta di riferimenti URL a dati BLOB utilizzando sql:url-encode (XDR Schema)
Importante |
---|
Questo argomento è incluso come riferimento per le applicazioni legacy. Per questa funzionalità non è previsto alcun progetto di sviluppo in futuro, pertanto si consiglia di evitare di utilizzarla in un nuovo progetto di sviluppo. Utilizzare invece gli schemi XSD con annotazioni per creare le viste XML. Per ulteriori informazioni, vedere Introduzione agli schemi XSD con annotazioni (SQLXML 4.0). È possibile convertire gli schemi XDR con annotazioni esistenti in schemi XSD. Per ulteriori informazioni, vedere Conversione di schemi XDR con annotazioni in schemi XSD equivalenti (SQLXML 4.0). |
Nello schema XDR con annotazioni quando un attributo o elemento viene mappato a una colonna BLOB di Microsoft SQL Server, i dati vengono restituiti in formato con codifica Base 64 in XML. Per una descrizione dei tipi di dati SQL Server e dei tipi di dati XML corrispondenti, vedere Coercizioni dei tipi di dati (schema XDR).
Se si desidera che venga restituito un riferimento ai dati (URI) che possa essere utilizzato successivamente per recuperare i dati BLOB in un formato binario, specificare l'annotazione sql:url-encode.
Specificare l'annotazione sql:url-encode per indicare che deve essere restituito un URL del campo anziché il valore del campo. sql:url-encode dipende dalla chiave primaria per la generazione di una selezione singleton nell'URL. La chiave primaria può essere specificata utilizzando l'annotazione sql:key-fields. Per ulteriori informazioni, vedere Identificazione delle colonne chiave mediante sql:key-fields (SQLXML 4.0).
L'annotazione sql:url-encode accetta un valore di tipo booleano (0 = FALSE, 1 = TRUE). Non è possibile utilizzare sql:url-encode con sql:use-cdata o su uno dei tipi di attributo ID, IDREF, IDREFS, NMTOKEN o NMTOKENS.
Esempi
Per creare esempi reali utilizzando gli esempi seguenti, è necessario soddisfare alcuni requisiti. Per ulteriori informazioni, vedere Requisiti per l'esecuzione di esempi di SQLXML.
A. Specificare sql:url-encode per ottenere un riferimento URL ai dati BLOB
In questo esempio lo schema di mapping specifica sql:url-encode sull'attributo LargePhoto per recuperare il riferimento URI alla fotografia del prodotto, anziché recuperare i dati binari nel formato con codifica Base 64.
<?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">
<ElementType name="ProductPhoto" sql:relation="Production.ProductPhoto"
sql:key-fields="ProductPhotoID" >
<AttributeType name="ProductPhotoID" />
<AttributeType name="LargePhoto" />
<attribute type="ProductPhotoID" />
<attribute type="LargePhoto" sql:url-encode="1" />
</ElementType>
</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 con il nome UrlEncodeXdr.xml.
Copiare il modello seguente e incollarlo in un file di testo. Salvare il file con il nome UrlEncodeXdrT.xml nella stessa directory nella quale è stato salvato UrlEncodeXdr.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="UrlEncodeXdr.xml"> /ProductPhoto[@ProductPhotoID=100] </sql:xpath-query> </ROOT>
Il percorso di directory specificato per lo schema di mapping (UrlEncodeXdr.xml) è relativo alla directory nella quale viene salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\MyDir\UrlEncodeXdr.xml"
Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per ulteriori informazioni, vedere Utilizzo di ADO per eseguire query SQLXML 4.0.
Set di risultati:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100" LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto"/>
</ROOT>