definition Property1
Returns the definition of the node in the document type definition (DTD) or XDR schema.
This property only works with DTDs and XDR schemas. This property does not work with documents that have an XSD schema.
XDR schemas are not supported in MSXML 6.0. Therefore, in MSXML 6.0 the definition
property only works with documents with a DTD.
Script Syntax
var objXMLDOMNode = oXMLDOMNode.definition;
Visual Basic Syntax
Set objXMLDOMNode = oXMLDOMNode.definition
C/C++ Syntax
HRESULT get_definition(
IXMLDOMNode **definitionNode);
Parameters
definitionNode
[out, retval]
The node that contains the definition for the entity referenced.
C/C++ Return Values
S_OK
The value returned if successful.
S_FALSE
The value returned when no definition is found.
E_INVALIDARG
The value returned if the definitionNode
parameter is Null.
Example
The following C/C++ example shows the retrieval of the definition
property from an IXMLDOMElement
.
#import "msxml3.dll"
using namespace MSXML2;
#define CHECK_AND_RELEASE(pInterface) \
if(pInterface) \
{\
pInterface->Release();\
pInterface = NULL;\
}\
#define RELEASE(pInterface) \
{\
pInterface->Release();\
pInterface = NULL;\
}\
BOOL DOMNodeGetDefinition()
{
BOOL bResult = FALSE;
BSTR bstrValue;
IXMLDOMElement *pIXMLDOMElement = NULL;
IXMLDOMNode *pIXMLDOMNode = NULL;
IXMLDOMDocument2 *pIXMLDOMDocument = NULL;
HRESULT hr;
try
{
// Create the document and initialize pIXMLDOMDocument.
// Load the document (sample.xml).
// Get the documents root.
hr = pIXMLDOMDocument->get_documentElement(&pIXMLDOMElement);
SUCCEEDED(hr) ? 0 : throw hr;
if(pIXMLDOMElement)
{
hr = pIXMLDOMElement->get_definition(&pIXMLDOMNode);
if(SUCCEEDED(hr) && pIXMLDOMNode)
{
hr = pIXMLDOMNode->get_xml(&bstrValue);
if(SUCCEEDED(hr) && bstrValue)
{
::MessageBox(NULL, bstrValue, _T("Definition"), MB_OK);
::SysFreeString(bstrValue);
bResult = TRUE;
}
RELEASE(pIXMLDOMNode);
}
RELEASE(pIXMLDOMElement);
}
}
catch(...)
{
if(bstrValue)
::SysFreeString(bstrValue);
CHECK_AND_RELEASE(pIXMLDOMNode);
CHECK_AND_RELEASE(pIXMLDOMElement);
// Release the DOMDocument.
DisplayErrorToUser();
}
// Release the document when finished with it.
return bResult;
}
Resource Files
The C\C++ example uses the following XML files.
Sample.xml
<?xml version="1.0"?>
<SomeDoc xmlns="x-schema:collschema.xml">
<SomeElement Id="first1">
</SomeElement>
</SomeDoc>
collschema.xml
<?xml version='1.0'?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name='Id' dt:type="id"/>
<ElementType name='SomeElement' content="mixed" model="open">
<attribute type='Id'/>
</ElementType>
<ElementType name='SomeDoc' content="mixed" model="open">
<attribute type='Id'/>
<element type='SomeElement' minOccurs='1' maxOccurs='*'/>
</ElementType>
</Schema>
Output
The C\C++ example outputs the following in a message box.
<ElementType name='SomeDoc' content="mixed" model="open">
<attribute type='Id'/>
<element type='SomeElement' minOccurs='1' maxOccurs='*'/>
</ElementType>
Remarks
The property is read-only. Returns the node that contains the definition for the entity referenced.
The definition
property is not supported when using inline schemas. This behavior is by design because the node being referenced can be deleted or modified after the document is loaded, yielding unpredictable results.
This value depends on the value of the nodeType
property.
NODE_ENTITY_REFERENCE | Returns the node for the entity referenced; that is, the ENTITY element that was defined for a given ENTITYREF . Given the ENTITYREF&x; , for example, the definition property returns the node in the DOCTYPE node's entity collection that defines the corresponding ENTITY : <!ENTITY x "y"> . |
NODE_ENTITY | For unparsed entities, returns the NOTATION definition from the DOCTYPE node's notation collection. For example, given the ENTITY<!ENTITY networth SYSTEM "networth.xls" NDATA XLS> , the definition property returns the node corresponding to the notation <!NOTATION XLS PUBLIC "https://www.microsoft.com/office/excel/"> . For parsed entities, returns Null. |
NODE_ATTRIBUTE | Returns the XML-Data Schema AttributeType for a given ATTRIBUTE node. For example, the definition property for the attribute myAttribute="123" returns the node corresponding to the element <AttributeType name= "myAttribute"> in the schema. Returns Null when a DTD is used or when no schema is present. |
NODE_ELEMENT | Returns the XML-Data Schema ElementType for a given ELEMENT node. For example, given the element <myelement> , the definition property returns the node <ElementType name="myelement"> in the specified external schema. Returns Null when a DTD is used or when no schema is present. |
NODE_CDATA_SECTION NODE_COMMENT, NODE_DOCUMENT NODE_DOCUMENT_FRAGMENT NODE_DOCUMENT_TYPE NODE_NOTATION NODE_PROCESSING_INSTRUCTION NODE_TEXT |
Returns Null. |
This member is an extension of the World Wide Web Consortium (W3C) Document Object Model (DOM).
Versioning
Implemented in: MSXML 3.0, MSXML 6.0.
Applies to
IXMLDOMAttribute | IXMLDOMCDATASection | IXMLDOMCharacterData | IXMLDOMComment | IXMLDOMDocument-DOMDocument | IXMLDOMDocumentFragment | IXMLDOMDocumentType | IXMLDOMElement | IXMLDOMEntity | IXMLDOMEntityReference | IXMLDOMNode | IXMLDOMNotation | IXMLDOMProcessingInstruction | IXMLDOMText