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ı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
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:string
olur. TypeInference özelliği olarak Restrictedayarlanırsa , xs:decimal
, xs:unsignedByte
vb. gibi xs:date
daha belirli türler çıkarılır.
özelliğinin TypeInference varsayılan değeri şeklindedir Restricted.