Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per specificare un elemento costante, ovvero un elemento nello schema XSD che non esegue il mapping ad alcuna tabella di database o colonna, è possibile utilizzare l'annotazione sql:is-constant . Questa annotazione accetta un valore booleano (0 = false, 1 = true). I valori possibili sono 0, 1, true e false. L'annotazione sql:is-constant può essere specificata su un elemento che non dispone di attributi. Se viene specificato in un elemento con il valore true (o 1), tale elemento non viene mappato al database ma viene comunque visualizzato nel documento XML.
L'annotazione sql:is-constant può essere usata per:
Aggiunta di un elemento di primo livello al documento XML. XML richiede un singolo elemento di primo livello (elemento radice) per il documento.
Creazione di elementi contenitore, ad esempio un <elemento Orders> che esegue il wrapping di tutti gli ordini.
L'annotazione sql:is-constant può essere aggiunta a un <elemento complexType> .
Esempi
Per creare esempi reali utilizzando gli esempi seguenti, è necessario soddisfare alcuni requisiti. Per altre informazioni, vedere Requisiti per l'esecuzione di esempi SQLXML.
Un. Specifica di sql:is-constant per aggiungere un elemento contenitore
In questo schema XSD con annotazioni,< CustomerOrders> viene definito come elemento costante specificando l'attributo sql:is-constant con un valore 1. Pertanto, <CustomerOrders> non è mappato ad alcuna tabella o colonna di database. Questo elemento costante è costituito dagli <elementi figlio Order> .
Anche se <CustomerOrders> non esegue il mapping ad alcuna tabella o colonna di database, viene comunque visualizzato nel codice XML risultante come elemento contenitore contenente gli <elementi figlio Order> .
<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>
Per testare una query Xpath di esempio sullo schema
Copiare il codice dello schema precedente e incollarlo in un file di testo. Salvare il file come isConstant.xml.
Copiare il modello seguente e incollarlo in un file di testo. Salvare il file come isConstantT.xml nella stessa directory in cui è stato salvato 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>Il percorso della directory specificato per lo schema di mapping (isConstant.xml) è relativo alla directory in cui viene salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\MyDir\isConstant.xml"Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML.
Questo è il set di risultati parziale:
<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>