Udostępnij przez


Tworzenie przy użyciu sekcja CDATA sql:use-cdata (SQLXML 4.0)

W języku XML CDATA sekcje są używane do bloków tekstu zawierających znaki, które w przeciwnym razie może być rozpoznany jako oznaczeń znaków escape.

Bazy danych w programie Microsoft SQL Server Czasami może zawierać znaki, które są traktowane jako znaki adiustacji przez analizator składni XML; na przykład kąt nawiasów kwadratowych)< i >), (mniej niż lub równości — do symbolu<=) i znaku handlowego i (&) są traktowane jako znaki adiustacji. Jednakże można zawinąć tego typu znaków specjalnych w sekcja CDATA, aby zapobiec są traktowane jako znaki adiustacji.Tekst wewnątrz sekcja CDATA jest traktowane przez analizator składni XML jako zwykły tekst.

The sql:use-cdata annotation is used to specify that the data returned by SQL Server should be wrapped in a CDATA section (that is, it indicates whether the value from a kolumna that is specified by sql:field should be enclosed in a CDATA section). The sql:use-cdata annotation can be specified only on elements that map to a database kolumna.

The sql:use-cdata annotation takes a logiczny value (0 = false, 1 = true). Dopuszczalne wartości to 0, 1, true i false.

Nie można użyć tej adnotacji sql:url-encode lub identyfikatora, IDREF, IDREFS, NMTOKEN i NMTOKENS atrybut typów.

Przykłady

Aby utworzyć próbek pracy przy użyciu poniższych przykładach, musi spełniać określone wymagania.Aby uzyskać więcej informacji zobaczWymagania dotyczące uruchamianie SQLXML przykłady.

A.Określanie sql:use-cdata na elemencie

W następujących schematu sql:use-cdata jest zestaw 1 (PRAWDA) dla <AddressLine1> w ramach <Adres> element. Dzięki temu dane są zwracane w sekcja CDATA.

<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>

Aby przetestować kwerendę XPath próbki względem schematu

  1. Skopiować powyższy kod schematu i wkleić go do pliku tekstowego.Zapisz plik jako UseCData.xml.

  2. Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako UseCDataT.xml w tym samym katalogu, w którym zapisano UseCData.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="UseCData.xml">
            /Address[AddressID &lt; 11]
        </sql:xpath-query>
    </ROOT>
    

    To ścieżka do katalogu określonego dla mapowania schematu (UseCData.xml) jest względna w stosunku do katalogu, w którym są zapisywane w szablonie.Ścieżka bezwzględna również można określić, na przykład:

    mapping-schema="C:\SqlXmlTest\UseCData.xml"
    
  3. Tworzenie i używanie skryptu testu 4.0 SQLXML (Sqlxml4test.vbs) do wykonać tego szablonu.

    Aby uzyskać więcej informacji zobaczPrzy użyciu obiektu ADO do wykonywania SQLXML bada 4.0.

Jest to zestaw wyników częściowych:

<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>