Udostępnij za pośrednictwem


Mapowanie domyślne XSD elementy i atrybuty tabel i kolumn (SQLXML 4.0)

Domyślnie element typu złożonego w XSD odnotowany mapy schematu do tabela (Widok) o takiej samej nazwie we wskazanej bazie danych, a element lub atrybut typu prostego jest mapowany na kolumna o takiej samej nazwie w tabela.

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 domyślnego mapowania

W tym przykładzie adnotacje nie są określone w schematu XSD.The <Person.Contact> element is of complex type and, therefore, maps by default to the Person.Contact tabela in the AdventureWorks database. Wszystkie atrybuty (ContactID, imię, nazwisko) <Person.Contact> element jest typu prosty i mapowania domyślnie do kolumn o takich samych nazwach w tabela Person.Contact.

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

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

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

    To ścieżka do katalogu określonego dla mapowania schematu (MySchema.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.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.

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

<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
  <Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>
  <Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>
   ...
</ROOT>

B.Mapowanie elementu XML kolumna bazy danych

W tym przykładzie domyślnego odwzorowania również ma miejsce, ponieważ adnotacje nie są używane.The <Person.Contact> element is of complex type and maps to the tabela with the same name in the database. Elementy <Imię> i <Nazwisko> oraz Pole IDPracownika atrybut typu prostego, dlatego mapowanie do kolumn o takich samych nazwach. Jedyną różnicą między tym i poprzednim przykładzie są to, że elementy są używane do mapowania pól Imię i nazwisko.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:element name="Person.Contact">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="FirstName" type="xsd:string" /> 
        <xsd:element name="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 MySchemaElements.xml.

  2. Utwórz następujący szablon (MySchemaElementsT.xml) i zapisz go w tym samym katalogu, używany w poprzednim kroku.

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

    To ścieżka do katalogu określonego dla mapowania schematu 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\MySchemaElements.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.

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

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

C.Mapowanie elementu XML do XML typu danych kolumna

W tym przykładzie domyślnego odwzorowania również ma miejsce, ponieważ adnotacje nie są używane.The <Production.ProductModel> element is of complex type and maps to the tabela with the same name in the database. The ProductModelID atrybut is of simple type and, therefore, map to the columns with the same names.Jedyną różnicą między to i poprzednich przykładach, jest <Instrukcje> element mapowany jest do kolumna, która używa xml Typ danych przy użyciu xsd:anyType Typ.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:element name="Production.ProductModel">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Instructions" type="xsd:anyType" /> 
      </xsd:sequence>
      <xsd:attribute name="ProductModelID" type="xsd:integer" /> 
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

The xml data type was introduced in SQL Server 2005.

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

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

  2. Utwórz następujący szablon (MySchemaXmlAnyElementsT.xml) i zapisz go w tym samym katalogu, używany w poprzednim kroku.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml">
            /Production.ProductModel[@ProductModelID=7]
        </sql:xpath-query>
    </ROOT>
    

    To ścieżka do katalogu określonego dla mapowania schematu 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\MySchemaXmlAnyElements.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.

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

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Production.ProductModel ProductModelID="7">
    <Instructions>
      <root xmlns="http:
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru
ctions">
...
      </root>
    <Instructions>
  </Production.ProductModel>
</ROOT>