Specifica dei valori predefiniti per gli attributi dello schema XDR (schema XDR)
Importante |
---|
Questo argomento è incluso come riferimento per le applicazioni legacy. Per questa funzionalità non è previsto alcun progetto di sviluppo in futuro, pertanto si consiglia di evitare di utilizzarla in un nuovo progetto di sviluppo. Utilizzare invece gli schemi XSD con annotazioni per creare le viste XML. Per ulteriori informazioni, vedere Introduzione agli schemi XSD con annotazioni (SQLXML 4.0). È possibile convertire gli schemi XDR con annotazioni esistenti in schemi XSD. Per ulteriori informazioni, vedere Conversione di schemi XDR con annotazioni in schemi XSD equivalenti (SQLXML 4.0). |
Alle colonne di un database è possibile assegnare valori predefiniti. Allo stesso modo, è possibile assegnare valori predefiniti agli attributi di uno schema XDR. Non è invece possibile assegnare valori predefiniti agli elementi di uno schema XDR. Tale schema consente la specifica degli attributi default in <AttributeType>.
Se un valore di colonna associato a un attributo è NULL, l'attributo in questione non viene restituito per quell'istanza dell'elemento. Ma se viene specificato l'attributo default in <AttributeType>, l'attributo viene restituito con il valore predefinito specificato.
Quando ad esempio si estraggono dati dal database in un documento XML, in assenza di uno dei valori dell'attributo, per quest'ultimo verrà utilizzato un valore predefinito nello schema XDR.
[!NOTA]
È possibile che i valori predefiniti non vengano visualizzati nel documento restituito. È invece possibile che tali valori vengano utilizzati dal parser di convalida ogni volta che l'attributo non è presente.
[!NOTA]
Il valore predefinito viene utilizzato se il parser in uso riconosce lo schema. In altre parole, per il parser MSXML è necessario assicurarsi che il flag resolveExternals sia impostato su TRUE (l'impostazione predefinita). Il parser recupererà gli schemi successivamente. Una volta analizzate, le singole istanze disporranno degli attributi (per i quali viene specificato il valore predefinito) indipendentemente dall'inclusione o meno degli attributi nel documento XML. Il valore predefinito viene fornito da DOM.
Esempi
Per creare esempi reali utilizzando gli esempi seguenti, è necessario soddisfare alcuni requisiti. Per ulteriori informazioni, vedere Requisiti per l'esecuzione di esempi di SQLXML.
A. Specifica del valore predefinito per un attributo dello schema XDR
In questo esempio all'attributo Title viene fornito il valore predefinito "XYZ". Quando vengono recuperati i record dei contatti, viene assegnato un valore predefinito per i contatti che non dispongono di un titolo.
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ElementType name="Person.Contact" >
<AttributeType name="CID" />
<AttributeType name="FirstName" />
<AttributeType name="LastName" />
<AttributeType name="Title" default="XYZ"/>
<attribute type="CID" sql:field="ContactID" />
<attribute type="FirstName" />
<attribute type="LastName" />
<attribute type="Title" />
</ElementType>
</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 con il nome DefaultValueXdr.xml.
Copiare il modello seguente e incollarlo in un file di testo. Salvare il file con il nome DefaultValueXdrT.xml nella stessa directory in cui è stato salvato il file DefaultValueXdr.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="DefaultValueXdr.xml"> /Person.Contact[@CID > 1000 and @CID < 1006] </sql:xpath-query> </ROOT>
Il percorso della directory specificato per lo schema di mapping (DefaultValueXdr.xml) è relativo alla directory in cui è salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\MyDir\DefaultValueXdr.xml"
Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per ulteriori informazioni, vedere Utilizzo di ADO per eseguire query SQLXML 4.0.
Set di risultati:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact CID="1001" FirstName="Terri" LastName="Duffy" />
<Person.Contact CID="1002" FirstName="Roberto" LastName="Tamburello" />
<Person.Contact CID="1003" FirstName="Michael" LastName="Sullivan" />
<Person.Contact CID="1004" FirstName="Sharon" LastName="Salavaria" />
<Person.Contact CID="1005" FirstName="Gail" LastName="Erickson" Title="Ms." />
</ROOT>