XmlSchemaObject Class
Represents the root class for the Xml schema object model hierarchy and serves as a base class for classes such as the XmlSchema class.
Assembly: System.Xml (in System.Xml.dll)
| Name | Description | |
|---|---|---|
![]() | XmlSchemaObject() | Initializes a new instance of the XmlSchemaObject class. |
| Name | Description | |
|---|---|---|
![]() | LineNumber | Gets or sets the line number in the file to which the schema element refers. |
![]() | LinePosition | Gets or sets the line position in the file to which the schema element refers. |
![]() | Namespaces | Gets or sets the XmlSerializerNamespaces to use with this schema object. |
![]() | Parent | Gets or sets the parent of this XmlSchemaObject. |
![]() | SourceUri | Gets or sets the source location for the file that loaded the schema. |
| 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.) |
The following example displays each schema object.
#using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Reflection; using namespace System::Xml; using namespace System::Xml::Schema; ref class ValidXSD { private: static void DisplayObjects(Object^ o) { DisplayObjects(o, ""); } static void DisplayObjects(Object^ o, String^ indent) { Console::WriteLine("{0}{1}", indent, o); for each (PropertyInfo^ property1 in o->GetType()->GetProperties()) { if (property1->PropertyType->FullName == "System.Xml.Schema.XmlSchemaObjectCollection") { XmlSchemaObjectCollection^ childObjectCollection = dynamic_cast<XmlSchemaObjectCollection^>(property1->GetValue(o, nullptr)); for each (XmlSchemaObject^ schemaObject in childObjectCollection) { DisplayObjects(schemaObject, indent + "\t"); } } } } static void ShowCompileError(Object^ sender, ValidationEventArgs^ e) { Console::WriteLine("Validation Error: {0}", e->Message); } public: static int Main() { String^ xsd = "example.xsd"; FileStream^ fs; XmlSchema^ schema; try { fs = gcnew FileStream(xsd, FileMode::Open); schema = XmlSchema::Read(fs, gcnew ValidationEventHandler(ShowCompileError)); XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet(); schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ShowCompileError); schemaSet->Add(schema); schemaSet->Compile(); XmlSchema^ compiledSchema = nullptr; for each (XmlSchema^ schema1 in schemaSet->Schemas()) { compiledSchema = schema1; } schema = compiledSchema; if (schema->IsCompiled) { DisplayObjects(schema); } return 0; } catch (XmlSchemaException^ e) { Console::WriteLine("LineNumber = {0}", e->LineNumber); Console::WriteLine("LinePosition = {0}", e->LinePosition); Console::WriteLine("Message = {0}", e->Message); Console::WriteLine("Source = {0}", e->Source); return -1; } } }; int main() { ValidXSD::Main(); return 0; }
The example uses the example.xsd file as input.
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:group name="testGroup"> <xs:choice> <xs:any namespace="##any"/> </xs:choice> </xs:group> <xs:element name="myElement" > <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:group ref="testGroup" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


