Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
In een geannoteerd XSD-schema, wanneer een attribuut (of element) wordt toegewezen aan een BLOB-kolom in Microsoft SQL Server, wordt de data teruggegeven in een Base 64-gecodeerd formaat binnen XML.
Als je een referentie naar de data (een URI) wilt teruggeven die later gebruikt kan worden om de BLOB-data in binair formaat op te halen, specificeer dan de sql:encode-annotatie . Je kunt sql:encode specificeren op een attribuut of element van eenvoudig type.
Specificeer de sql:encode-annotatie om aan te geven dat een URL naar het veld moet worden teruggegeven in plaats van de waarde van het veld. sql:encode is afhankelijk van de primaire sleutel om een singleton-selectie in de URL te genereren. De primaire sleutel kan worden opgegeven met behulp van de sql:key-fields annotatie.
De sql:encode-annotatie kan de waarde "url" of "default" worden toegewezen. Een waarde van "default" geeft gegevens terug in Base 64-gecodeerd formaat.
De sql:encode-annotatie kan niet worden gebruikt met sql:use-cdata of op de attributen ID, IDREF, IDREFS, NMTOKEN of NMTOKENS. Het kan ook niet worden gebruikt met het XSD-vaste attribuut.
Opmerking
BLOB-type kolommen kunnen niet worden gebruikt als onderdeel van een sleutel of vreemde sleutel.
Voorbeelden
Om werkmonsters te maken met de volgende voorbeelden, moet je aan bepaalde eisen voldoen. Voor meer informatie, zie Vereisten voor het uitvoeren van SQLXML-voorbeelden.
Eén. Specificeren sql:encode om een URL-referentie naar BLOB-data te verkrijgen
In dit voorbeeld specificeert het mappingschema sql:encode op het LargePhoto-attribuut om de URI-referentie naar een specifieke productfoto op te halen (in plaats van de binaire gegevens in Base 64-gecodeerd formaat op te halen).
<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>
Om een voorbeeld van een XPath-query te testen tegen het schema
Kopieer de bovenstaande schemacode en plak deze in een tekstbestand. Sla het bestand op als sqlEncode.xml.
Kopieer het volgende sjabloon en plak het in een tekstbestand. Sla het bestand op als sqlEncodeT.xml in dezelfde map waar je sqlEncode.xmlhebt opgeslagen.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sqlEncode.xml"> /ProductPhoto[@ProductPhotoID=100] </sql:xpath-query> </ROOT>Het directorypad dat voor het mappingschema (sqlEncode.xml) is gespecificeerd is relatief tot de map waar het sjabloon wordt opgeslagen. Een absoluut pad kan ook worden gespecificeerd, bijvoorbeeld:
mapping-schema="C:\SqlXmlTest\sqlEncode.xml"Maak het SQLXML 4.0 Test Script (Sqlxml4test.vbs) aan en gebruik het om het sjabloon uit te voeren.
Zie ADO gebruiken om SQLXML 4.0-query's uit te voeren voor meer informatie.
Dit is het resultaat:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100"
LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />
</ROOT>