Udostępnij przez


Jawnego mapowania elementów XSD i atrybutów tabel i kolumn (SQLXML 4.0)

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

Gdy kwerend XPath są określane względem schematu XSD adnotacjami, dane dla elementów i atrybutów w schemacie jest pobierana z tabel i kolumn, które są mapowane.Do uzyskania pojedynczej wartości z bazy danych, mapowanie określone w schematu XSD musi mieć specyfikacja relacji i pole.Jeśli nazwa elementu/atrybutu nie jest taką samą nazwę jak nazwa tabela i 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

sql:relation Adnotacji jest dodawany do mapowania XML węźle schematu XSD do tabela bazy danych.Nazwa tabela (Widok) jest określony jako wartość sql:relation adnotacji.

Gdy sql:relation określony dla elementu, zakres tego adnotacji stosuje się do wszystkich atrybutów i podrzędność elementy, które są opisane w definicji typu złożonego tego elementu, dlatego dostarczenie skrótów na piśmie adnotacje.

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 prawidłowy tabela nazwa w SQL Server , ale nie w XML.W takich przypadkach sql:relation adnotacji można określić mapowanie, na przykład:

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

pole SQL

sql-field Adnotacji mapowany element lub atrybut do kolumna bazy danych.sql:field Adnotacji jest dodawany do mapowania węzła XML w schemacie do kolumna bazy danych.Nie można określić sql:field na pustej zawartości elementu.

Przykłady

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

A.Określanie adnotacje sql:relation i sql:pole

W tym przykładzie schematu XSD składa się z <osoby> elementu typu złożonego z <FName> i <LName> elementów podrzędność i BusinessEntityID atrybut.

sql:relation Mapy adnotacji <osoby> element do tabela Person.Person w AdventureWorks2008R2 bazy danych.sql:field Mapy adnotacji <FName> element kolumna Imię i <LName> elementu kolumna Nazwisko.

Adnotacja nie określono dla BusinessEntityID atrybut.To wyniki w 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="Person" sql:relation="Person.Person" >
   <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="BusinessEntityID" 
                       type="xsd:integer" />
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Aby przetestować przykładowe kwerendy XPath względem schematu

  1. Kod schematu skopiować i wkleić go do pliku tekstowego.Zapisz plik jako MySchema annotated.xml.

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

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

    Ścieżka katalogu określonego dla mapowania schematu (MySchema annotated.xml) jest katalog, w którym zapisany szablon.Ś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 szablon wykonać skryptu testu 4.0 SQLXML (Sqlxml4test.vbs).

    Aby uzyskać więcej informacji, zobacz Przy użyciu ADO do wykonywania kwerend SQLXML.

Oto częściowe zestaw wyników:

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