XmlSchemaChoice 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將來自 XML 結構描述的 choice
元素 (複合項),依全球資訊網協會 (W3C) 的規定表示。
choice
可讓一個執行個體中只允許其子系之一出現。
public ref class XmlSchemaChoice : System::Xml::Schema::XmlSchemaGroupBase
public class XmlSchemaChoice : System.Xml.Schema.XmlSchemaGroupBase
type XmlSchemaChoice = class
inherit XmlSchemaGroupBase
Public Class XmlSchemaChoice
Inherits XmlSchemaGroupBase
- 繼承
範例
下列範例會 choice
建立 專案。
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
class XmlSchemaExamples
{
public:
static void Main()
{
XmlSchema^ schema = gcnew XmlSchema();
// <xs:element name="selected"/>
XmlSchemaElement^ xeSelected = gcnew XmlSchemaElement();
xeSelected->Name = "selected";
schema->Items->Add(xeSelected);
// <xs:element name="unselected"/>
XmlSchemaElement^ xeUnselected = gcnew XmlSchemaElement();
xeUnselected->Name = "unselected";
schema->Items->Add(xeUnselected);
// <xs:element name="dimpled"/>
XmlSchemaElement^ xeDimpled = gcnew XmlSchemaElement();
xeDimpled->Name = "dimpled";
schema->Items->Add(xeDimpled);
// <xs:element name="perforated"/>
XmlSchemaElement^ xePerforated = gcnew XmlSchemaElement();
xePerforated->Name = "perforated";
schema->Items->Add(xePerforated);
// <xs:complexType name="chadState">
XmlSchemaComplexType^ chadState = gcnew XmlSchemaComplexType();
schema->Items->Add(chadState);
chadState->Name = "chadState";
// <xs:choice minOccurs="1" maxOccurs="1">
XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
chadState->Particle = choice;
choice->MinOccurs = 1;
choice->MaxOccurs = 1;
// <xs:element ref="selected"/>
XmlSchemaElement^ elementSelected = gcnew XmlSchemaElement();
choice->Items->Add(elementSelected);
elementSelected->RefName = gcnew XmlQualifiedName("selected");
// <xs:element ref="unselected"/>
XmlSchemaElement^ elementUnselected = gcnew XmlSchemaElement();
choice->Items->Add(elementUnselected);
elementUnselected->RefName = gcnew XmlQualifiedName("unselected");
// <xs:element ref="dimpled"/>
XmlSchemaElement^ elementDimpled = gcnew XmlSchemaElement();
choice->Items->Add(elementDimpled);
elementDimpled->RefName = gcnew XmlQualifiedName("dimpled");
// <xs:element ref="perforated"/>
XmlSchemaElement^ elementPerforated = gcnew XmlSchemaElement();
choice->Items->Add(elementPerforated);
elementPerforated->RefName = gcnew XmlQualifiedName("perforated");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
schemaSet->Add(schema);
schemaSet->Compile();
XmlSchema^ compiledSchema;
for each (XmlSchema^ schema1 in schemaSet->Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema->Write(Console::Out, nsmgr);
}
static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
{
Console::WriteLine(args->Message);
}
};
int main()
{
XmlSchemaExamples::Main();
return 0;
};
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples
{
public static void Main()
{
XmlSchema schema = new XmlSchema();
// <xs:element name="selected"/>
XmlSchemaElement xeSelected = new XmlSchemaElement();
xeSelected.Name = "selected";
schema.Items.Add(xeSelected);
// <xs:element name="unselected"/>
XmlSchemaElement xeUnselected = new XmlSchemaElement();
xeUnselected.Name = "unselected";
schema.Items.Add(xeUnselected);
// <xs:element name="dimpled"/>
XmlSchemaElement xeDimpled = new XmlSchemaElement();
xeDimpled.Name = "dimpled";
schema.Items.Add(xeDimpled);
// <xs:element name="perforated"/>
XmlSchemaElement xePerforated = new XmlSchemaElement();
xePerforated.Name = "perforated";
schema.Items.Add(xePerforated);
// <xs:complexType name="chadState">
XmlSchemaComplexType chadState = new XmlSchemaComplexType();
schema.Items.Add(chadState);
chadState.Name = "chadState";
// <xs:choice minOccurs="1" maxOccurs="1">
XmlSchemaChoice choice = new XmlSchemaChoice();
chadState.Particle = choice;
choice.MinOccurs = 1;
choice.MaxOccurs = 1;
// <xs:element ref="selected"/>
XmlSchemaElement elementSelected = new XmlSchemaElement();
choice.Items.Add(elementSelected);
elementSelected.RefName = new XmlQualifiedName("selected");
// <xs:element ref="unselected"/>
XmlSchemaElement elementUnselected = new XmlSchemaElement();
choice.Items.Add(elementUnselected);
elementUnselected.RefName = new XmlQualifiedName("unselected");
// <xs:element ref="dimpled"/>
XmlSchemaElement elementDimpled = new XmlSchemaElement();
choice.Items.Add(elementDimpled);
elementDimpled.RefName = new XmlQualifiedName("dimpled");
// <xs:element ref="perforated"/>
XmlSchemaElement elementPerforated = new XmlSchemaElement();
choice.Items.Add(elementPerforated);
elementPerforated.RefName = new XmlQualifiedName("perforated");
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
schemaSet.Add(schema);
schemaSet.Compile();
XmlSchema compiledSchema = null;
foreach (XmlSchema schema1 in schemaSet.Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema.Write(Console.Out, nsmgr);
}
public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
{
Console.WriteLine(args.Message);
}
}
Option Strict On
Option Explicit On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:element name="selected"/>
Dim xeSelected As New XmlSchemaElement()
xeSelected.Name = "selected"
schema.Items.Add(xeSelected)
' <xs:element name="unselected"/>
Dim xeUnselected As New XmlSchemaElement()
xeUnselected.Name = "unselected"
schema.Items.Add(xeUnselected)
' <xs:element name="dimpled"/>
Dim xeDimpled As New XmlSchemaElement()
xeDimpled.Name = "dimpled"
schema.Items.Add(xeDimpled)
' <xs:element name="perforated"/>
Dim xePerforated As New XmlSchemaElement()
xePerforated.Name = "perforated"
schema.Items.Add(xePerforated)
' <xs:complexType name="chadState">
Dim chadState As New XmlSchemaComplexType()
schema.Items.Add(chadState)
chadState.Name = "chadState"
' <xs:choice minOccurs="1" maxOccurs="1">
Dim choice As New XmlSchemaChoice()
chadState.Particle = choice
choice.MinOccurs = 1
choice.MaxOccurs = 1
' <xs:element ref="selected"/>
Dim elementSelected As New XmlSchemaElement()
choice.Items.Add(elementSelected)
elementSelected.RefName = New XmlQualifiedName("selected")
' <xs:element ref="unselected"/>
Dim elementUnselected As New XmlSchemaElement()
choice.Items.Add(elementUnselected)
elementUnselected.RefName = New XmlQualifiedName("unselected")
' <xs:element ref="dimpled"/>
Dim elementDimpled As New XmlSchemaElement()
choice.Items.Add(elementDimpled)
elementDimpled.RefName = New XmlQualifiedName("dimpled")
' <xs:element ref="perforated"/>
Dim elementPerforated As New XmlSchemaElement()
choice.Items.Add(elementPerforated)
elementPerforated.RefName = New XmlQualifiedName("perforated")
Dim schemaSet As New XmlSchemaSet()
AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne
schemaSet.Add(schema)
schemaSet.Compile()
Dim compiledSchema As XmlSchema = Nothing
For Each schema1 As XmlSchema In schemaSet.Schemas()
compiledSchema = schema1
Next
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
compiledSchema.Write(Console.Out, nsmgr)
End Sub
Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
上述程式碼範例會產生下列 XML 檔案。
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="selected"/>
<xs:element name="unselected"/>
<xs:element name="dimpled"/>
<xs:element name="perforated"/>
<xs:complexType name="chadState">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element ref="selected"/>
<xs:element ref="unselected"/>
<xs:element ref="dimpled"/>
<xs:element ref="perforated"/>
</xs:choice>
</xs:complexType>
</xs:schema>
建構函式
XmlSchemaChoice() |
初始化 XmlSchemaChoice 類別的新執行個體。 |
屬性
Annotation |
取得或設定 |
Id |
取得或設定字串 ID。 (繼承來源 XmlSchemaAnnotated) |
Items |
取得以複合項 ( |
LineNumber |
取得或設定 |
LinePosition |
取得或設定 |
MaxOccurs |
取得或設定物件可以發生的最大次數。 (繼承來源 XmlSchemaParticle) |
MaxOccursString |
取得或設定數值為字串值。 物件可以發生的最大次數。 (繼承來源 XmlSchemaParticle) |
MinOccurs |
取得或設定物件可以發生的最小次數。 (繼承來源 XmlSchemaParticle) |
MinOccursString |
取得或設定數值為字串值。 物件可以發生的最小次數。 (繼承來源 XmlSchemaParticle) |
Namespaces |
取得或設定 XmlSerializerNamespaces,以便與這個結構描述物件一起使用。 (繼承來源 XmlSchemaObject) |
Parent |
取得或設定這個 XmlSchemaObject 的父項。 (繼承來源 XmlSchemaObject) |
SourceUri |
取得或設定載入結構描述之檔案的來源位置。 (繼承來源 XmlSchemaObject) |
UnhandledAttributes |
取得或設定不屬於目前結構描述之目標命名空間的限定屬性 (Attribute)。 (繼承來源 XmlSchemaAnnotated) |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |