Tworzenie stałej elementy przy użyciu języka sql: stała się (SQLXML 4.0)
Aby określić stała elementu — czyli element schematu XSD, która nie mapuje się do dowolnej bazy danych, tabela lub kolumna — można użyć sql:is-constant adnotacja. Adnotacja ta ma logiczny (0 = false, 1 = true).Dopuszczalne wartości to 0, 1, true i false.The sql:is-constant annotation can be specified on an element that does not have any attributes.Jeśli został on określony na elemencie na wartość true (lub 1), ten element nie jest mapowany do bazy danych, ale nadal pojawia się w dokumencie XML.
The sql:is-constant annotation can be used for:
Dodawanie elementu najwyższego poziom do dokumentu XML.XML wymaga pojedynczego elementu najwyższego poziom (katalogu głównego elementu) w dokumencie.
Tworzenie elementów kontener, na przykład <Zamówienia> element, który otacza wszystkie zamówienia.
The sql:is-constant annotation can be added to a <complexType> element.
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 języka sql: jest stała do dodania elementu kontener
W tym odnotowany schematu XSD <CustomerOrders> jest zdefiniowany jako stały element określając sql:is-constant atrybut o wartości 1. Dlatego też <CustomerOrders> nie jest mapowany do dowolnej tabela bazy danych lub kolumna. Ten element stała składa się z <Zamówienia> elementy podrzędność.
Mimo że <CustomerOrders> nie mapuje się do dowolnej tabela bazy danych lub kolumna, nadal pojawia się w wynikowym pliku XML jako zawierające element kontener <Zamówienia> elementy podrzędność.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="CustOrders"
parent="Sales.Customer"
parent-key="CustomerID"
child="Sales.SalesOrderHeader"
child-key="CustomerID" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Customer" sql:relation="Sales.Customer" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CustomerOrders" sql:is-constant="1" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Order" sql:relation="Sales.SalesOrderHeader"
sql:relationship="CustOrders"
maxOccurs="unbounded" >
<xsd:complexType>
<xsd:attribute name="SalesOrderID" type="xsd:integer" />
<xsd:attribute name="OrderDate" type="xsd:date" />
<xsd:attribute name="CustomerID" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="CustomerID" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Aby przetestować kwerendę XPath próbki względem schematu
Skopiować powyższy kod schematu i wkleić go do pliku tekstowego.Zapisz plik jako isConstant.xml.
Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako isConstantT.xml w tym samym katalogu, w którym zapisano isConstant.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="isConstant.xml"> Customer[@CustomerID=1] </sql:xpath-query> </ROOT>To ścieżka do katalogu określonego dla mapowania schematu (isConstant.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.xml"Tworzenie i używanie skryptu testu 4.0 SQLXML (Sqlxml4test.vbs) do wykonać tego szablonu.
Aby uzyskać więcej informacji zobacz Przy użyciu obiektu ADO w celu wykonać kwerendy SQLXML.
Jest to zestaw wyników częściowych:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Customer CustomerID="1">
<CustomerOrders>
<Order SalesOrderID="43860" OrderDate="2001-08-01" CustomerID="1" />
<Order SalesOrderID="44501" OrderDate="2001-11-01" CustomerID="1" />
<Order SalesOrderID="45283" OrderDate="2002-02-01" CustomerID="1" />
<Order SalesOrderID="46042" OrderDate="2002-05-01" CustomerID="1" />
...
</CustomerOrders>
</Customer>
</ROOT>