XmlSchemaInference.TypeInference Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den XmlSchemaInference.InferenceOption-Wert ab, der sich auf vom XML-Dokument abgeleitete Typen auswirkt, oder legt diesen fest.
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
Eigenschaftswert
Ein XmlSchemaInference.InferenceOption-Objekt.
Beispiele
In diesem Beispiel wird veranschaulicht, wie die Typinference von der TypeInference Eigenschaft betroffen ist. Der Beispielcode leitet Typen aus einer XML-Datei auf zwei verschiedene Arten ab: entspannt und eingeschränkt. Im Folgenden sehen Sie die XML-Beispieldatei.
<?xml version="1.0"?>
<root>
<subElement1>ABC</subElement1>
<subElement2>123</subElement2>
</root>
Im folgenden Beispielcode wird die XmlSchemaInference Klasse aufgefordert, Elemente und Attribute mit einfachen Inhalten zu verwenden xs:string
.
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
Da die Eigenschaft auf Relaxed"Festgelegt" festgelegt wurde, wurde das TypeInference folgende Schema generiert.
<?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>
Wenn die Eigenschaft im obigen Beispielcode nicht auf Relaxedfestgelegt wurde, hätte die XmlSchemaInference TypeInference Klasse standardmäßig Restricted das folgende Schema generiert und generiert.
<?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>
Hinweise
Wenn die TypeInference Eigenschaft auf Relaxed" festgelegt ist , ist der verzögerte Typ von Elementen und Attributen im XML-Dokument mit einfachem Inhalt immer xs:string
. Wenn die TypeInference Eigenschaft auf Restricted" festgelegt" ist , werden spezifischere Typen abgeleitet, zxs:date
. B. , , xs:decimal``xs:unsignedByte
usw.
Der Standardwert der TypeInference Eigenschaft ist Restricted.