Supporto dell'associazione all'elemento AnyAttribute

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 ##any consente 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.

NoteNota:

Anche se in fase di esecuzione si presuppone il valore processContents="lax", in fase di distribuzione .NET Framework genera definizioni di schema XML in cui viene specificato implicitamente il valore processContents="strict" predefinito.

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

XmlAnyAttributeAttribute

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.