Aracılığıyla paylaş


XmlSchemaInference.TypeInference Özellik

Tanım

XML belgesinden çıkarılan türleri etkileyen değeri alır veya ayarlar XmlSchemaInference.InferenceOption .

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

Özellik Değeri

XmlSchemaInference.InferenceOption

Bir XmlSchemaInference.InferenceOption nesnesi.

Örnekler

Bu örnekte, tür çıkarımının TypeInference özelliğinden nasıl etkilendiği gösterilmektedir. Örnek kod, xml dosyasından türleri iki farklı şekilde çıkarsar: gevşek ve kısıtlanmış. Aşağıda örnek XML dosyası verilmiştir.

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

Aşağıdaki örnek kod, sınıfına XmlSchemaInference basit içerik içeren öğeleri ve öznitelikleri çıkarmasını xs:string bildirir.

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

TypeInference özelliği olarak Relaxedayarlandığından aşağıdaki şema oluşturulmuştur.

<?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>

Yukarıdaki örnek kodda, özelliği olarak XmlSchemaInference Relaxedayarlanmamışsa TypeInference sınıfı varsayılan olarak Restricted şu şemayı oluşturmuş olurdu.

<?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>

Açıklamalar

TypeInference özelliği olarak Relaxedayarlanırsa, XML belgesindeki basit içeriğe sahip öğelerin ve özniteliklerin çıkarsanan türü her zaman xs:stringolur. TypeInference özelliği olarak Restrictedayarlanırsa , xs:decimal, xs:unsignedBytevb. gibi xs:datedaha belirli türler çıkarılır.

özelliğinin TypeInference varsayılan değeri şeklindedir Restricted.

Şunlara uygulanır