XmlSchemaGroup 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將來自 XML 結構描述的 group
項目依 World Wide Web Consortium (W3C) 規定表示。 這個類別會在 schema
層級定義從複雜型別參考而來的群組。 它會群組一組元素宣告,以做為一個群組加入複雜類型定義中。
public ref class XmlSchemaGroup : System::Xml::Schema::XmlSchemaAnnotated
public class XmlSchemaGroup : System.Xml.Schema.XmlSchemaAnnotated
type XmlSchemaGroup = class
inherit XmlSchemaAnnotated
Public Class XmlSchemaGroup
Inherits XmlSchemaAnnotated
- 繼承
範例
下列範例顯示 類別的使用 XmlSchemaGroup
。
#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="thing1" type="xs:string"/>
XmlSchemaElement^ elementThing1 = gcnew XmlSchemaElement();
schema->Items->Add(elementThing1);
elementThing1->Name = "thing1";
elementThing1->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="thing2" type="xs:string"/>
XmlSchemaElement^ elementThing2 = gcnew XmlSchemaElement();
schema->Items->Add(elementThing2);
elementThing2->Name = "thing2";
elementThing2->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="thing3" type="xs:string"/>
XmlSchemaElement^ elementThing3 = gcnew XmlSchemaElement();
schema->Items->Add(elementThing3);
elementThing3->Name = "thing3";
elementThing3->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:attribute name="myAttribute" type="xs:decimal"/>
XmlSchemaAttribute^ myAttribute = gcnew XmlSchemaAttribute();
schema->Items->Add(myAttribute);
myAttribute->Name = "myAttribute";
myAttribute->SchemaTypeName = gcnew XmlQualifiedName("decimal", "http://www.w3.org/2001/XMLSchema");
// <xs:group name="myGroupOfThings">
XmlSchemaGroup^ myGroupOfThings = gcnew XmlSchemaGroup();
schema->Items->Add(myGroupOfThings);
myGroupOfThings->Name = "myGroupOfThings";
// <xs:sequence>
XmlSchemaSequence^ sequence = gcnew XmlSchemaSequence();
myGroupOfThings->Particle = sequence;
// <xs:element ref="thing1"/>
XmlSchemaElement^ elementThing1Ref = gcnew XmlSchemaElement();
sequence->Items->Add(elementThing1Ref);
elementThing1Ref->RefName = gcnew XmlQualifiedName("thing1");
// <xs:element ref="thing2"/>
XmlSchemaElement^ elementThing2Ref = gcnew XmlSchemaElement();
sequence->Items->Add(elementThing2Ref);
elementThing2Ref->RefName = gcnew XmlQualifiedName("thing2");
// <xs:element ref="thing3"/>
XmlSchemaElement^ elementThing3Ref = gcnew XmlSchemaElement();
sequence->Items->Add(elementThing3Ref);
elementThing3Ref->RefName = gcnew XmlQualifiedName("thing3");
// <xs:complexType name="myComplexType">
XmlSchemaComplexType^ myComplexType = gcnew XmlSchemaComplexType();
schema->Items->Add(myComplexType);
myComplexType->Name = "myComplexType";
// <xs:group ref="myGroupOfThings"/>
XmlSchemaGroupRef^ myGroupOfThingsRef = gcnew XmlSchemaGroupRef();
myComplexType->Particle = myGroupOfThingsRef;
myGroupOfThingsRef->RefName = gcnew XmlQualifiedName("myGroupOfThings");
// <xs:attribute ref="myAttribute"/>
XmlSchemaAttribute^ myAttributeRef = gcnew XmlSchemaAttribute();
myComplexType->Attributes->Add(myAttributeRef);
myAttributeRef->RefName = gcnew XmlQualifiedName("myAttribute");
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="thing1" type="xs:string"/>
XmlSchemaElement elementThing1 = new XmlSchemaElement();
schema.Items.Add(elementThing1);
elementThing1.Name = "thing1";
elementThing1.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="thing2" type="xs:string"/>
XmlSchemaElement elementThing2 = new XmlSchemaElement();
schema.Items.Add(elementThing2);
elementThing2.Name = "thing2";
elementThing2.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="thing3" type="xs:string"/>
XmlSchemaElement elementThing3 = new XmlSchemaElement();
schema.Items.Add(elementThing3);
elementThing3.Name = "thing3";
elementThing3.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:attribute name="myAttribute" type="xs:decimal"/>
XmlSchemaAttribute myAttribute = new XmlSchemaAttribute();
schema.Items.Add(myAttribute);
myAttribute.Name = "myAttribute";
myAttribute.SchemaTypeName = new XmlQualifiedName("decimal", "http://www.w3.org/2001/XMLSchema");
// <xs:group name="myGroupOfThings">
XmlSchemaGroup myGroupOfThings = new XmlSchemaGroup();
schema.Items.Add(myGroupOfThings);
myGroupOfThings.Name = "myGroupOfThings";
// <xs:sequence>
XmlSchemaSequence sequence = new XmlSchemaSequence();
myGroupOfThings.Particle = sequence;
// <xs:element ref="thing1"/>
XmlSchemaElement elementThing1Ref = new XmlSchemaElement();
sequence.Items.Add(elementThing1Ref);
elementThing1Ref.RefName = new XmlQualifiedName("thing1");
// <xs:element ref="thing2"/>
XmlSchemaElement elementThing2Ref = new XmlSchemaElement();
sequence.Items.Add(elementThing2Ref);
elementThing2Ref.RefName = new XmlQualifiedName("thing2");
// <xs:element ref="thing3"/>
XmlSchemaElement elementThing3Ref = new XmlSchemaElement();
sequence.Items.Add(elementThing3Ref);
elementThing3Ref.RefName = new XmlQualifiedName("thing3");
// <xs:complexType name="myComplexType">
XmlSchemaComplexType myComplexType = new XmlSchemaComplexType();
schema.Items.Add(myComplexType);
myComplexType.Name = "myComplexType";
// <xs:group ref="myGroupOfThings"/>
XmlSchemaGroupRef myGroupOfThingsRef = new XmlSchemaGroupRef();
myComplexType.Particle = myGroupOfThingsRef;
myGroupOfThingsRef.RefName = new XmlQualifiedName("myGroupOfThings");
// <xs:attribute ref="myAttribute"/>
XmlSchemaAttribute myAttributeRef = new XmlSchemaAttribute();
myComplexType.Attributes.Add(myAttributeRef);
myAttributeRef.RefName = new XmlQualifiedName("myAttribute");
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 Explicit On
Option Strict On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:element name="thing1" type="xs:string"/>
Dim elementThing1 As New XmlSchemaElement()
schema.Items.Add(elementThing1)
elementThing1.Name = "thing1"
elementThing1.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="thing2" type="xs:string"/>
Dim elementThing2 As New XmlSchemaElement()
schema.Items.Add(elementThing2)
elementThing2.Name = "thing2"
elementThing2.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="thing3" type="xs:string"/>
Dim elementThing3 As New XmlSchemaElement()
schema.Items.Add(elementThing3)
elementThing3.Name = "thing3"
elementThing3.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:attribute name="myAttribute" type="xs:decimal"/>
Dim myAttribute As New XmlSchemaAttribute()
schema.Items.Add(myAttribute)
myAttribute.Name = "myAttribute"
myAttribute.SchemaTypeName = New XmlQualifiedName("decimal", "http://www.w3.org/2001/XMLSchema")
' <xs:group name="myGroupOfThings">
Dim myGroupOfThings As New XmlSchemaGroup()
schema.Items.Add(myGroupOfThings)
myGroupOfThings.Name = "myGroupOfThings"
' <xs:sequence>
Dim sequence As New XmlSchemaSequence()
myGroupOfThings.Particle = sequence
' <xs:element ref="thing1"/>
Dim elementThing1Ref As New XmlSchemaElement()
sequence.Items.Add(elementThing1Ref)
elementThing1Ref.RefName = New XmlQualifiedName("thing1")
' <xs:element ref="thing2"/>
Dim elementThing2Ref As New XmlSchemaElement()
sequence.Items.Add(elementThing2Ref)
elementThing2Ref.RefName = New XmlQualifiedName("thing2")
' <xs:element ref="thing3"/>
Dim elementThing3Ref As New XmlSchemaElement()
sequence.Items.Add(elementThing3Ref)
elementThing3Ref.RefName = New XmlQualifiedName("thing3")
' <xs:complexType name="myComplexType">
Dim myComplexType As New XmlSchemaComplexType()
schema.Items.Add(myComplexType)
myComplexType.Name = "myComplexType"
' <xs:group ref="myGroupOfThings"/>
Dim myGroupOfThingsRef As New XmlSchemaGroupRef()
myComplexType.Particle = myGroupOfThingsRef
myGroupOfThingsRef.RefName = New XmlQualifiedName("myGroupOfThings")
' <xs:attribute ref="myAttribute"/>
Dim myAttributeRef As New XmlSchemaAttribute()
myComplexType.Attributes.Add(myAttributeRef)
myAttributeRef.RefName = New XmlQualifiedName("myAttribute")
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="thing1" type="xs:string"/>
<xs:element name="thing2" type="xs:string"/>
<xs:element name="thing3" type="xs:string"/>
<xs:attribute name="myAttribute" type="xs:decimal"/>
<xs:group name="myGroupOfThings">
<xs:sequence>
<xs:element ref="thing1"/>
<xs:element ref="thing2"/>
<xs:element ref="thing3"/>
</xs:sequence>
</xs:group>
<xs:complexType name="myComplexType">
<xs:group ref="myGroupOfThings"/>
<xs:attribute ref="myAttribute"/>
</xs:complexType>
</xs:schema>
建構函式
XmlSchemaGroup() |
初始化 XmlSchemaGroup 類別的新執行個體。 |
屬性
Annotation |
取得或設定 |
Id |
取得或設定字串 ID。 (繼承來源 XmlSchemaAnnotated) |
LineNumber |
取得或設定 |
LinePosition |
取得或設定 |
Name |
取得或設定結構描述群組的名稱。 |
Namespaces |
取得或設定 XmlSerializerNamespaces,以便與這個結構描述物件一起使用。 (繼承來源 XmlSchemaObject) |
Parent |
取得或設定這個 XmlSchemaObject 的父項。 (繼承來源 XmlSchemaObject) |
Particle |
取得或設定其中一個 XmlSchemaChoice、XmlSchemaAll 或 XmlSchemaSequence 類別。 |
QualifiedName |
取得結構描述群組的限定名稱 (Qualified Name)。 |
SourceUri |
取得或設定載入結構描述之檔案的來源位置。 (繼承來源 XmlSchemaObject) |
UnhandledAttributes |
取得或設定不屬於目前結構描述之目標命名空間的限定屬性 (Attribute)。 (繼承來源 XmlSchemaAnnotated) |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |