Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
För att specificera ett konstant element – det vill säga ett element i XSD-schemat som inte mappas till någon databastabell eller kolumn – kan du använda sql:is-constant-annotationen . Denna annotation tar ett boolesk värde (0 = falskt, 1 = sant). De acceptabla värdena är 0, 1, sant och falskt. sql:is-konstant-annotationen kan specificeras på ett element som inte har några attribut. Om det anges på ett element med värdet true (eller 1), mappas inte det elementet till databasen men visas ändå i XML-dokumentet.
sql:is-konstant-annotationen kan användas för:
Att lägga till ett toppnivåelement i XML-dokumentet. XML kräver ett enda toppnivåelement (rotelement) för dokumentet.
Skapa containerelement, såsom ett <Order-element> som omsluter alla order.
sql:is-konstant-annotationen kan läggas till i ett <complexType-element>.
Examples
För att skapa arbetsprover med hjälp av följande exempel måste du uppfylla vissa krav. För mer information, se Krav för att köra SQLXML-exempel.
A. Specificering av sql:is-constant för att lägga till ett containerelement
I detta annoterade XSD-schema <definieras CustomerOrders> som ett konstant element genom att specificera attributet sql:is-constant med värdet 1. Därför <mappas inte CustomerOrders> till någon databastabell eller kolumn. Detta konstanta element består av Ordningens<> barnelement.
Även om <CustomerOrders> inte mappas till någon databastabell eller kolumn, visas det ändå i den resulterande XML:en som ett containerelement som innehåller <Order-barnelementen> .
<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>
För att testa en exempel-XPath-fråga mot schemat
Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som isConstant.xml.
Kopiera följande mall och klistra in den i en textfil. Spara filen som isConstantT.xml i samma katalog där du sparade 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>Den katalogväg som anges för mappningsschemat (isConstant.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:
mapping-schema="C:\MyDir\isConstant.xml"Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.
För mer information, se Användning av ADO för att köra SQLXML-frågor.
Detta är den partiella resultatmängden:
<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>