Udostępnij za pośrednictwem


Za pomocą sql:relation (schematu XDR)

Ważna informacjaWażne:

Ten temat jest dołączane jako odniesienia dla starszych aplikacji.Żadna praca przyszłego rozwoju są wykonywane z tej funkcji.Unikaj używania tej funkcji w nowych prac rozwojowych.Zamiast tego użyj adnotacjami schematów XSD tworzenia widoków XML.Aby uzyskać więcej informacji, zobacz Wprowadzenie do adnotacjami schematów XSD (SQLXML 4.0).Można przekonwertować istniejące schematy XDR adnotacjami schematów XSD.Aby uzyskać więcej informacji, zobacz Konwertowanie adnotacjami schematy XDR równoważne schematów XSD (SQLXML 4.0).

sql:relation Adnotacji jest dodawany do mapowania węzła XML w schemacie XDR do tabela bazy danych.Nazwa tabela i widoku jest określona jako wartość sql:relation adnotacji.

The sql:relation annotation can be added to an <ElementType>, <element>, or <attribute> node in the XDR schema.sql:relation specifies the mapping between <ElementType>, <element>, or <attribute> in the schema to a table/view in a database.

Gdy sql:relation jest określona na <element ElementType>, zakres tego adnotacji stosuje się do wszystkich atrybut i podrzędność elementu specyfikacji w tym <element ElementType>.Dlatego zawiera skrót na piśmie adnotacje.Po sql:relation jest określona bezpośrednio na <elementu>, jest również zakresu wprowadzonego do atrybutów określonych w <element ElementType>.sql:relation Adnotacji są ignorowane na <AttributeType>.

sql:relation Adnotacji jest użyteczne w przypadkach, w których identyfikatory są ważne w programie Microsoft SQL Server są nieprawidłowe w pliku XML.Na przykład "Opisy zamówień" jest prawidłowa nazwa tabela w programie SQL Server, ale nieprawidłowy w formacie XML.W takich przypadkach sql:relation adnotacji można określić mapowanie, na przykład:

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

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śl sql:relation na <element ElementType> zawierający atrybuty

W tym przykładzie schematu XDR składa się z <Kontakty> element z BusinessEntityID, Imię, i nazwisko atrybuty.sql:relation Adnotacji jest określona na <element ElementType>, mapowanie <Kontakty> element z tabela Person.Person.Zakres tego mapowania stosuje się do wszystkich atrybutów w <element ElementType>.Dlatego wszystkie atrybuty mapować kolumn w tabela Person.Person.

Mapowanie domyślne mają miejsce dla atrybutów; na przykład atrybuty mapować kolumn z tej samej nazwy w tabela Person.Person.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />

    <attribute type="BusinessEntityID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
  </ElementType>
</Schema>

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

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

  2. Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako sqlRelationXdrT.xml w tym samym katalogu, w którym zapisano sqlRelationXdr.xml.Kwerenda w szablonie wybiera kontakt z BusinessEntityID 1.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="sqlRelationXdr.xml">
        /Contacts[@BusinessEntityID="1"]
      </sql:xpath-query>
    </ROOT>
    

    Ścieżka katalogu określonego dla mapowania schematu jest katalogu skojarzonego zapisywania szablonu.Ścieżka bezwzględna można również określić, na przykład:

    mapping-schema="C:\MyDir\sqlRelationXdr.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 SQLXML wykonanie kwerendy 4.0.

Oto częściowe zestaw wyników:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
    <Contacts BusinessEntityID="1" FirstName="Gustavo" 
              LastName="Achong" /> 
</ROOT>

B.Określ sql:relation na <element ElementType> zawierających atrybuty i podelementy

W tym przykładzie schematu XDR składa się z <Kontakty> element z BusinessEntityID atrybut i <Imię> i <nazwisko> elementów podrzędność.sql:relation Adnotacji jest określona na <element ElementType>, mapowanie <Kontakty> element z tabela Person.Person.Zakres tego mapowania stosuje się do wszystkich atrybutów w <element ElementType>.Dlatego wszystkie atrybuty mapować kolumn w tabela Person.Person.

Mapowanie domyślne mają miejsce dla atrybutów.Mapa atrybuty kolumny o tej samej nazwie w tabela Person.Person.

W tym przykładzie zawartości atrybut jest określony na <Imię> i <nazwisko> elementów podrzędność.Bez content=textOnly atrybut, elementy podrzędność byłyby mapuje do odpowiednich kolumn Imię i nazwisko w tabela Person.Person ponieważ domyślnie elementy mapowane do tabela, a nie do pole.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

  <ElementType name="FirstName" content="textOnly"/>
  <ElementType name="LastName" content="textOnly"/>
  <ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />

    <attribute type="BusinessEntityID" />
    <element type="FirstName" />
    <element type="LastName"  />
  </ElementType>
</Schema>

Alternatywnie, zamiast określania content=textOnly atrybut, można określić sql:field adnotacji w element nazwy definicji mapowania elementów podrzędność (FirstName, LastName) do odpowiedniej kolumna, takie jak poniższe przykłady alternatywny:

<element type="FirstName" sql:field="FirstName" />
<element type="LastName" sql:field="LastName" />

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

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

  2. Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako UsingSqlRelationXdrT.xml w tym samym katalogu, w którym zapisano UsingSqlRelationXdr.xml.Kwerenda w szablonie wybiera kontakt z BusinessEntityID 1.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="UsingSqlRelationXdr.xml">
        /Contacts[@BusinessEntityID="1"]
      </sql:xpath-query>
    </ROOT>
    

    Ścieżka katalogu określonego dla mapowania schematu (UsingSqlRelationXdr.xml) jest katalog, w którym zapisany szablon.Ścieżka bezwzględna również można określić, na przykład:

    mapping-schema="C:\MyDir\UsingSqlRelationXdr.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 SQLXML wykonanie kwerendy 4.0.

Oto częściowe zestaw wyników:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
  <Contacts BusinessEntityID="1"> 
    <FirstName>Gustavo</FirstName>
    <LastName>Achong</LastName>
  </Contacts>
</ROOT>

Zobacz także

Odwołanie