Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Om een constant element te specificeren – dat wil zeggen een element in het XSD-schema dat niet naar een databasetabel of kolom wordt gekoppeld – kun je de sql:is-constant-annotatie gebruiken. Deze annotatie neemt een Booleaanse waarde aan (0 = onwaar, 1 = waar). De acceptabele waarden zijn 0, 1, waar en onwaar. De sql:is-constant-annotatie kan worden gespecificeerd op een element dat geen attributen heeft. Als het wordt gespecificeerd op een element met de waarde true (of 1), wordt dat element niet aan de database toegewezen maar verschijnt het nog steeds in het XML-document.
De sql:is-constante annotatie kan worden gebruikt voor:
Een top-level element toevoegen aan het XML-document. XML vereist één top-level element (root element) voor het document.
Het creëren van containerelementen, zoals een <Orders-element> dat alle orders ompakt.
De sql:is-constant-annotatie kan worden toegevoegd aan een <complexType-element> .
Voorbeelden
Om werkmonsters te maken met de volgende voorbeelden, moet je aan bepaalde eisen voldoen. Voor meer informatie, zie Vereisten voor het uitvoeren van SQLXML-voorbeelden.
Eén. SQL:is-constant specificeren om een containerelement toe te voegen
In dit geannoteerde XSD-schema <wordt CustomerOrders> gedefinieerd als een constant element door het sql:is-constant attribuut met een waarde van 1 te specificeren. Daarom <wordt CustomerOrders> niet toegewezen aan een databasetabel of kolom. Dit constante element bestaat uit de <Orde-kindelementen> .
Hoewel <CustomerOrders> niet naar een databasetabel of kolom wordt toegewezen, verschijnt het nog steeds in de resulterende XML als een containerelement met de <Order-kindelementen> .
<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>
Om een voorbeeld van een XPath-query te testen tegen het schema
Kopieer de bovenstaande schemacode en plak deze in een tekstbestand. Sla het bestand op als isConstant.xml.
Kopieer het volgende sjabloon en plak het in een tekstbestand. Sla het bestand op als isConstantT.xml in dezelfde map waar je isConstant.xmlhebt opgeslagen.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="isConstant.xml"> Customer[@CustomerID=1] </sql:xpath-query> </ROOT>Het directorypad dat voor het mappingschema (isConstant.xml) is gespecificeerd is relatief tot de map waar het sjabloon wordt opgeslagen. Een absoluut pad kan ook worden gespecificeerd, bijvoorbeeld:
mapping-schema="C:\MyDir\isConstant.xml"Maak het SQLXML 4.0 Test Script (Sqlxml4test.vbs) aan en gebruik het om het sjabloon uit te voeren.
Voor meer informatie, zie Gebruik ADO om SQLXML-queries uit te voeren.
Dit is de gedeeltelijke resultaatset:
<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>