Za pomocą sql:relation (schematu XDR)
Important Note: |
|---|
W tym temacie jest włączony jako odwołanie w przypadku starszych aplikacji.Żadna praca przyszłe będą mogły wykonać tej funkcji.Należy unikać stosowania tej funkcji w nowej pracy rozwoju.Zamiast tego należy używać adnotacjami schematów XSD tworzenia widoków XML.Aby uzyskać więcej informacji zobaczWprowadzenie do adnotacjami schematy XSD (SQLXML 4.0).Istniejące schematy XDR adnotacjami można przekonwertować schematów XSD.Aby uzyskać więcej informacji zobaczKonwertowanie adnotacjami schematy XDR Equivalent schematy XSD (SQLXML 4.0). |
The sql:relation annotation is added to map an XML node in the XDR schema to a database tabela. Nazwa tabela/widoku jest określony jako wartość sql:relation adnotacja.
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.
Kiedy sql:relation określony dla <ElementType>, zakres tej adnotacji odnosi się do atrybut i podrzędność element specyfikacji w tym <ElementType>. Dlatego zawiera skrót w zapisie adnotacji.Kiedy sql:relation jest określony bezpośrednio na <element>, jest również tworzenie zakresów wprowadzone do atrybutów określonych w <ElementType>. The sql:relation annotation is ignored on <AttributeType>.
The sql:relation annotation is useful in cases in which identifiers that are valid in Microsoft SQL Server are invalid in XML.Na przykład "Opisy zamówień" jest nazwą prawidłową tabela w programie SQL Server, ale nieprawidłowy w formacie XML.W takim wypadku sql:relation Aby określić mapowanie, na przykład można użyć adnotacji:
<ElementType name="OD" sql:relation="[Order Details]">
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śl sql:relation na <ElementType> zawiera atrybuty
W tym przykładzie schematu XDR składa się z <Kontakty> element o ContactID, Imię, and Nazwisko atrybuty.The sql:relation annotation is specified on the <ElementType>, mapping the <Contacts> element to the Person.Contact tabela. Zakres to mapowanie ma zastosowanie do wszystkich atrybutów w <ElementType>. Dlatego wszystkie atrybuty mapować kolumn w tabela Person.Contact.
Mapowanie domyślne zajmuje miejsca dla atrybutów, na przykład mapowania atrybutów do kolumn o takich samych nazwach w tabela Person.Contact.
<?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.Contact" >
<AttributeType name="ContactID" />
<AttributeType name="FirstName" />
<AttributeType name="LastName" />
<attribute type="ContactID" />
<attribute type="FirstName" />
<attribute type="LastName" />
</ElementType>
</Schema>
Aby przetestować kwerendę XPath próbki względem schematu
Skopiować powyższy kod schematu i wkleić go do pliku tekstowego.Zapisz plik jako sqlRelationXdr.xml.
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.Kontakt z ContactID 1 wybierane przez kwerendę, w szablonie.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sqlRelationXdr.xml"> /Contacts[@ContactID="1"] </sql:xpath-query> </ROOT>Jest to ścieżka do katalogu określonego dla schematu mapowania względem katalogu skojarzony szablon jest zapisany.Ścieżka bezwzględna można również określić, na przykład:
mapping-schema="C:\MyDir\sqlRelationXdr.xml"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">
<Contacts ContactID="1" FirstName="Gustavo"
LastName="Achong" />
</ROOT>
B.Określ sql:relation na <ElementType> Zawiera podelementy i atrybutów
W tym przykładzie schematu XDR składa się z <Kontakty> element o ContactID atrybut a <Imię> i <Nazwisko> elementy podrzędność. The sql:relation annotation is specified on the <ElementType>, mapping the <Contacts> element to the Person.Contact tabela. Zakres to mapowanie ma zastosowanie do wszystkich atrybutów w <ElementType>. Dlatego wszystkie atrybuty mapować kolumn w tabela Person.Contact.
Mapowanie domyślne zajmuje miejsca dla atrybutów.Mapowania atrybutów do kolumn o tej samej nazwie w tabela Person.Contact.
W tym przykładzie zawartość określony dla atrybut**<Imię>** i <Nazwisko> elementy podrzędność. Bez content=textOnly atrybut, elementy podrzędność nie może mapować na odpowiednich kolumn Imię i nazwisko w tabela Person.Contact 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.Contact" >
<AttributeType name="ContactID" />
<attribute type="ContactID" />
<element type="FirstName" />
<element type="LastName" />
</ElementType>
</Schema>
Alternatywnie, zamiast określać content=textOnly atrybut, można określić sql:field adnotacji w element Definicja do mapowania elementów podrzędność (FirstName, LastName) na odpowiadające im nazwy kolumna, na przykład w poniższych przykładach alternatywny:
<element type="FirstName" sql:field="FirstName" />
<element type="LastName" sql:field="LastName" />
Aby przetestować kwerendę XPath próbki względem schematu
Skopiować powyższy kod schematu i wkleić go do pliku tekstowego.Zapisz plik jako UsingSqlRelationXdr.xml.
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.Kontakt z ContactID 1 wybierane przez kwerendę, w szablonie.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="UsingSqlRelationXdr.xml"> /Contacts[@ContactID="1"] </sql:xpath-query> </ROOT>To ścieżka do katalogu określonego dla mapowania schematu (UsingSqlRelationXdr.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:\MyDir\UsingSqlRelationXdr.xml"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">
<Contacts ContactID="1">
<FirstName>Gustavo</FirstName>
<LastName>Achong</LastName>
</Contacts>
</ROOT>
Important Note: