Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Az XML-ben a CDATA szakaszokat arra használják, hogy kiszabaduljanak olyan szövegblokkoktól, amelyek olyan karaktereket tartalmaznak, amelyeket egyébként jelölőkarakterként ismernének fel.
A Microsoft SQL Server adatbázisában néha olyan karakterek is lehetnek, amelyeket az XML parser jelölőkarakterként kezel; például szögzárójeleket (< és >), a kevesebb vagy egyenlő szimbólumot (<=), valamint az ampersand (&) jelölő karakterként kezelik. Azonban az ilyen típusú speciális karaktereket be lehet csomagolni egy CDATA szekcióban, hogy ne kezeljék őket jelölő karakterként. A CDATA szekcióban lévő szöveget az XML elemző tiszta szövegként kezeli.
A sql:use-cdata annotációt arra használják, hogy az SQL Server által visszaküldött adatokat egy CDATA szekcióba csomagolják (azaz azt jelzi, hogy a sql:field által meghatározott oszlop értéke a CDATA szekcióba kell-e csatolva). A sql:use-cdata annotáció csak olyan elemekre adható meg, amelyek egy adatbázis-oszlophoz köthetők.
A sql:use-cdata annotáció egy Boole-értéket vesz fel (0 = hamis, 1 = igaz). Az elfogadható értékek 0, 1, igaz és hamis.
Ez az annotáció nem használható sql:url-encode-val , sem az ID, IDREF, IDREFS, NMTOKEN és NMTOKEN attribútumtípusokon.
Példák
A következő példák alapján működő minták létrehozásához bizonyos követelményeknek kell megfelelned. További információért lásd: Az SQLXML futtatási követelmények példái.
A. A sql:use-cdata meghatározása egy elemen
A következő sémában a sql:use-cdata 1-re (True) van beállítva a <AddressLine1> számára a Address> elemen< belül. Ennek eredményeként az adatokat egy CDATA szekcióban adják vissza.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Address"
sql:relation="Person.Address"
sql:key-fields="AddressID" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="AddressID" type="xsd:string" />
<xsd:element name="AddressLine1" type="xsd:string"
sql:use-cdata="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Egy minta-XPath lekérdezés tesztelése a sémához
Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt UseCData.xml.
Másold le a következő sablont, és illesztsd be egy szövegfájlba. Mentsd a fájlt UseCDataT.xml-ként ugyanabba a könyvtárba, ahol UseCData.xmlmentetted.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="UseCData.xml"> /Address[AddressID < 11] </sql:xpath-query> </ROOT>A leképezési sémához (UseCData.xml) megadott könyvtári út viszonyítja azt a könyvtárat, ahol a sablon mentő. Abszolút út is meghatározható, például:
mapping-schema="C:\SqlXmlTest\UseCData.xml"Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.
További információ: SqlXML 4.0-lekérdezések végrehajtása az ADO használatával.
Ez a részleges eredményhalmaz:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Address>
<AddressID>1</CustomerID>
<AddressLine1>
<![CDATA[ 1970 Napa Ct. ]]>
</AddressLine1>
</Address>
<Address>
<AddressLine1>
<![CDATA[ 9833 Mt. Dias Blv. ]]>
</AddressLine1>
</Address>
...
</ROOT>