XmlSchemaInference.TypeInference Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger det XmlSchemaInference.InferenceOption värde som påverkar typer som härleds från XML-dokumentet.
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
Egenskapsvärde
Ett XmlSchemaInference.InferenceOption objekt.
Exempel
Det här exemplet illustrerar hur typinferens påverkas av TypeInference egenskapen. Exempelkoden härleder typer från en XML-fil på två olika sätt: avslappnad och begränsad. Följande är xml-exempelfilen.
<?xml version="1.0"?>
<root>
<subElement1>ABC</subElement1>
<subElement2>123</subElement2>
</root>
Följande exempelkod instruerar XmlSchemaInference klassen att härleda xs:string element och attribut med enkelt innehåll.
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
Eftersom egenskapen TypeInference har angetts till Relaxedgenererades följande schema.
<?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>
Om egenskapen inte har angetts till TypeInferenceRelaxedi exempelkoden ovan XmlSchemaInference skulle klassen som standard ha genererat Restricted följande schema.
<?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>
Kommentarer
Om egenskapen TypeInference är inställd på Relaxedär den härledda typen av element och attribut i XML-dokumentet med enkelt innehåll alltid xs:string. Om egenskapen TypeInference är inställd Restrictedpå , härleds mer specifika typer, till exempel xs:date, xs:decimal, xs:unsignedByteoch så vidare.
Standardvärdet för TypeInference egenskapen är Restricted.