XmlSchemaInference.TypeInference Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.