Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

XmlDocument Constructor ()

 

Initializes a new instance of the XmlDocument class.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public:
XmlDocument()

The following is an example of load-time validation. A document type definition (DTD) validating XmlReader is passed to the Load method and a ValidationEventHandler is provided to notify users of any validation errors. In this example a validation error is found, but the document is still loaded. Alternatively, you can define a validating XmlReader to throw an exception and stop the load process when a validation error is found by not specifying the ValidationEventHandler. For more information about validating XML data, see the Remarks section of the XmlReader reference page.

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;

ref class XmlDocumentSample
{
private:
	static XmlReader^ reader;
	static String^ filename = "bookdtd.xml";

	// Display the validation error.
	static void ValidationCallback(Object^ sender, ValidationEventArgs^ args)
	{
		Console::WriteLine("Validation error loading: {0}", filename);
		Console::WriteLine(args->Message);
	}

public:
	static void Main()
	{
		ValidationEventHandler^ eventHandler = gcnew ValidationEventHandler(XmlDocumentSample::ValidationCallback);

		try
		{
			// Create the validating reader and specify DTD validation.
			XmlReaderSettings^ settings = gcnew XmlReaderSettings();
                        settings->DtdProcessing = DtdProcessing::Parse;
			settings->ValidationType = ValidationType::DTD;
			settings->ValidationEventHandler += eventHandler;

			reader = XmlReader::Create(filename, settings);

			// Pass the validating reader to the XML document.
			// Validation fails due to an undefined attribute, but the 
			// data is still loaded into the document.
			XmlDocument^ doc = gcnew XmlDocument();
			doc->Load(reader);
			Console::WriteLine(doc->OuterXml);
		}
		finally
		{
			if (reader != nullptr)
				reader->Close();
		}
	}
};

int main()
{
	XmlDocumentSample::Main();
	return 0;
}

The example uses the bookDTD.xml file as input.

<!DOCTYPE bookstore [
  <!ELEMENT bookstore (book)*> 
  <!ELEMENT book (title,author,price)>
  <!ATTLIST book genre CDATA #REQUIRED>
  <!ELEMENT title (#PCDATA)>
  <!ELEMENT author (#PCDATA)>
  <!ELEMENT price (#PCDATA)>]>
<bookstore>
  <book genre="fantasy"  ISBN="2-3631-4">
    <title>Oberon's Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
</bookstore>

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Return to top
Show:
© 2017 Microsoft