XmlSchemaAttributeGroup Class

Represents the attributeGroup element from the XML Schema as specified by the . AttributesGroups provides a mechanism to group a set of attribute declarations so that they can be incorporated as a group into complex type definitions.

Namespace: System.Xml.Schema
Assembly: System.Xml (in system.xml.dll)

public ref class XmlSchemaAttributeGroup : public XmlSchemaAnnotated
public class XmlSchemaAttributeGroup extends XmlSchemaAnnotated
public class XmlSchemaAttributeGroup extends XmlSchemaAnnotated
Not applicable.

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>

System.Object
   System.Xml.Schema.XmlSchemaObject
     System.Xml.Schema.XmlSchemaAnnotated
      System.Xml.Schema.XmlSchemaAttributeGroup

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show: