XmlSchemaChoice 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
按万维网联合会 (W3C) 指定的方式表示来自 XML 架构的 choice
元素(复合器)。
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 |
获取或设置不属于当前架构目标命名空间的限定特性。 (继承自 XmlSchemaAnnotated) |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |