Udostępnij przez


Tworzenie stałej elementy przy użyciu języka sql: stała się (schematu XDR)

Important noteImportant 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).

Z powodu domyślnego odwzorowania każdy element i atrybuty w schemacie XDR mapuje do tabela bazy danych i kolumn.W czasie można utworzyć elementu w schemacie XDR nie mapuje się 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 <ElementType>, która nie mapuje się do dowolnej tabela bazy danych, a tym samym co stała elementu. The sql:is-constant annotation can be used for:

  • Dodawanie elementu najwyższego poziom do dokumentu XML.XML wymaga (jeden element najwyższego poziom**<katalog główny>** element) w dokumencie.

  • Tworzenie elementów kontener, na przykład <Zamówienia> element, który otacza wszystkie zamówienia.

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: jest stała do dodania elementu 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.Mimo że <OrderList> element nie mapuje się do dowolnej tabela/kolumna bazy danych, nadal pojawia się w wynikowym pliku 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ć kwerendę XPath próbki względem schematu

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

  2. 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 xdr.xml isConstant.Kwerendy XPath w szablonie, powoduje zaznaczenie wszystkich <Sales.Customer> elementy o 1 wartości atrybut identyfikator klienta.

    <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>
    

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

Poniżej znajduje się zestaw wyników:

<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>