XmlSchemaAttributeGroup Class
Represents the attributeGroup element from the XML Schema as specified by the World Wide Web Consortium (W3C). AttributesGroups provides a mechanism to group a set of attribute declarations so that they can be incorporated as a group into complex type definitions.
Assembly: System.Xml (in System.Xml.dll)
System.Xml.Schema::XmlSchemaObject
System.Xml.Schema::XmlSchemaAnnotated
System.Xml.Schema::XmlSchemaAttributeGroup
| Name | Description | |
|---|---|---|
![]() | XmlSchemaAttributeGroup() | Initializes a new instance of the XmlSchemaAttributeGroup class. |
| Name | Description | |
|---|---|---|
![]() | Annotation | Gets or sets the annotation property.(Inherited from XmlSchemaAnnotated.) |
![]() | AnyAttribute | Gets or sets the XmlSchemaAnyAttribute component of the attribute group. |
![]() | Attributes | Gets the collection of attributes for the attribute group. Contains XmlSchemaAttribute and XmlSchemaAttributeGroupRef elements. |
![]() | Id | Gets or sets the string id.(Inherited from XmlSchemaAnnotated.) |
![]() | LineNumber | Gets or sets the line number in the file to which the schema element refers.(Inherited from XmlSchemaObject.) |
![]() | LinePosition | Gets or sets the line position in the file to which the schema element refers.(Inherited from XmlSchemaObject.) |
![]() | Name | Gets or sets the name of the attribute group. |
![]() | Namespaces | Gets or sets the XmlSerializerNamespaces to use with this schema object.(Inherited from XmlSchemaObject.) |
![]() | Parent | Gets or sets the parent of this XmlSchemaObject.(Inherited from XmlSchemaObject.) |
![]() | QualifiedName | Gets the qualified name of the attribute group. |
![]() | RedefinedAttributeGroup | Gets the redefined attribute group property from the XML Schema. |
![]() | SourceUri | Gets or sets the source location for the file that loaded the schema.(Inherited from XmlSchemaObject.) |
![]() | UnhandledAttributes | Gets or sets the qualified attributes that do not belong to the current schema's target namespace.(Inherited from XmlSchemaAnnotated.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
An attribute group can be defined only as a child of the schema element. In this case, the name attribute must be present and contain the attribute, attributeGroup, or anyAttribute elements that make up the attribute group. When a complexType or an attributeGroup element includes an attribute group, the ref attribute must be present and the name attribute is not allowed.
The following example creates the attributeGroup element.
#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:attributeGroup name="myAttributeGroup"> XmlSchemaAttributeGroup^ myAttributeGroup = gcnew XmlSchemaAttributeGroup(); schema->Items->Add(myAttributeGroup); myAttributeGroup->Name = "myAttributeGroup"; // <xs:attribute name="someattribute1" type="xs:integer"/> XmlSchemaAttribute^ someattribute1 = gcnew XmlSchemaAttribute(); myAttributeGroup->Attributes->Add(someattribute1); someattribute1->Name = "someattribute1"; someattribute1->SchemaTypeName = gcnew XmlQualifiedName("integer", "http://www.w3.org/2001/XMLSchema"); // <xs:attribute name="someattribute2" type="xs:string"/> XmlSchemaAttribute^ someattribute2 = gcnew XmlSchemaAttribute(); myAttributeGroup->Attributes->Add(someattribute2); someattribute2->Name = "someattribute2"; someattribute2->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema"); // <xs:complexType name="myElementType"> XmlSchemaComplexType^ myElementType = gcnew XmlSchemaComplexType(); schema->Items->Add(myElementType); myElementType->Name = "myElementType"; // <xs:attributeGroup ref="myAttributeGroup"/> XmlSchemaAttributeGroupRef^ myAttributeGroupRef = gcnew XmlSchemaAttributeGroupRef(); myElementType->Attributes->Add(myAttributeGroupRef); myAttributeGroupRef->RefName = gcnew XmlQualifiedName("myAttributeGroup"); // <xs:attributeGroup name="myAttributeGroupA"> XmlSchemaAttributeGroup^ myAttributeGroupA = gcnew XmlSchemaAttributeGroup(); schema->Items->Add(myAttributeGroupA); myAttributeGroupA->Name = "myAttributeGroupA"; // <xs:attribute name="someattribute10" type="xs:integer"/> XmlSchemaAttribute^ someattribute10 = gcnew XmlSchemaAttribute(); myAttributeGroupA->Attributes->Add(someattribute10); someattribute10->Name = "someattribute10"; someattribute10->SchemaTypeName = gcnew XmlQualifiedName("integer", "http://www.w3.org/2001/XMLSchema"); // <xs:attribute name="someattribute11" type="xs:string"/> XmlSchemaAttribute^ someattribute11 = gcnew XmlSchemaAttribute(); myAttributeGroupA->Attributes->Add(someattribute11); someattribute11->Name = "someattribute11"; someattribute11->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema"); // <xs:attributeGroup name="myAttributeGroupB"> XmlSchemaAttributeGroup^ myAttributeGroupB = gcnew XmlSchemaAttributeGroup(); schema->Items->Add(myAttributeGroupB); myAttributeGroupB->Name = "myAttributeGroupB"; // <xs:attribute name="someattribute20" type="xs:date"/> XmlSchemaAttribute^ someattribute20 = gcnew XmlSchemaAttribute(); myAttributeGroupB->Attributes->Add(someattribute20); someattribute20->Name = "someattribute20"; someattribute20->SchemaTypeName = gcnew XmlQualifiedName("date", "http://www.w3.org/2001/XMLSchema"); // <xs:attributeGroup ref="myAttributeGroupA"/> XmlSchemaAttributeGroupRef^ myAttributeGroupRefA = gcnew XmlSchemaAttributeGroupRef(); myAttributeGroupB->Attributes->Add(myAttributeGroupRefA); myAttributeGroupRefA->RefName = gcnew XmlQualifiedName("myAttributeGroupA"); 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; };
The following XML file is generated for the preceding code example.
<?xml version="1.0" encoding="IBM437"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:attributeGroup name="myAttributeGroup"> <xs:attribute name="someattribute1" type="xs:integer"/> <xs:attribute name="someattribute2" type="xs:string"/> </xs:attributeGroup> <xs:complexType name="myElementType"> <xs:attributeGroup ref="myAttributeGroup"/> </xs:complexType> <xs:attributeGroup name="myAttributeGroupA"> <xs:attribute name="someattribute10" type="xs:integer"/> <xs:attribute name="someattribute11" type="xs:string"/> </xs:attributeGroup> <xs:attributeGroup name="myAttributeGroupB"> <xs:attribute name="someattribute20" type="xs:date"/> <xs:attributeGroup ref="myAttributeGroupA"/> </xs:attributeGroup> </xs:schema>
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


