Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

IXMLDOMNotation

Contains a notation declared in the document type definition (DTD) or schema.

The C/C++ example below displays the names of the notation nodes in the DTD declaration of the document.

The following XML document was used.

<?xml version='1.0'?>
<!DOCTYPE COLLECTION [ 
<!NOTATION XLS PUBLIC "http://www.microsoft.com/office/excel/">
<!ELEMENT COLLECTION    (DATE? , BOOK+) >
<!ATTLIST COLLECTION
    xmlns:dt CDATA #FIXED "urn:schemas-microsoft-com:datatypes">
<!ELEMENT BOOK(TITLE, AUTHOR, PUBLISHER) >
<!ELEMENT DATE(#PCDATA) >
<!ELEMENT TITLE         (#PCDATA)  >
<!ELEMENT AUTHOR        (#PCDATA)  >
<!ELEMENT PUBLISHER     (#PCDATA)  >
]>
<COLLECTION
   xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <BOOK>
    <TITLE>Lover Birds</TITLE>
    <AUTHOR>Cynthia Randall</AUTHOR>
    <PUBLISHER>Lucerne Publishing</PUBLISHER>
  </BOOK>
  <BOOK>
    <TITLE>The Sundered Grail</TITLE>
    <AUTHOR>Eva Corets</AUTHOR>
    <PUBLISHER>Lucerne Publishing</PUBLISHER>
  </BOOK>
  <BOOK>
    <TITLE>Splish Splash</TITLE>
    <AUTHOR>Paula Thurman</AUTHOR>
    <PUBLISHER>Scootney</PUBLISHER>
  </BOOK>
</COLLECTION>


#include “msxml6.h”

inline void TESTHR( HRESULT _hr ) 
   { if FAILED(_hr) throw(_hr); }

void XMLDOMNotationSample()
{
   try
   {
      IXMLDOMDocumentPtr docPtr;

      //init
      TESTHR(CoInitialize(NULL)); 
      TESTHR(docPtr.CreateInstance(_T("Msxml2.DOMDocument.6.0")));

      // load a document
      _variant_t varXml(("book1.xml"));
      _variant_t varOut((bool)TRUE);
      varOut = docPtr->load(varXml);
      if ((bool)varOut == FALSE)
      {// show error description - IXMLDOMParseError sample
         IXMLDOMParseErrorPtr errPtr = docPtr->GetparseError();

      // display eror information
      }
      else
      {
         IXMLDOMDocumentTypePtr docTypPtr = docPtr->doctype;
         if (docTypPtr)
         {
            int nCounter;
            IXMLDOMNamedNodeMapPtr XMLDOMNamedNodeMapPtr = 
docTypPtr->Getnotations();

            for(nCounter=0;nCounter < XMLDOMNamedNodeMapPtr->length; nCounter ++)
            {
               IXMLDOMNotationPtr XMLDOMNotationPtr = 
XMLDOMNamedNodeMapPtr->Getitem(nCounter);

               _tprintf(_T("%s"), (TCHAR*)XMLDOMNotationPtr->nodeName);
            }
         }
      }

   }
   catch (_com_error &e)
   {
      _tprintf(_T("Error:\n"));
      _tprintf(_T("Code = %08lx\n"), e.Error());
      _tprintf(_T("Code meaning = %s\n"), (TCHAR*) e.ErrorMessage());
      _tprintf(_T("Source = %s\n"), (TCHAR*) e.Source());
      _tprintf(_T("Error Description = %s\n"), (TCHAR*) e.Description());
   }
      catch(...)
   {
      _tprintf(_T("Unknown error!"));
   }
   CoUninitialize();
}
<snippet id="c8a52e5d-3582-4c1d-8deb-e55be28ee9a8"  type="end" />

Notations identify by name the format of unparsed entities, the format of elements that bear a notation attribute, or the application to which a processing instruction is addressed.

The nodeName property contains the notation name.

Implementation:

msxml3.dll, msxml2.lib (MSXML 3.0)

msxml6.dll, msxml6.lib (MSXML 6.0)

Header and IDL files:

msxml2.h, msxml2.idl, , msxml6.h, msxml6.idl

Implemented in:

MSXML 3.0, MSXML 6.0

Show:
© 2015 Microsoft