Partager via


XmlSchemaInference.Occurrence Propriété

Définition

Obtient ou définit la XmlSchemaInference.InferenceOption valeur qui affecte les déclarations d’occurrence de schéma déduites à partir du document XML.

public:
 property System::Xml::Schema::XmlSchemaInference::InferenceOption Occurrence { System::Xml::Schema::XmlSchemaInference::InferenceOption get(); void set(System::Xml::Schema::XmlSchemaInference::InferenceOption value); };
public System.Xml.Schema.XmlSchemaInference.InferenceOption Occurrence { get; set; }
member this.Occurrence : System.Xml.Schema.XmlSchemaInference.InferenceOption with get, set
Public Property Occurrence As XmlSchemaInference.InferenceOption

Valeur de propriété

Objet XmlSchemaInference.InferenceOption.

Exemples

Cet exemple montre comment l’occurrence est affectée par la Occurrence propriété. L’exemple de code déduit l’occurrence d’un fichier XML de deux façons différentes : détendu et restreint. Voici l’exemple de fichier XML.

<?xml version="1.0"?>
<root>
    <subElement1 attribute1="text">ABC</subElement1>
</root>

L’exemple de code suivant indique à la XmlSchemaInference classe de déduire l’occurrence d’éléments et d’attributs de manière détendue.

XmlReader reader = XmlReader.Create("input.xml");
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchemaInference schema = new XmlSchemaInference();

schema.Occurrence = XmlSchemaInference.InferenceOption.Relaxed;

schemaSet = schema.InferSchema(reader);

foreach (XmlSchema s in schemaSet.Schemas())
{
    s.Write(Console.Out);
}
Dim reader As XmlReader = XmlReader.Create("input.xml")
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
Dim schema As XmlSchemaInference = New XmlSchemaInference()

schema.Occurrence = XmlSchemaInference.InferenceOption.Relaxed

schemaSet = schema.InferSchema(reader)

For Each s As XmlSchema In schemaSet.Schemas()
    s.Write(Console.Out)
Next

Étant donné que la Occurrence propriété a été définie Relaxedsur , le schéma suivant a été généré.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="subElement1">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                            <xs:attribute name="attribute1" type="xs:string" use="optional"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Dans l’exemple de code ci-dessus, si la Occurrence propriété n’a pas été définie Relaxedsur , la XmlSchemaInference classe aurait par défaut défini Restricted sur et généré le schéma suivant.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="subElement1">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="attribute1" type="xs:string" use="required"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Remarques

Si la Occurrence propriété est définie Restrictedsur , la première fois que les éléments sont rencontrés dans le document XML, la déclaration de schéma est déduite en tant que minOccurs="1". Lorsque des attributs sont rencontrés, la déclaration de schéma est déduite en tant que use="required".

Si la Occurrence propriété est définie Relaxedsur , les déclarations de schéma d’élément sont déduites en tant que minOccurs="0", et les déclarations de schéma d’attribut sont déduites en tant que use="optional".

La valeur par défaut de la propriété Occurrence est Restricted.

S’applique à