Condividi tramite


Supporto dell'associazione all'elemento SimpleContent

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 parziale per l'associazione all'elemento <simpleContent>.

L'estensione di contenuto semplice viene sempre espressa in maniera esplicita mediante le definizioni di classe in .NET Framework. Xsd.exe non riconosce la restrizione che riguarda il contenuto semplice.

Spiegazione

Il linguaggio XSD (XML Schema Definition) utilizza l'elemento <simpleContent> per definire un tipo complesso che non contiene elementi figlio. Un tipo complesso con contenuto semplice (attributi o testo del corpo o entrambi) viene derivato da un tipo base mediante estensione o restrizione, ovvero mediante l'utilizzo di un elemento <extension> o <restriction> nell'elemento <simpleContent>.

Durante la generazione di codice sorgente da un documento XML Schema, Xsd.exe produce un campo pubblico di un tipo che corrisponde al tipo base, specificato dall'attributo base dell'elemento <extension>. Per le associazioni tra tipi semplici incorporati in XML Schema e i tipi .NET Framework, vedere "Supporto dei tipi di dati tra i tipi di XML Schema (XSD) e i tipi di .NET Framework" nella guida per lo sviluppatore di .NET Framework.

L'estensione e la restrizione relative al contenuto semplice sono rappresentate nel modello SOM (Schema Object Model) mediante le classi XmlSchemaSimpleContentExtension e XmlSchemaSimpleContentRestriction rispettivamente, nonché mediante la classe XmlSchemaSimpleContent.

È possibile utilizzare gli oggetti di tali classi per creare a livello di codice un modello SOM corrispondente a un documento XSD che definisce tipi complessi con contenuto semplice.

Esempio

Il codice seguente è il 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="Distance">
  <xsd:complexType>
   <xsd:simpleContent>
    <xsd:extension base="xsd:float">
     <xsd:attribute name="units" type="xsd:string"/>
    </xsd:extension>
   </xsd:simpleContent>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>

La classe C# generata dal documento XML Schema precedente.

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://example.org/", IsNullable=false)]
public class Distance {
        
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string units;
        
    [System.Xml.Serialization.XmlTextAttribute()]
    public System.Single Value;
}

Il tipo complesso e l'elemento XML Schema generato da un assembly compilato dal codice sorgente C# precedente.

<xs:element name="Distance" type="tns:Distance" />
<xs:complexType name="Distance">
  <xs:simpleContent>
    <xs:extension base="xs:float">
      <xs:attribute name="units" type="xs:string" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

Attributi possibili Supporto per l'associazione

id

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

Elementi padre possibili: <complexType>

Elementi figlio possibili: <annotation>, <extension>, <restriction>

Vedere anche

Riferimento

XmlSchemaSimpleContent