Aracılığıyla paylaş


XmlSchemaInference.TypeInference Özellik

Tanım

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

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

Bir XmlSchemaInference.InferenceOption nesnesi.

Örnekler

Bu örnek, tür çıkarımının özelliğinden TypeInference nasıl etkilendiğini gösterir. Örnek kod, xml dosyasındaki türleri iki farklı şekilde çıkartır: 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çeriğe sahip öğeleri ve öznitelikleri çıkarmasını xs:string bildirir.

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 ayarlandığından Relaxedaşağıdaki şema oluşturuldu.

<?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 XmlSchemaInferenceRelaxedayarlanmamışsa TypeInference sınıfı varsayılan olarak Restricted ayarlanmış ve aşağıdaki şemayı oluşturmuş olabilir.

<?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 çıkarımlı 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ğeridir Restricted.

Şunlara uygulanır