XmlSchemaInference.TypeInference Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví XmlSchemaInference.InferenceOption hodnotu, která ovlivňuje typy odvozené z dokumentu 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
Hodnota vlastnosti
Objekt XmlSchemaInference.InferenceOption.
Příklady
Tento příklad ukazuje, jak je odvození typu ovlivněno TypeInference vlastností. Příklad kódu odvozuje typy ze souboru XML dvěma různými způsoby: uvolněné a omezené. Následuje příklad souboru XML.
<?xml version="1.0"?>
<root>
<subElement1>ABC</subElement1>
<subElement2>123</subElement2>
</root>
Následující ukázkový kód dává třídě pokyn XmlSchemaInference , aby odvozoval xs:string
prvky a atributy s jednoduchým obsahem.
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
Vzhledem k tomu, že TypeInference vlastnost byla nastavena na Relaxed, bylo generováno následující schéma.
<?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>
V příkladu výše uvedený kód, pokud TypeInference vlastnost nebyla nastavena na Relaxed, XmlSchemaInference třída by měla výchozí hodnotu Restricted a vygenerovala následující schéma.
<?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>
Poznámky
TypeInference Pokud je vlastnost nastavena na Relaxed, odvozený typ elementů a atributů v dokumentu XML s jednoduchým obsahem je vždy xs:string
. TypeInference Pokud je vlastnost nastavena na Restricted, konkrétnější typy jsou odvozeny, například xs:date
, xs:decimal
, atdxs:unsignedByte
.
Výchozí hodnota TypeInference vlastnosti je Restricted.