Tworzenie stała sql przy użyciu elementów: jest-stała (schematu XDR)
Waż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). |
Z powodu domyślnego mapowania każdy element i atrybut schematu XDR mapuje do tabela bazy danych i kolumna.Czasami należy utworzyć element w schematu XDR nie mapuje do dowolnej tabela bazy danych lub kolumna, ale nadal pojawia się w dokumencie XML.Są to tak zwane stała elementów.To create a constant element, specify the sql:is-constant annotation.sql:is-constant takes a Boolean value (0 = FALSE, 1 = TRUE).
Ta adnotacja jest określona na <element ElementType>, która nie mapuje do dowolnej tabela bazy danych, a tym samym stała elementu.sql:is-constant Adnotacji mogą być używane do:
Dodawanie elementu najwyższego poziom do dokumentu XML.Format XML wymaga elementu najwyższego poziom (<głównego> element) dla dokumentu.
Tworzenie elementów kontener, na przykład <zamówienia> element, który otacza wszystkich zamówień.
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: jest-stała dodać element kontener
In this annotated XDR schema, <OrderList> is defined as a constant element containing all the <Orders> subelements.The sql:is-constant annotation is specified on the OrderList<ElementType>, making it a constant, and therefore not mapping to any database table.Chociaż <OrderList> element nie mapuje do dowolnej tabela/kolumna bazy danych, nadal pojawia się w wynikowym XML jako zawierające element kontener <zamówienia> podelementy.
<?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="Sales.SalesOrderHeader" >
<AttributeType name="SalesOrderID" />
<attribute type="SalesOrderID" />
</ElementType>
<ElementType name="OrderList" sql:is-constant="1">
<element type="Orders">
<sql:relationship
key-relation="Sales.Customer"
foreign-relation="Sales.SalesOrderHeader"
key="CustomerID"
foreign-key="CustomerID" />
</element>
</ElementType>
<ElementType name="Sales.Customer" >
<AttributeType name="CustomerID" />
<attribute type="CustomerID" />
<element type="OrderList" />
</ElementType>
</Schema>
Aby przetestować przykładowe kwerendy XPath względem schematu
Kod schematu skopiować i wkleić go do pliku tekstowego.Zapisz plik jako isConstant xdr.xml.
Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako xdrT.xml isConstant w tym samym katalogu, w którym zapisano isConstant xdr.xml.Zaznacza wszystkie kwerendy XPath w szablonie <Sales.Customer> elementy z IDKlienta atrybut wartość 1.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql" > <sql:xpath-query mapping-schema="isConstant-xdr.xml" > /Sales.Customer[@CustomerID=1] </sql:xpath-query> </ROOT>Ścieżka katalogu określonego dla mapowania schematu (isConstant xdr.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\isConstant-xdr.xml"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.
Zestaw wyników jest następujący:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Sales.Customer CustomerID="1">
<OrderList>
<Sales.SalesOrderHeader SalesOrderID="43860" />
<Sales.SalesOrderHeader SalesOrderID="44501" />
<Sales.SalesOrderHeader SalesOrderID="45283" />
<Sales.SalesOrderHeader SalesOrderID="46042" />
</OrderList>
</Sales.Customer>
</ROOT>
Ważne: