Supporto dell'associazione all'elemento SimpleContent

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. Non viene riconosciuta la restrizione che riguarda il contenuto semplice.

Descrizione

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> al di sotto dell'elemento <simpleContent>.

Xsd.exe non riconosce la restrizione che riguarda il contenuto semplice. L'estensione di contenuto semplice viene sempre espressa in maniera esplicita mediante le definizioni di classe in .NET Framework. Durante la generazione di codice sorgente da un documento dello schema XML, 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 nello schema XML e tipi .NET Framework, vedere "Supporto dei tipi di dati tra i tipi dello Schema XML (XSD) e i tipi di .NET Framework" nella guida per lo sviluppatore .NET Framework Developer's Guide.

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 contenenti contenuto semplice.

Esempio

Documento dello schema XML 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>

Classe C# generata dal precedente documento dello schema XML:

[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;
}

Tipo complesso ed elemento dello schema XML 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

Riferimenti

XmlSchemaSimpleContent

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.