Partager via


XmlSchemaInference.TypeInference Propriété

Définition

Obtient ou définit la XmlSchemaInference.InferenceOption valeur qui affecte les types déduits du document XML.

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

Valeur de propriété

Objet XmlSchemaInference.InferenceOption.

Exemples

Cet exemple montre comment l’inférence de type est affectée par la TypeInference propriété. L’exemple de code déduit les types 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>ABC</subElement1>
    <subElement2>123</subElement2>
</root>

L’exemple de code suivant indique à la XmlSchemaInference classe de déduire xs:string des éléments et des attributs avec du contenu simple.

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

schema.TypeInference = 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.TypeInference = XmlSchemaInference.InferenceOption.Relaxed

schemaSet = schema.InferSchema(reader)

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

Étant donné que la TypeInference 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 name="subElement1" type="xs:string" />
                <xs:element name="subElement2" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Dans l’exemple de code ci-dessus, si la TypeInference 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" type="xs:string" />
                <xs:element name="subElement2" type="xs:unsignedByte" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Remarques

Si la TypeInference propriété est définie Relaxedsur , le type déduit d’éléments et d’attributs dans le document XML avec du contenu simple est toujours xs:string. Si la TypeInference propriété est définie Restrictedsur , des types plus spécifiques sont déduits, tels que xs:date, xs:decimal, xs:unsignedByteetc.

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

S’applique à