XmlSchemaInference.TypeInference Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.