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.
In .NET Framework è incluso un supporto parziale per l'associazione all'elemento <anyAttribute>.
Durante la generazione di codice sorgente da un documento dello schema XML, Xsd.exe traduce l'elemento <anyAttribute> in un campo di tipo XmlAttribute, con un attributo XmlAnyAttributeAttribute.
Descrizione
Il carattere jolly <anyAttribute> consente la visualizzazione di qualsiasi attributo, ovvero un attributo con qualsiasi nome o tipo semplice, in un elemento specificato in un documento di istanza XML, con alcune limitazioni.
Durante la generazione di codice sorgente da un documento dello schema XML, Xsd.exe traduce l'elemento <anyAttribute> in un campo di tipo XmlAttribute, con un attributo XmlAnyAttributeAttribute. Tale attributo consente la rappresentazione degli attributi XML arbitrari in una classe senza associarli ai tipi non XML identificati da altri possibili campi o proprietà della classe.
Durante la generazione di un documento dello schema XML da un insieme di classi di un assembly, Xsd.exe esegue la conversione inversa, ovvero la conversione di un campo o una proprietà del tipo System.Xml.XmlAttribute con un attributo XmlAnyAttributeAttribute in un elemento <anyAttribute>.
Attributi namespace e processContents
Durante la generazione delle classi o delle definizioni dello schema XML, gli attributi namespace e processContents vengono ignorati. In altri termini, qualunque sia il valore degli attributi in questione in una definizione dello schema XML originale, quando Xsd.exe genera classi da tale definizione, quindi genera un altro schema XML da tali classi, l'elemento <anyAttribute> dello schema XML generato non dispone più di tali attributi. Pertanto l'ultimo schema ripristina i valori predefiniti seguenti:
namespace="##any": l'attributo namespace specifica gli spazi dei nomi in cui è necessario definire l'attributo. Il valore##anyconsente qualsiasi spazio dei nomi.processContents="strict": quando si convalida un documento di istanza XML per conformità al relativo schema XML specificato, verificare che tutti i tipi di elementi siano convalidati in base agli spazi dei nomi specificati. Se non viene riconosciuto un tipo di elemento, l’operazione di convalida non ha successo.
Analogamente, gli attributi namespace e processContents vengono ignorati anche durante la deserializzazione dai documenti XML agli oggetti. La classe XmlSerializer, invece, si comporta come se i due attributi fossero stati fissati secondo i valori seguenti:
namespace="##any": è il valore predefinito.processContents="lax": quando si convalida un documento di istanza XML per conformità al rispettivo schema XML specificato, convalidare l'attributo solo se è possibile ottenere il relativo spazio dei nomi; in caso contrario assicurarsi che il formato XML di un attributo non riconosciuto sia corretto.
Nota: |
|---|
Anche se in fase di esecuzione si presuppone il valore |
Xsd.exe e la classe XmlSerializer forniscono le stesse associazioni per gli attributi namespace e processContents quando vengono visualizzati nell'elemento <any>.
| Attributi possibili | Supporto per l'associazione |
|---|---|
id |
L'utilità Xsd.exe ignora l'attributo id che fornisce un identificatore univoco. |
namespace |
Vedere la sezione Attributi namespace e processContents in questo argomento. |
processContents |
Vedere la sezione Attributi namespace e processContents in questo argomento. |
Elementi padre possibili: <attributeGroup>, <complexType>, <extension>, <restriction>
Elementi figlio possibili: <annotation>
Vedere anche
Riferimenti
.gif)
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.
Nota: