Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Egy állandó elem megadásához – vagyis egy olyan elem az XSD sémában, amely nem egyezik le egyetlen adatbázis táblával vagy oszloptal sem – használhatod a sql:is-constant annotációt. Ez az annotáció egy Boole-értéket vesz fel (0 = hamis, 1 = igaz). Az elfogadható értékek 0, 1, igaz és hamis. A sql:is-constant annotáció megadható olyan elemre, amelynek nincs attribútuma. Ha egy olyan elemen van megadva, amelynek értéke true (vagy 1), az az elem nem jelenik meg az adatbázishoz, de továbbra is megjelenik az XML dokumentumban.
A sql:is-constant annotáció használható a következőkre:
Egy felső szintű elem hozzáadása az XML dokumentumhoz. Az XML-hez egyetlen felső szintű elem (gyökérelem) szükséges a dokumentumhoz.
Konténerelemek létrehozása, például egy <Orders> elem, amely minden rendelést becsomagol.
A sql:is-constant annotáció hozzáadható egy< complexType> elemhez.
Példák
A következő példák alapján működő minták létrehozásához bizonyos követelményeknek kell megfelelned. További információért lásd: Az SQLXML futtatási követelmények példái.
A. A sql:is-constant meghatározása egy konténer elem hozzáadásához
Ebben az annotált XSD sémában <a CustomerOrders> állandó elemként definiálható azáltal, hogy megadjuk a sql:is-constant attribútumot 1 értékkel. Ezért <a CustomerOrders> nincs leképezve egyetlen adatbázis táblához vagy oszlophoz. Ez az állandó elem a Order> gyermekelemekből áll<.
Bár <a CustomerOrders> nem egyezik le semmilyen adatbázis táblára vagy oszlopra, az XML-ben mégis megjelenik egy konténerelemként, amely tartalmazza a <Order> gyermek elemeket.
<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>
Egy minta-XPath lekérdezés tesztelése a sémához
Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt isConstant.xml.
Másold le a következő sablont, és illesztsd be egy szövegfájlba. Mentsd a fájlt isConstantT.xml-ként ugyanabba a könyvtárba, ahol isConstant.xmlmentetted.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="isConstant.xml"> Customer[@CustomerID=1] </sql:xpath-query> </ROOT>A leképezési sémához (isConstant.xml) megadott könyvtári út viszonyítja azt a könyvtárat, ahol a sablon mentő. Abszolút út is meghatározható, például:
mapping-schema="C:\MyDir\isConstant.xml"Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.
További információért lásd: Using ADO to execute SQLXML Queries.
Ez a részleges eredményhalmaz:
<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>