Condividi tramite


Supporto dell'associazione all'elemento all

Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.

In .NET Framework è incluso un supporto per l'associazione all'elemento <all>.

Non esiste, tuttavia, alcun metodo per specificare l'elemento <all> nel codice per consentirne la creazione durante la generazione di un documento XML Schema da un set di classi.

Descrizione

Non esiste alcun metodo per specificare l'elemento <all> nel codice per consentirne la creazione durante la generazione di un documento XML Schema da un set di classi.

L'elemento <all> offre un raggruppamento non ordinato di elementi. Ognuno degli elementi figlio può essere visualizzato una sola volta o non essere visualizzato affatto.

Durante la generazione di codice sorgente da un documento XML Schema, Xsd.exe converte ogni elemento figlio dell'elemento <all> in un campo pubblico. I campi vengono visualizzati nello stesso ordine degli elementi figlio dello schema XML.

Durante la generazione di un documento XML Schema da un set di classi di un assembly, Xsd.exe utilizza un elemento <sequence> invece che un elemento <all> per raggruppare gli elementi figlio corrispondenti nei campi pubblici. Il presupposto è che gli elementi compresi in un tipo complesso devono essere elencati in maniera ordinata.

Non utilizzare la funzionalità di conservazione dell'ordine (l'opzione /order di Xsd.exe) quando si importano gli schemi che contengono un elemento <all>.

Esempio

Documento XML Schema di input:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified">
    <xsd:element name="complexInstance" type="MyComplexType"/>
    <xsd:element name="field1" type="xsd:string"/>
    <xsd:element name="field2" type="xsd:string"/>
    <xsd:element name="field3" type="xsd:string"/>

    <xsd:complexType name="MyComplexType">
        <xsd:all>
            <xsd:element ref="field1"/>
            <xsd:element ref="field2"/>
            <xsd:element ref="field3"/>
        </xsd:all>
    </xsd:complexType>
</xsd:schema>

Classe C# generata dal precedente documento XML Schema:

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
 [System.Xml.Serialization.XmlRootAttribute("complexInstance", Namespace="http://example.org/", IsNullable=false)]
public class MyComplexType {
        
    public string field1;
        
    public string field2;
        
    public string field3;
}

Tipo complesso di XML Schema generato da un assembly compilato dal codice sorgente C# precedente:

<xs:complexType name="MyComplexType">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="field1" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="field2" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="field3" type="xs:string" />
    </xs:sequence>
</xs:complexType>

Attributi possibili Supporto per l'associazione

id

L'utilità Xsd.exe ignora l'attributo id che fornisce un identificatore univoco.

maxOccurs

Per l'elemento <all> qualsiasi valore dell'attributo maxOccurs diverso da 1 non è valido. Xsd.exe segnala un errore in caso di valore non valido.

Vedere l'attributo Supporto dell'associazione all'attributo MaxOccurs.

minOccurs

Lo strumento Xsd.exe ignora l'attributo minOccurs quando viene applicato all'elemento <all>.

Vedere l'attributo Supporto dell'associazione all'attributo MinOccurs.

Elementi padre possibili: <complexType>, <extension>, <group>, <restriction>

Elementi figlio possibili: <annotation>, <element>