Udostępnij przez


Jawne mapowania XSD elementy i atrybuty tabel i kolumn (SQLXML 4.0)

Zapewniają Widok XML relacyjnej bazy danych za pomocą schematu XSD, elementy i atrybuty schematu musi być mapowany do tabel i kolumn w bazie danych.Wiersze w tabela/widoku bazy danych będą mapowane do elementów w dokumencie XML.Wartości kolumna w bazie danych mapowania atrybutów lub elementów.

Gdy kwerendy XPath są określane względem schematu XSD adnotacjami, dane dla elementy i atrybuty w schemacie są pobierane z tabel i kolumn, do którego będą mapować.Uzyskanie pojedyncze wartości z bazy danych, mapowanie, określona w schemacie XSD musi mieć specyfikacji pole i relacji.Jeśli nazwa elementu/atrybutu nie jest taką samą nazwę jak nazwa tabela/widoku lub kolumna, która mapuje, sql:relation i sql:field adnotacje są używane do określania mapowania między element lub atrybut w dokumencie XML i tabela (Widok) lub kolumna w bazie danych.

Relacja SQL

The sql:relation annotation is added to map an XML node in the XSD schema to a database tabela. Nazwa tabela (Widok) jest określony jako wartość sql:relation adnotacja.

Kiedy sql:relation jest określony na elemencie, zakres tej adnotacji będą stosowane dla wszystkich atrybutów i elementy podrzędność powodujące problemy opisane w definicji typu złożonego tego elementu, w związku z tym dostarczanie skrót w zapisie adnotacji.

The sql:relation annotation is also useful when identifiers that are valid in Microsoft SQL Server are not valid in XML.Na przykład "Opisy zamówień" jest nazwą tabela ważne w SQL Server ale nie w formacie XML. W takim wypadku sql:relation Aby określić mapowanie, na przykład można użyć adnotacji:

<xsd:element name="OD" sql:relation="[Order Details]">

pole SQL

The sql-field annotation maps an element or atrybut to a database kolumna. The sql:field annotation is added to map an XML node in the schema to a database kolumna. Nie można określić sql:field na pusty element zawartości.

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:relation i sql:pole adnotacji

W tym przykładzie schematu XSD składa się z <Kontakt> element typ złożony z <FName> i <LName> elementy podrzędność i ContactID atrybut.

The sql:relation annotation maps the <Contact> element to the Person.Contact tabela in the AdventureWorks database. The sql:field annotation maps the <FName> element to the FirstName kolumna and the <LName> element to the LastName kolumna.

Adnotacja nie został określony dla ContactID atrybut. W efekcie domyślnego mapowania atrybut do kolumna o tej samej nazwie.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:element name="Contact" sql:relation="Person.Contact" >
   <xsd:complexType>
     <xsd:sequence>
        <xsd:element name="FName"
                     sql:field="FirstName" 
                     type="xsd:string" /> 
        <xsd:element name="LName"  
                     sql:field="LastName"  
                     type="xsd:string" />
     </xsd:sequence>
        <xsd:attribute name="ContactID" 
                       type="xsd:integer" />
    </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 annotated.xml MySchema.

  2. Skopiuj następujący poniżej szablon i wkleić go do pliku tekstowego.Zapisz plik jako annotatedT.xml MySchema w tym samym katalogu, w którym zapisano annotated.xml MySchema.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="MySchema-annotated.xml">
        /Contact
      </sql:xpath-query>
    </ROOT>
    

    To ścieżka do katalogu określonego dla mapowania schematu (MySchema annotated.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\MySchema-annotated.xml"
    
  3. Tworzenie i używanie skryptu testu 4.0 SQLXML (Sqlxml4test.vbs) do wykonać tego szablonu.

    Aby uzyskać więcej informacji zobacz Przy użyciu obiektu ADO w celu wykonać kwerendy SQLXML.

W tym polu jest zestaw wyników częściowych:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
 <Contact ContactID="1"> 
    <FName>Gustavo</FName> 
    <LName>Achong</LName> 
 </Contact> 
  .....
</ROOT>