Partager via


XmlSchemaInference.TypeInference Propriété

Définition

Obtient ou définit la valeur XmlSchemaInference.InferenceOption qui a un impact sur 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é

XmlSchemaInference.InferenceOption

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 = gcnew XmlSchemaSet();
XmlSchemaInference^ schema = gcnew XmlSchemaInference();

schema->TypeInference = XmlSchemaInference::InferenceOption::Relaxed;

schemaSet = schema->InferSchema(reader);

for each (XmlSchema^ s in schemaSet->Schemas())
{
    s->Write(Console::Out);
}
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 sur Relaxed, 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 et Restricted 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 sur Relaxed, 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 sur Restricted, des types plus spécifiques sont déduits, tels que xs:date, xs:decimal, xs:unsignedByte, etc.

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

S’applique à