Sdílet prostřednictvím


XmlSchemaInference.TypeInference Vlastnost

Definice

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í. Ukázkový kód odvodí typy ze souboru XML dvěma různými způsoby: uvolněným a omezeným. Následuje příklad souboru XML.

<?xml version="1.0"?>
<root>
    <subElement1>ABC</subElement1>
    <subElement2>123</subElement2>
</root>

Následující příklad kódu dává třídě pokyn XmlSchemaInference , aby odvodil xs:string prvky a atributy s jednoduchým obsahem.

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, následující schéma bylo generováno.

<?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 kódu výše, pokud TypeInference vlastnost nebyla nastavena na Relaxed, XmlSchemaInference třída by ve výchozím nastavení a vygenerovala Restricted 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

Pokud je vlastnost nastavena TypeInference na Relaxed, odvozený typ elementů a atributů v dokumentu XML s jednoduchým obsahem je vždy xs:string. Pokud je vlastnost nastavena TypeInference na Restricted, konkrétnější typy jsou odvozeny, například xs:date, xs:decimal, xs:unsignedBytea tak dále.

Výchozí hodnota TypeInference vlastnosti je Restricted.

Platí pro