Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > 553d1e1391b9f1acad517c925f34ae45 > files > 407

lib64xmltooling-devel-1.5.3-5.mga5.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>xmltooling: xmltooling/base.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">xmltooling
   &#160;<span id="projectnumber">1.5.3</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00122.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">base.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Licensed to the University Corporation for Advanced Internet Development, Inc.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;typeinfo&gt;</code><br />
<code>#include &lt;cstdio&gt;</code><br />
<code>#include &lt;xmltooling/config_pub_win32.h&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">xmltooling::cleanup&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor for cleaning up heap objects in containers.  <a href="a00017.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">xmltooling::cleanup_pair&lt; A, B &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor for cleaning up heap objects in key/value containers.  <a href="a00019.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">xmltooling::cleanup_const_pair&lt; A, B &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor for cleaning up const heap objects in key/value containers.  <a href="a00018.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00206"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00206.html">xmltooling</a></td></tr>
<tr class="memdesc:a00206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public namespace of XML Tooling library. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ab979d9d4b4923f7c54d6caa6e1a61936"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab979d9d4b4923f7c54d6caa6e1a61936"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>nullptr</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ab979d9d4b4923f7c54d6caa6e1a61936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e54d38d73588e22066aa1fe46e43d5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e54d38d73588e22066aa1fe46e43d5c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOL_IMPORT</b></td></tr>
<tr class="separator:a1e54d38d73588e22066aa1fe46e43d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65bd704eed27e02ac00b2649bbb0e207"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65bd704eed27e02ac00b2649bbb0e207"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOL_EXPORT</b></td></tr>
<tr class="separator:a65bd704eed27e02ac00b2649bbb0e207"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa2a75c2292e6ea09948b0d99e6afba9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa2a75c2292e6ea09948b0d99e6afba9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOL_DLLLOCAL</b></td></tr>
<tr class="separator:aaa2a75c2292e6ea09948b0d99e6afba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92edca01721af4c1c87b93cede20a7ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92edca01721af4c1c87b93cede20a7ba"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOL_DLLPUBLIC</b></td></tr>
<tr class="separator:a92edca01721af4c1c87b93cede20a7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a390827904052ed92b01f504f1f09ad41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a390827904052ed92b01f504f1f09ad41"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOL_API</b>&#160;&#160;&#160;XMLTOOL_IMPORT</td></tr>
<tr class="separator:a390827904052ed92b01f504f1f09ad41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1be696be56c307dbdd788cbb94ad0268"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1be696be56c307dbdd788cbb94ad0268"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOL_EXCEPTIONAPI</b>(api)</td></tr>
<tr class="separator:a1be696be56c307dbdd788cbb94ad0268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac043400a1b638f454828e73ef0a958aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac043400a1b638f454828e73ef0a958aa"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>XMLTOOLING_DOXYGEN</b>(desc)&#160;&#160;&#160;/##** desc */</td></tr>
<tr class="separator:ac043400a1b638f454828e73ef0a958aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f9965a2cc4aaade15ecbfe63a71cf15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3f9965a2cc4aaade15ecbfe63a71cf15">MAKE_NONCOPYABLE</a>(type)</td></tr>
<tr class="memdesc:a3f9965a2cc4aaade15ecbfe63a71cf15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks copy c'tor and assignment operator for a class.  <a href="#a3f9965a2cc4aaade15ecbfe63a71cf15">More...</a><br /></td></tr>
<tr class="separator:a3f9965a2cc4aaade15ecbfe63a71cf15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe45465a5461693561c98c3896c63736"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#abe45465a5461693561c98c3896c63736">DECL_XMLOBJECT_ABSTRACT</a>(linkage, cname, base, desc)</td></tr>
<tr class="memdesc:abe45465a5461693561c98c3896c63736"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObject specialization for an abstract element/type.  <a href="#abe45465a5461693561c98c3896c63736">More...</a><br /></td></tr>
<tr class="separator:abe45465a5461693561c98c3896c63736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a184a5983089798524bf62a6d2a6fc537"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a184a5983089798524bf62a6d2a6fc537">BEGIN_XMLOBJECT</a>(linkage, cname, base, desc)</td></tr>
<tr class="memdesc:a184a5983089798524bf62a6d2a6fc537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObject specialization.  <a href="#a184a5983089798524bf62a6d2a6fc537">More...</a><br /></td></tr>
<tr class="separator:a184a5983089798524bf62a6d2a6fc537"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72c519be650469c6121acd28ec6d0dae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a72c519be650469c6121acd28ec6d0dae">BEGIN_XMLOBJECT2</a>(linkage, cname, base, base2, desc)</td></tr>
<tr class="memdesc:a72c519be650469c6121acd28ec6d0dae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObject specialization with two base classes.  <a href="#a72c519be650469c6121acd28ec6d0dae">More...</a><br /></td></tr>
<tr class="separator:a72c519be650469c6121acd28ec6d0dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58cd19813bf1d02b75009cdd03ce5dca"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a58cd19813bf1d02b75009cdd03ce5dca">BEGIN_XMLOBJECT3</a>(linkage, cname, base, base2, base3, desc)</td></tr>
<tr class="memdesc:a58cd19813bf1d02b75009cdd03ce5dca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObject specialization with three base classes.  <a href="#a58cd19813bf1d02b75009cdd03ce5dca">More...</a><br /></td></tr>
<tr class="separator:a58cd19813bf1d02b75009cdd03ce5dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6461cda8c2c379c42adfc6601e55d5a9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a6461cda8c2c379c42adfc6601e55d5a9">BEGIN_XMLOBJECT4</a>(linkage, cname, base, base2, base3, base4, desc)</td></tr>
<tr class="memdesc:a6461cda8c2c379c42adfc6601e55d5a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObject specialization with four base classes.  <a href="#a6461cda8c2c379c42adfc6601e55d5a9">More...</a><br /></td></tr>
<tr class="separator:a6461cda8c2c379c42adfc6601e55d5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca6926f4f191d3976ad6b822136a607f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aca6926f4f191d3976ad6b822136a607f">BEGIN_XMLOBJECT5</a>(linkage, cname, base, base2, base3, base4, base5, desc)</td></tr>
<tr class="memdesc:aca6926f4f191d3976ad6b822136a607f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObject specialization with five base classes.  <a href="#aca6926f4f191d3976ad6b822136a607f">More...</a><br /></td></tr>
<tr class="separator:aca6926f4f191d3976ad6b822136a607f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4313e3a00a8566975f82b4b45093d7f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4313e3a00a8566975f82b4b45093d7f5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a4313e3a00a8566975f82b4b45093d7f5">END_XMLOBJECT</a>&#160;&#160;&#160;}</td></tr>
<tr class="memdesc:a4313e3a00a8566975f82b4b45093d7f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ends the declaration of an XMLObject specialization. <br /></td></tr>
<tr class="separator:a4313e3a00a8566975f82b4b45093d7f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0eb4a733906e0bc7c730a5180888e106"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a0eb4a733906e0bc7c730a5180888e106">DECL_ELEMENT_QNAME</a></td></tr>
<tr class="memdesc:a0eb4a733906e0bc7c730a5180888e106"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a static variable holding the XMLObject's element QName.  <a href="#a0eb4a733906e0bc7c730a5180888e106">More...</a><br /></td></tr>
<tr class="separator:a0eb4a733906e0bc7c730a5180888e106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aada49116b3cf070b1da974460ffb0367"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aada49116b3cf070b1da974460ffb0367">DECL_TYPE_QNAME</a></td></tr>
<tr class="memdesc:aada49116b3cf070b1da974460ffb0367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a static variable holding the XMLObject's schema type QName.  <a href="#aada49116b3cf070b1da974460ffb0367">More...</a><br /></td></tr>
<tr class="separator:aada49116b3cf070b1da974460ffb0367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca72739c64e4ec3855702d0bed30bdb7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aca72739c64e4ec3855702d0bed30bdb7">IMPL_ELEMENT_QNAME</a>(cname, namespaceURI, namespacePrefix)&#160;&#160;&#160;<a class="el" href="a00069.html">xmltooling::QName</a> cname::ELEMENT_QNAME(namespaceURI,cname::LOCAL_NAME,namespacePrefix)</td></tr>
<tr class="memdesc:aca72739c64e4ec3855702d0bed30bdb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a static variable holding an XMLObject's element QName.  <a href="#aca72739c64e4ec3855702d0bed30bdb7">More...</a><br /></td></tr>
<tr class="separator:aca72739c64e4ec3855702d0bed30bdb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74c87def15e6bcbe18b1d9c39d1e8648"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a74c87def15e6bcbe18b1d9c39d1e8648">IMPL_TYPE_QNAME</a>(cname, namespaceURI, namespacePrefix)&#160;&#160;&#160;<a class="el" href="a00069.html">xmltooling::QName</a> cname::TYPE_QNAME(namespaceURI,cname::TYPE_NAME,namespacePrefix)</td></tr>
<tr class="memdesc:a74c87def15e6bcbe18b1d9c39d1e8648"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a static variable holding an XMLObject's schema type QName.  <a href="#a74c87def15e6bcbe18b1d9c39d1e8648">More...</a><br /></td></tr>
<tr class="separator:a74c87def15e6bcbe18b1d9c39d1e8648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7eea41b57e0fbef6ada45dab7eedece"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ac7eea41b57e0fbef6ada45dab7eedece">DECL_INHERITED_XMLOBJECT_ATTRIB</a>(proper, upcased, type)</td></tr>
<tr class="memdesc:ac7eea41b57e0fbef6ada45dab7eedece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract set method for a typed XML attribute.  <a href="#ac7eea41b57e0fbef6ada45dab7eedece">More...</a><br /></td></tr>
<tr class="separator:ac7eea41b57e0fbef6ada45dab7eedece"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a852eda578a2e4353e0d9cd6eb00fb6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a8a852eda578a2e4353e0d9cd6eb00fb6">DECL_XMLOBJECT_ATTRIB</a>(proper, upcased, type)</td></tr>
<tr class="memdesc:a8a852eda578a2e4353e0d9cd6eb00fb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a typed XML attribute.  <a href="#a8a852eda578a2e4353e0d9cd6eb00fb6">More...</a><br /></td></tr>
<tr class="separator:a8a852eda578a2e4353e0d9cd6eb00fb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bd66d0fcc29ebb1bbdb2cead465555d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a0bd66d0fcc29ebb1bbdb2cead465555d">DECL_INHERITED_STRING_ATTRIB</a>(proper, upcased)&#160;&#160;&#160;<a class="el" href="a00122.html#ac7eea41b57e0fbef6ada45dab7eedece">DECL_INHERITED_XMLOBJECT_ATTRIB</a>(proper,upcased,XMLCh)</td></tr>
<tr class="memdesc:a0bd66d0fcc29ebb1bbdb2cead465555d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract set method for a string XML attribute.  <a href="#a0bd66d0fcc29ebb1bbdb2cead465555d">More...</a><br /></td></tr>
<tr class="separator:a0bd66d0fcc29ebb1bbdb2cead465555d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada094b989c0377ce7754242f289aa00a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ada094b989c0377ce7754242f289aa00a">DECL_STRING_ATTRIB</a>(proper, upcased)&#160;&#160;&#160;<a class="el" href="a00122.html#a8a852eda578a2e4353e0d9cd6eb00fb6">DECL_XMLOBJECT_ATTRIB</a>(proper,upcased,XMLCh)</td></tr>
<tr class="memdesc:ada094b989c0377ce7754242f289aa00a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a string XML attribute.  <a href="#ada094b989c0377ce7754242f289aa00a">More...</a><br /></td></tr>
<tr class="separator:ada094b989c0377ce7754242f289aa00a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac122dbcd05c92f62b30b9d1cf8d92109"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ac122dbcd05c92f62b30b9d1cf8d92109">DECL_INHERITED_DATETIME_ATTRIB</a>(proper, upcased)</td></tr>
<tr class="memdesc:ac122dbcd05c92f62b30b9d1cf8d92109"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract set method for a DateTime XML attribute.  <a href="#ac122dbcd05c92f62b30b9d1cf8d92109">More...</a><br /></td></tr>
<tr class="separator:ac122dbcd05c92f62b30b9d1cf8d92109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad02085c1d37b0604c6b290fa50251328"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ad02085c1d37b0604c6b290fa50251328">DECL_DATETIME_ATTRIB</a>(proper, upcased)</td></tr>
<tr class="memdesc:ad02085c1d37b0604c6b290fa50251328"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a DateTime XML attribute.  <a href="#ad02085c1d37b0604c6b290fa50251328">More...</a><br /></td></tr>
<tr class="separator:ad02085c1d37b0604c6b290fa50251328"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa630296ecefe8b5faa2766baa1b0e59b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aa630296ecefe8b5faa2766baa1b0e59b">DECL_INHERITED_INTEGER_ATTRIB</a>(proper, upcased)</td></tr>
<tr class="memdesc:aa630296ecefe8b5faa2766baa1b0e59b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract set method for an integer XML attribute.  <a href="#aa630296ecefe8b5faa2766baa1b0e59b">More...</a><br /></td></tr>
<tr class="separator:aa630296ecefe8b5faa2766baa1b0e59b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b733a13ddcbc819a3d9aceee339e4c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a6b733a13ddcbc819a3d9aceee339e4c6">DECL_INTEGER_ATTRIB</a>(proper, upcased)</td></tr>
<tr class="memdesc:a6b733a13ddcbc819a3d9aceee339e4c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for an integer XML attribute.  <a href="#a6b733a13ddcbc819a3d9aceee339e4c6">More...</a><br /></td></tr>
<tr class="separator:a6b733a13ddcbc819a3d9aceee339e4c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d44140e1c1bb50daa792a44c26bab43"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3d44140e1c1bb50daa792a44c26bab43">DECL_BOOLEAN_ATTRIB</a>(proper, upcased, def)</td></tr>
<tr class="memdesc:a3d44140e1c1bb50daa792a44c26bab43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a boolean XML attribute.  <a href="#a3d44140e1c1bb50daa792a44c26bab43">More...</a><br /></td></tr>
<tr class="separator:a3d44140e1c1bb50daa792a44c26bab43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43d0e8a60abc310f962801d3812419bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a>(proper, type)</td></tr>
<tr class="memdesc:a43d0e8a60abc310f962801d3812419bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a typed XML attribute.  <a href="#a43d0e8a60abc310f962801d3812419bb">More...</a><br /></td></tr>
<tr class="separator:a43d0e8a60abc310f962801d3812419bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a414618cb6b3d42c90617470bdc8b8556"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a414618cb6b3d42c90617470bdc8b8556">IMPL_STRING_ATTRIB</a>(proper)&#160;&#160;&#160;<a class="el" href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a>(proper,XMLCh)</td></tr>
<tr class="memdesc:a414618cb6b3d42c90617470bdc8b8556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a string XML attribute.  <a href="#a414618cb6b3d42c90617470bdc8b8556">More...</a><br /></td></tr>
<tr class="separator:a414618cb6b3d42c90617470bdc8b8556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbcb3f847865bbb251ee4a5855a9923b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#adbcb3f847865bbb251ee4a5855a9923b">IMPL_ID_ATTRIB</a>(proper)</td></tr>
<tr class="memdesc:adbcb3f847865bbb251ee4a5855a9923b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a string XML attribute, plus a getXMLID override.  <a href="#adbcb3f847865bbb251ee4a5855a9923b">More...</a><br /></td></tr>
<tr class="separator:adbcb3f847865bbb251ee4a5855a9923b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afeaaa47cffa81c9ec44337c7ac596c6c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#afeaaa47cffa81c9ec44337c7ac596c6c">IMPL_ID_ATTRIB_EX</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:afeaaa47cffa81c9ec44337c7ac596c6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a string XML attribute, plus a getXMLID override and attribute node clearance when DOM is dropped.  <a href="#afeaaa47cffa81c9ec44337c7ac596c6c">More...</a><br /></td></tr>
<tr class="separator:afeaaa47cffa81c9ec44337c7ac596c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba55b1d77ccca84affb21b263e37ae7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aaba55b1d77ccca84affb21b263e37ae7">IMPL_DATETIME_ATTRIB</a>(proper, fallback)&#160;&#160;&#160;<a class="el" href="a00122.html#a69008ae02c3a1a28b0b8596a694bd902">IMPL_DATETIME_ATTRIB_EX</a>(proper,fallback,false)</td></tr>
<tr class="memdesc:aaba55b1d77ccca84affb21b263e37ae7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a DateTime XML attribute.  <a href="#aaba55b1d77ccca84affb21b263e37ae7">More...</a><br /></td></tr>
<tr class="separator:aaba55b1d77ccca84affb21b263e37ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec4366e0a855bb0b63e490e92f47f502"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aec4366e0a855bb0b63e490e92f47f502">IMPL_DURATION_ATTRIB</a>(proper, fallback)&#160;&#160;&#160;<a class="el" href="a00122.html#a69008ae02c3a1a28b0b8596a694bd902">IMPL_DATETIME_ATTRIB_EX</a>(proper,fallback,true)</td></tr>
<tr class="memdesc:aec4366e0a855bb0b63e490e92f47f502"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a duration-valued DateTime XML attribute.  <a href="#aec4366e0a855bb0b63e490e92f47f502">More...</a><br /></td></tr>
<tr class="separator:aec4366e0a855bb0b63e490e92f47f502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69008ae02c3a1a28b0b8596a694bd902"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a69008ae02c3a1a28b0b8596a694bd902">IMPL_DATETIME_ATTRIB_EX</a>(proper, fallback, duration)</td></tr>
<tr class="memdesc:a69008ae02c3a1a28b0b8596a694bd902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a DateTime XML attribute.  <a href="#a69008ae02c3a1a28b0b8596a694bd902">More...</a><br /></td></tr>
<tr class="separator:a69008ae02c3a1a28b0b8596a694bd902"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3948f8afc7fded2e19906400579d7cae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3948f8afc7fded2e19906400579d7cae">IMPL_INTEGER_ATTRIB</a>(proper)</td></tr>
<tr class="memdesc:a3948f8afc7fded2e19906400579d7cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for an integer XML attribute.  <a href="#a3948f8afc7fded2e19906400579d7cae">More...</a><br /></td></tr>
<tr class="separator:a3948f8afc7fded2e19906400579d7cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd52881c18ff46e18583777fd51650bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#acd52881c18ff46e18583777fd51650bc">IMPL_BOOLEAN_ATTRIB</a>(proper)</td></tr>
<tr class="memdesc:acd52881c18ff46e18583777fd51650bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a boolean XML attribute.  <a href="#acd52881c18ff46e18583777fd51650bc">More...</a><br /></td></tr>
<tr class="separator:acd52881c18ff46e18583777fd51650bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00ccbbe285aac87f95f1a09535076b0f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a00ccbbe285aac87f95f1a09535076b0f">IMPL_XMLOBJECT_FOREIGN_ATTRIB</a>(proper, type)</td></tr>
<tr class="memdesc:a00ccbbe285aac87f95f1a09535076b0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private member for a typed, qualified XML attribute.  <a href="#a00ccbbe285aac87f95f1a09535076b0f">More...</a><br /></td></tr>
<tr class="separator:a00ccbbe285aac87f95f1a09535076b0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa6e60f9a5648da9bdf2288c1a21fcb3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#afa6e60f9a5648da9bdf2288c1a21fcb3">DECL_INHERITED_TYPED_FOREIGN_CHILD</a>(proper, ns)</td></tr>
<tr class="memdesc:afa6e60f9a5648da9bdf2288c1a21fcb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract set method for a typed XML child object in a foreign namespace.  <a href="#afa6e60f9a5648da9bdf2288c1a21fcb3">More...</a><br /></td></tr>
<tr class="separator:afa6e60f9a5648da9bdf2288c1a21fcb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1491b72e444b5dcbeb3a47cdd43346fc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1491b72e444b5dcbeb3a47cdd43346fc">DECL_TYPED_FOREIGN_CHILD</a>(proper, ns)</td></tr>
<tr class="memdesc:a1491b72e444b5dcbeb3a47cdd43346fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a typed XML child object in a foreign namespace.  <a href="#a1491b72e444b5dcbeb3a47cdd43346fc">More...</a><br /></td></tr>
<tr class="separator:a1491b72e444b5dcbeb3a47cdd43346fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2f6e6b3ad58ebf7b194d5ce3d8a0e0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aa2f6e6b3ad58ebf7b194d5ce3d8a0e0a">DECL_INHERITED_TYPED_CHILD</a>(proper)</td></tr>
<tr class="memdesc:aa2f6e6b3ad58ebf7b194d5ce3d8a0e0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract set method for a typed XML child object.  <a href="#aa2f6e6b3ad58ebf7b194d5ce3d8a0e0a">More...</a><br /></td></tr>
<tr class="separator:aa2f6e6b3ad58ebf7b194d5ce3d8a0e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64ade6e613ec456f8192858e4a054bc7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a64ade6e613ec456f8192858e4a054bc7">DECL_TYPED_CHILD</a>(proper)</td></tr>
<tr class="memdesc:a64ade6e613ec456f8192858e4a054bc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a typed XML child object.  <a href="#a64ade6e613ec456f8192858e4a054bc7">More...</a><br /></td></tr>
<tr class="separator:a64ade6e613ec456f8192858e4a054bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcfb546606ea9e2244f58c8cb4fe7ecb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#abcfb546606ea9e2244f58c8cb4fe7ecb">DECL_XMLOBJECT_CHILD</a>(proper)</td></tr>
<tr class="memdesc:abcfb546606ea9e2244f58c8cb4fe7ecb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a generic XML child object.  <a href="#abcfb546606ea9e2244f58c8cb4fe7ecb">More...</a><br /></td></tr>
<tr class="separator:abcfb546606ea9e2244f58c8cb4fe7ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83bc3ea1dbd6cc8dba53b1f593db0bb8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a83bc3ea1dbd6cc8dba53b1f593db0bb8">IMPL_TYPED_CHILD</a>(proper)</td></tr>
<tr class="memdesc:a83bc3ea1dbd6cc8dba53b1f593db0bb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private list iterator member for a typed XML child object.  <a href="#a83bc3ea1dbd6cc8dba53b1f593db0bb8">More...</a><br /></td></tr>
<tr class="separator:a83bc3ea1dbd6cc8dba53b1f593db0bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16e2c2d1ffdfe6775892b3272e0c8fb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a16e2c2d1ffdfe6775892b3272e0c8fb2">IMPL_TYPED_FOREIGN_CHILD</a>(proper, ns)</td></tr>
<tr class="memdesc:a16e2c2d1ffdfe6775892b3272e0c8fb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private list iterator member for a typed XML child object in a foreign namespace.  <a href="#a16e2c2d1ffdfe6775892b3272e0c8fb2">More...</a><br /></td></tr>
<tr class="separator:a16e2c2d1ffdfe6775892b3272e0c8fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dd13bfdded46b546e321835c7420553"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a0dd13bfdded46b546e321835c7420553">IMPL_XMLOBJECT_CHILD</a>(proper)</td></tr>
<tr class="memdesc:a0dd13bfdded46b546e321835c7420553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get/set methods and a private list iterator member for a generic XML child object.  <a href="#a0dd13bfdded46b546e321835c7420553">More...</a><br /></td></tr>
<tr class="separator:a0dd13bfdded46b546e321835c7420553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bc33d9bb5db0060bec2914227013e9d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1bc33d9bb5db0060bec2914227013e9d">DECL_TYPED_CHILDREN</a>(proper)</td></tr>
<tr class="memdesc:a1bc33d9bb5db0060bec2914227013e9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a typed XML child collection.  <a href="#a1bc33d9bb5db0060bec2914227013e9d">More...</a><br /></td></tr>
<tr class="separator:a1bc33d9bb5db0060bec2914227013e9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e7876d452bd68a05a2e09eaf897fdf3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a8e7876d452bd68a05a2e09eaf897fdf3">DECL_TYPED_FOREIGN_CHILDREN</a>(proper, ns)</td></tr>
<tr class="memdesc:a8e7876d452bd68a05a2e09eaf897fdf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a typed XML child collection in a foreign namespace.  <a href="#a8e7876d452bd68a05a2e09eaf897fdf3">More...</a><br /></td></tr>
<tr class="separator:a8e7876d452bd68a05a2e09eaf897fdf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91bfe1ec80e82ff9cd0aa095d5e8d9e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a91bfe1ec80e82ff9cd0aa095d5e8d9e1">DECL_XMLOBJECT_CHILDREN</a>(proper)</td></tr>
<tr class="memdesc:a91bfe1ec80e82ff9cd0aa095d5e8d9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares abstract get/set methods for a generic XML child collection.  <a href="#a91bfe1ec80e82ff9cd0aa095d5e8d9e1">More...</a><br /></td></tr>
<tr class="separator:a91bfe1ec80e82ff9cd0aa095d5e8d9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa43fe44c1facac568f04ecbb79138b77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aa43fe44c1facac568f04ecbb79138b77">IMPL_TYPED_CHILDREN</a>(proper, fence)</td></tr>
<tr class="memdesc:aa43fe44c1facac568f04ecbb79138b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get method and a private vector member for a typed XML child collection.  <a href="#aa43fe44c1facac568f04ecbb79138b77">More...</a><br /></td></tr>
<tr class="separator:aa43fe44c1facac568f04ecbb79138b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a73b148e38302849ca3d66214d6f870"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3a73b148e38302849ca3d66214d6f870">IMPL_TYPED_FOREIGN_CHILDREN</a>(proper, ns, fence)</td></tr>
<tr class="memdesc:a3a73b148e38302849ca3d66214d6f870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get method and a private vector member for a typed XML child collection in a foreign namespace.  <a href="#a3a73b148e38302849ca3d66214d6f870">More...</a><br /></td></tr>
<tr class="separator:a3a73b148e38302849ca3d66214d6f870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5a003502495ce9965d82a24e7ffc12"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a7e5a003502495ce9965d82a24e7ffc12">IMPL_XMLOBJECT_CHILDREN</a>(proper, fence)</td></tr>
<tr class="memdesc:a7e5a003502495ce9965d82a24e7ffc12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements get method and a private vector member for a generic XML child collection.  <a href="#a7e5a003502495ce9965d82a24e7ffc12">More...</a><br /></td></tr>
<tr class="separator:a7e5a003502495ce9965d82a24e7ffc12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19866d0b6f837d137b7ef8db83139777"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a19866d0b6f837d137b7ef8db83139777">MARSHALL_STRING_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a19866d0b6f837d137b7ef8db83139777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements marshalling for a string attribute.  <a href="#a19866d0b6f837d137b7ef8db83139777">More...</a><br /></td></tr>
<tr class="separator:a19866d0b6f837d137b7ef8db83139777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a2fc60afc4da8cf114d8525c597c3f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a2a2fc60afc4da8cf114d8525c597c3f3">MARSHALL_DATETIME_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a2a2fc60afc4da8cf114d8525c597c3f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements marshalling for a DateTime attribute.  <a href="#a2a2fc60afc4da8cf114d8525c597c3f3">More...</a><br /></td></tr>
<tr class="separator:a2a2fc60afc4da8cf114d8525c597c3f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdce840171deeae41abc626ffc627c91"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#acdce840171deeae41abc626ffc627c91">MARSHALL_INTEGER_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:acdce840171deeae41abc626ffc627c91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements marshalling for an integer attribute.  <a href="#acdce840171deeae41abc626ffc627c91">More...</a><br /></td></tr>
<tr class="separator:acdce840171deeae41abc626ffc627c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fe444abf00ad61871e8e9641e788c1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3fe444abf00ad61871e8e9641e788c1a">MARSHALL_BOOLEAN_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a3fe444abf00ad61871e8e9641e788c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements marshalling for a boolean attribute.  <a href="#a3fe444abf00ad61871e8e9641e788c1a">More...</a><br /></td></tr>
<tr class="separator:a3fe444abf00ad61871e8e9641e788c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95f632e27d997a9caa47c9981f9254e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a95f632e27d997a9caa47c9981f9254e1">MARSHALL_QNAME_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a95f632e27d997a9caa47c9981f9254e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements marshalling for a QName attribute.  <a href="#a95f632e27d997a9caa47c9981f9254e1">More...</a><br /></td></tr>
<tr class="separator:a95f632e27d997a9caa47c9981f9254e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c131345d81acf83ef144a9581f20867"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1c131345d81acf83ef144a9581f20867">MARSHALL_ID_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a1c131345d81acf83ef144a9581f20867"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements marshalling for an ID attribute.  <a href="#a1c131345d81acf83ef144a9581f20867">More...</a><br /></td></tr>
<tr class="separator:a1c131345d81acf83ef144a9581f20867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20d6b6a82ba9818665005106ef20e0e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a20d6b6a82ba9818665005106ef20e0e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for a string attribute.  <a href="#a20d6b6a82ba9818665005106ef20e0e2">More...</a><br /></td></tr>
<tr class="separator:a20d6b6a82ba9818665005106ef20e0e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b16045dccbd56ce5ab975bd27ef4e65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a8b16045dccbd56ce5ab975bd27ef4e65">PROC_ID_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a8b16045dccbd56ce5ab975bd27ef4e65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for an ID attribute.  <a href="#a8b16045dccbd56ce5ab975bd27ef4e65">More...</a><br /></td></tr>
<tr class="separator:a8b16045dccbd56ce5ab975bd27ef4e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb40bd3c9cb40e983d8feead349e2292"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#afb40bd3c9cb40e983d8feead349e2292">PROC_DATETIME_ATTRIB</a>(proper, ucase, namespaceURI)&#160;&#160;&#160;<a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper,ucase,namespaceURI)</td></tr>
<tr class="memdesc:afb40bd3c9cb40e983d8feead349e2292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for a DateTime attribute.  <a href="#afb40bd3c9cb40e983d8feead349e2292">More...</a><br /></td></tr>
<tr class="separator:afb40bd3c9cb40e983d8feead349e2292"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e47c4747c97019286ea295940c660c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a5e47c4747c97019286ea295940c660c6">PROC_QNAME_ATTRIB</a>(proper, ucase, namespaceURI)</td></tr>
<tr class="memdesc:a5e47c4747c97019286ea295940c660c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for a DateTime attribute.  <a href="#a5e47c4747c97019286ea295940c660c6">More...</a><br /></td></tr>
<tr class="separator:a5e47c4747c97019286ea295940c660c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a318adf1829fb4ac0b6e9aa21e6eb912c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a318adf1829fb4ac0b6e9aa21e6eb912c">PROC_INTEGER_ATTRIB</a>(proper, ucase, namespaceURI)&#160;&#160;&#160;<a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper,ucase,namespaceURI)</td></tr>
<tr class="memdesc:a318adf1829fb4ac0b6e9aa21e6eb912c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for an integer attribute.  <a href="#a318adf1829fb4ac0b6e9aa21e6eb912c">More...</a><br /></td></tr>
<tr class="separator:a318adf1829fb4ac0b6e9aa21e6eb912c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacbb9c0bed16649ef5bd710e781b43d6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aacbb9c0bed16649ef5bd710e781b43d6">PROC_BOOLEAN_ATTRIB</a>(proper, ucase, namespaceURI)&#160;&#160;&#160;<a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper,ucase,namespaceURI)</td></tr>
<tr class="memdesc:aacbb9c0bed16649ef5bd710e781b43d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for a boolean attribute.  <a href="#aacbb9c0bed16649ef5bd710e781b43d6">More...</a><br /></td></tr>
<tr class="separator:aacbb9c0bed16649ef5bd710e781b43d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef425205181e7155947b76ef47b979df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aef425205181e7155947b76ef47b979df">PROC_TYPED_CHILDREN</a>(proper, namespaceURI, force)</td></tr>
<tr class="memdesc:aef425205181e7155947b76ef47b979df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for typed child collection element.  <a href="#aef425205181e7155947b76ef47b979df">More...</a><br /></td></tr>
<tr class="separator:aef425205181e7155947b76ef47b979df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1977f769f16a984f8685575a808bcd50"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1977f769f16a984f8685575a808bcd50">PROC_TYPED_FOREIGN_CHILDREN</a>(proper, ns, namespaceURI, force)</td></tr>
<tr class="memdesc:a1977f769f16a984f8685575a808bcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for typed child collection element in a foreign namespace.  <a href="#a1977f769f16a984f8685575a808bcd50">More...</a><br /></td></tr>
<tr class="separator:a1977f769f16a984f8685575a808bcd50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c27d2f760c0c1ad35e9f97374c2d5a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3c27d2f760c0c1ad35e9f97374c2d5a6">PROC_TYPED_CHILD</a>(proper, namespaceURI, force)</td></tr>
<tr class="memdesc:a3c27d2f760c0c1ad35e9f97374c2d5a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for typed child singleton element.  <a href="#a3c27d2f760c0c1ad35e9f97374c2d5a6">More...</a><br /></td></tr>
<tr class="separator:a3c27d2f760c0c1ad35e9f97374c2d5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a306cca912c5a8e8a1759c2182ad4a383"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a306cca912c5a8e8a1759c2182ad4a383">PROC_TYPED_FOREIGN_CHILD</a>(proper, ns, namespaceURI, force)</td></tr>
<tr class="memdesc:a306cca912c5a8e8a1759c2182ad4a383"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for typed child singleton element in a foreign namespace.  <a href="#a306cca912c5a8e8a1759c2182ad4a383">More...</a><br /></td></tr>
<tr class="separator:a306cca912c5a8e8a1759c2182ad4a383"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3dfbbb4acf10b6623325a75fe08deb8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ad3dfbbb4acf10b6623325a75fe08deb8">PROC_XMLOBJECT_CHILD</a>(proper, namespaceURI)</td></tr>
<tr class="memdesc:ad3dfbbb4acf10b6623325a75fe08deb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements unmarshalling process branch for a generic child singleton element.  <a href="#ad3dfbbb4acf10b6623325a75fe08deb8">More...</a><br /></td></tr>
<tr class="separator:ad3dfbbb4acf10b6623325a75fe08deb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24b5c07c52f3f26a4e68e6b929acffd5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a24b5c07c52f3f26a4e68e6b929acffd5">DECL_SIMPLE_CONTENT</a>(proper)</td></tr>
<tr class="memdesc:a24b5c07c52f3f26a4e68e6b929acffd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares aliased get/set methods for named XML element simple content.  <a href="#a24b5c07c52f3f26a4e68e6b929acffd5">More...</a><br /></td></tr>
<tr class="separator:a24b5c07c52f3f26a4e68e6b929acffd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cbda8a559f539a7461f1cc0d9d39474"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1cbda8a559f539a7461f1cc0d9d39474">DECL_INTEGER_CONTENT</a>(proper)</td></tr>
<tr class="memdesc:a1cbda8a559f539a7461f1cc0d9d39474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares aliased get/set methods for named integer XML element content.  <a href="#a1cbda8a559f539a7461f1cc0d9d39474">More...</a><br /></td></tr>
<tr class="separator:a1cbda8a559f539a7461f1cc0d9d39474"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a646413a0147ae4b4a13593a26587976f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a646413a0147ae4b4a13593a26587976f">IMPL_XMLOBJECT_CLONE</a>(cname)</td></tr>
<tr class="memdesc:a646413a0147ae4b4a13593a26587976f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning methods for an XMLObject specialization implementation class.  <a href="#a646413a0147ae4b4a13593a26587976f">More...</a><br /></td></tr>
<tr class="separator:a646413a0147ae4b4a13593a26587976f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9077cca84ee4a3f26c820943bbefb0ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a9077cca84ee4a3f26c820943bbefb0ef">IMPL_XMLOBJECT_CLONE2</a>(cname, base)</td></tr>
<tr class="memdesc:a9077cca84ee4a3f26c820943bbefb0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning methods for an XMLObject specialization implementation class that must override a base class clone method.  <a href="#a9077cca84ee4a3f26c820943bbefb0ef">More...</a><br /></td></tr>
<tr class="separator:a9077cca84ee4a3f26c820943bbefb0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19a49c37c2184a20da0db9754367c318"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a19a49c37c2184a20da0db9754367c318">IMPL_XMLOBJECT_CLONE_EX</a>(cname)</td></tr>
<tr class="memdesc:a19a49c37c2184a20da0db9754367c318"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning methods for an XMLObject specialization implementation class that needs two stage duplication to avoid invoking virtual methods during construction.  <a href="#a19a49c37c2184a20da0db9754367c318">More...</a><br /></td></tr>
<tr class="separator:a19a49c37c2184a20da0db9754367c318"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7bc8331b45409286ab67b9517d2850f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ae7bc8331b45409286ab67b9517d2850f">IMPL_XMLOBJECT_CLONE_EX2</a>(cname, base)</td></tr>
<tr class="memdesc:ae7bc8331b45409286ab67b9517d2850f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning methods for an XMLObject specialization implementation class that needs two stage duplication to avoid invoking virtual methods during construction, and must override a base class clone method.  <a href="#ae7bc8331b45409286ab67b9517d2850f">More...</a><br /></td></tr>
<tr class="separator:ae7bc8331b45409286ab67b9517d2850f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab50268e8c9ec74e9c0e1549944f2b960"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ab50268e8c9ec74e9c0e1549944f2b960">IMPL_CLONE_ATTRIB</a>(proper)&#160;&#160;&#160;set##proper(src.get##proper())</td></tr>
<tr class="memdesc:ab50268e8c9ec74e9c0e1549944f2b960"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a child attribute, for use in copy constructor or deferred clone methods.  <a href="#ab50268e8c9ec74e9c0e1549944f2b960">More...</a><br /></td></tr>
<tr class="separator:ab50268e8c9ec74e9c0e1549944f2b960"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9efb30d0e1e5eb78fa5681199c68faf5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a9efb30d0e1e5eb78fa5681199c68faf5">IMPL_CLONE_FOREIGN_ATTRIB</a>(proper)</td></tr>
<tr class="memdesc:a9efb30d0e1e5eb78fa5681199c68faf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a child attribute in a foreign namespace, for use in copy constructor or deferred clone methods.  <a href="#a9efb30d0e1e5eb78fa5681199c68faf5">More...</a><br /></td></tr>
<tr class="separator:a9efb30d0e1e5eb78fa5681199c68faf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2ffa71b16f029610958cdc4054a02b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ac2ffa71b16f029610958cdc4054a02b6">IMPL_CLONE_INTEGER_ATTRIB</a>(proper)&#160;&#160;&#160;set##proper(src.m_##proper)</td></tr>
<tr class="memdesc:ac2ffa71b16f029610958cdc4054a02b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of an integer child attribute, for use in copy constructor or deferred clone methods.  <a href="#ac2ffa71b16f029610958cdc4054a02b6">More...</a><br /></td></tr>
<tr class="separator:ac2ffa71b16f029610958cdc4054a02b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc5cb622b11a455b3ab0fa8dafe655c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#afbc5cb622b11a455b3ab0fa8dafe655c">IMPL_CLONE_BOOLEAN_ATTRIB</a>(proper)&#160;&#160;&#160;proper(src.m_##proper)</td></tr>
<tr class="memdesc:afbc5cb622b11a455b3ab0fa8dafe655c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a boolean child attribute, for use in copy constructor or deferred clone methods.  <a href="#afbc5cb622b11a455b3ab0fa8dafe655c">More...</a><br /></td></tr>
<tr class="separator:afbc5cb622b11a455b3ab0fa8dafe655c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af998b999332b6622be0874d34865f4c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#af998b999332b6622be0874d34865f4c4">IMPL_CLONE_XMLOBJECT_CHILD</a>(proper)</td></tr>
<tr class="memdesc:af998b999332b6622be0874d34865f4c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a child object, for use in copy constructor or deferred clone methods.  <a href="#af998b999332b6622be0874d34865f4c4">More...</a><br /></td></tr>
<tr class="separator:af998b999332b6622be0874d34865f4c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7b38dba0df5fdfd1c18b9b3dcbdcbd9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aa7b38dba0df5fdfd1c18b9b3dcbdcbd9">IMPL_CLONE_TYPED_CHILD</a>(proper)</td></tr>
<tr class="memdesc:aa7b38dba0df5fdfd1c18b9b3dcbdcbd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a typed child object, for use in copy constructor or deferred clone methods.  <a href="#aa7b38dba0df5fdfd1c18b9b3dcbdcbd9">More...</a><br /></td></tr>
<tr class="separator:aa7b38dba0df5fdfd1c18b9b3dcbdcbd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7e7b2a07ea5ebfd52427068b0ea01e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ae7e7b2a07ea5ebfd52427068b0ea01e9">IMPL_CLONE_XMLOBJECT_CHILDREN</a>(proper)</td></tr>
<tr class="memdesc:ae7e7b2a07ea5ebfd52427068b0ea01e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of an untyped child collection, for use in copy constructor or deferred clone methods.  <a href="#ae7e7b2a07ea5ebfd52427068b0ea01e9">More...</a><br /></td></tr>
<tr class="separator:ae7e7b2a07ea5ebfd52427068b0ea01e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5878ff010e874ef89071b048bd5aa37"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ad5878ff010e874ef89071b048bd5aa37">IMPL_CLONE_TYPED_CHILDREN</a>(proper)</td></tr>
<tr class="memdesc:ad5878ff010e874ef89071b048bd5aa37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a child collection, for use in copy constructor or deferred clone methods.  <a href="#ad5878ff010e874ef89071b048bd5aa37">More...</a><br /></td></tr>
<tr class="separator:ad5878ff010e874ef89071b048bd5aa37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1248e2c6dd2f62e822a870d18e147b32"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1248e2c6dd2f62e822a870d18e147b32">IMPL_CLONE_TYPED_FOREIGN_CHILDREN</a>(proper, ns)</td></tr>
<tr class="memdesc:a1248e2c6dd2f62e822a870d18e147b32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a child collection in a foreign namespace, for use in copy constructor or deferred clone methods.  <a href="#a1248e2c6dd2f62e822a870d18e147b32">More...</a><br /></td></tr>
<tr class="separator:a1248e2c6dd2f62e822a870d18e147b32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3615120a22fefae85c917ad79b1ad22e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3615120a22fefae85c917ad79b1ad22e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a3615120a22fefae85c917ad79b1ad22e">IMPL_CLONE_CHILDBAG_BEGIN</a>&#160;&#160;&#160;for (list&lt;<a class="el" href="a00105.html">xmltooling::XMLObject</a>*&gt;::const_iterator _bagit = src.m_children.begin(); _bagit != src.m_children.end(); ++_bagit) {</td></tr>
<tr class="memdesc:a3615120a22fefae85c917ad79b1ad22e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens an iteration loop over all of the children of an object. <br /></td></tr>
<tr class="separator:a3615120a22fefae85c917ad79b1ad22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c311af2cec6207d15b381364d80d194"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c311af2cec6207d15b381364d80d194"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a0c311af2cec6207d15b381364d80d194">IMPL_CLONE_CHILDBAG_END</a>&#160;&#160;&#160;}</td></tr>
<tr class="memdesc:a0c311af2cec6207d15b381364d80d194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes an iteration loop over all of the children of an object. <br /></td></tr>
<tr class="separator:a0c311af2cec6207d15b381364d80d194"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addf2f55e8ca7a78f2fa1bd9a5674727e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#addf2f55e8ca7a78f2fa1bd9a5674727e">IMPL_CLONE_TYPED_CHILD_IN_BAG</a>(proper)</td></tr>
<tr class="memdesc:addf2f55e8ca7a78f2fa1bd9a5674727e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a typed child in a bag iteration loop based on a cast check.  <a href="#addf2f55e8ca7a78f2fa1bd9a5674727e">More...</a><br /></td></tr>
<tr class="separator:addf2f55e8ca7a78f2fa1bd9a5674727e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae10a37b86b36b82d644a4b82fb03c816"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ae10a37b86b36b82d644a4b82fb03c816">IMPL_CLONE_TYPED_FOREIGN_CHILD_IN_BAG</a>(proper, ns)</td></tr>
<tr class="memdesc:ae10a37b86b36b82d644a4b82fb03c816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of a typed child in a forign namespace in a bag iteration loop based on a cast check.  <a href="#ae10a37b86b36b82d644a4b82fb03c816">More...</a><br /></td></tr>
<tr class="separator:ae10a37b86b36b82d644a4b82fb03c816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94e350163100d4ec665f605ba272cd51"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a94e350163100d4ec665f605ba272cd51">IMPL_CLONE_XMLOBJECT_CHILD_IN_BAG</a>(proper)</td></tr>
<tr class="memdesc:a94e350163100d4ec665f605ba272cd51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements cloning of an XMLObject child in a bag iteration loop.  <a href="#a94e350163100d4ec665f605ba272cd51">More...</a><br /></td></tr>
<tr class="separator:a94e350163100d4ec665f605ba272cd51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1827324b04a51a4d32122b69c367681"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ac1827324b04a51a4d32122b69c367681">DECL_XMLOBJECT_SIMPLE</a>(linkage, cname, proper, desc)</td></tr>
<tr class="memdesc:ac1827324b04a51a4d32122b69c367681"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares an XMLObject specialization with a simple content model and type, handling it as string data.  <a href="#ac1827324b04a51a4d32122b69c367681">More...</a><br /></td></tr>
<tr class="separator:ac1827324b04a51a4d32122b69c367681"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2585755b0dbffc1f2ba80173685e5aa8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a2585755b0dbffc1f2ba80173685e5aa8">DECL_XMLOBJECTIMPL_SIMPLE</a>(linkage, cname)</td></tr>
<tr class="memdesc:a2585755b0dbffc1f2ba80173685e5aa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares and defines an implementation class for an XMLObject with a simple content model and type, handling it as string data.  <a href="#a2585755b0dbffc1f2ba80173685e5aa8">More...</a><br /></td></tr>
<tr class="separator:a2585755b0dbffc1f2ba80173685e5aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a2c6c34144ccdb0af5ea1b71075b5ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a9a2c6c34144ccdb0af5ea1b71075b5ce">BEGIN_XMLOBJECTBUILDER</a>(linkage, cname, namespaceURI, namespacePrefix)</td></tr>
<tr class="memdesc:a9a2c6c34144ccdb0af5ea1b71075b5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of an XMLObjectBuilder specialization.  <a href="#a9a2c6c34144ccdb0af5ea1b71075b5ce">More...</a><br /></td></tr>
<tr class="separator:a9a2c6c34144ccdb0af5ea1b71075b5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2d5217452adbfd0e0824c052eefb90e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2d5217452adbfd0e0824c052eefb90e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ad2d5217452adbfd0e0824c052eefb90e">END_XMLOBJECTBUILDER</a>&#160;&#160;&#160;}</td></tr>
<tr class="memdesc:ad2d5217452adbfd0e0824c052eefb90e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ends the declaration of an XMLObjectBuilder specialization. <br /></td></tr>
<tr class="separator:ad2d5217452adbfd0e0824c052eefb90e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12f936645958cdc0a2acb699df7bfc1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a12f936645958cdc0a2acb699df7bfc1a">DECL_XMLOBJECTBUILDER</a>(linkage, cname, namespaceURI, namespacePrefix)</td></tr>
<tr class="memdesc:a12f936645958cdc0a2acb699df7bfc1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a generic XMLObjectBuilder specialization.  <a href="#a12f936645958cdc0a2acb699df7bfc1a">More...</a><br /></td></tr>
<tr class="separator:a12f936645958cdc0a2acb699df7bfc1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67912142e8cbeaea7f3f196966537f7d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a67912142e8cbeaea7f3f196966537f7d">IMPL_XMLOBJECTBUILDER</a>(cname)</td></tr>
<tr class="memdesc:a67912142e8cbeaea7f3f196966537f7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the standard XMLObjectBuilder specialization function.  <a href="#a67912142e8cbeaea7f3f196966537f7d">More...</a><br /></td></tr>
<tr class="separator:a67912142e8cbeaea7f3f196966537f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1ab408b1e00d118d2451b55c0abb809"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#aa1ab408b1e00d118d2451b55c0abb809">BEGIN_XMLOBJECTVALIDATOR</a>(linkage, cname)</td></tr>
<tr class="memdesc:aa1ab408b1e00d118d2451b55c0abb809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of a Schema Validator specialization.  <a href="#aa1ab408b1e00d118d2451b55c0abb809">More...</a><br /></td></tr>
<tr class="separator:aa1ab408b1e00d118d2451b55c0abb809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a470ea5f8a32925c04cfde3f5a1359f14"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a470ea5f8a32925c04cfde3f5a1359f14">BEGIN_XMLOBJECTVALIDATOR_SUB</a>(linkage, cname, base)</td></tr>
<tr class="memdesc:a470ea5f8a32925c04cfde3f5a1359f14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins the declaration of a Schema Validator specialization subclass.  <a href="#a470ea5f8a32925c04cfde3f5a1359f14">More...</a><br /></td></tr>
<tr class="separator:a470ea5f8a32925c04cfde3f5a1359f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9070c2ed149483371c4f3ddc8d6b0bd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9070c2ed149483371c4f3ddc8d6b0bd9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a9070c2ed149483371c4f3ddc8d6b0bd9">END_XMLOBJECTVALIDATOR</a>&#160;&#160;&#160;} }</td></tr>
<tr class="memdesc:a9070c2ed149483371c4f3ddc8d6b0bd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ends the declaration of a Validator specialization. <br /></td></tr>
<tr class="separator:a9070c2ed149483371c4f3ddc8d6b0bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aa24bc623206d31d8f17e523dfc2fe5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1aa24bc623206d31d8f17e523dfc2fe5">XMLOBJECTVALIDATOR_CHECKTYPE</a>(cname)</td></tr>
<tr class="memdesc:a1aa24bc623206d31d8f17e523dfc2fe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks the object type.  <a href="#a1aa24bc623206d31d8f17e523dfc2fe5">More...</a><br /></td></tr>
<tr class="separator:a1aa24bc623206d31d8f17e523dfc2fe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0cb87550435528cc2534173e424bf4e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ac0cb87550435528cc2534173e424bf4e">XMLOBJECTVALIDATOR_REQUIRE</a>(cname, proper)</td></tr>
<tr class="memdesc:ac0cb87550435528cc2534173e424bf4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for a required attribute, content, or singleton.  <a href="#ac0cb87550435528cc2534173e424bf4e">More...</a><br /></td></tr>
<tr class="separator:ac0cb87550435528cc2534173e424bf4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a520648f625da2cb5221b33485d6b2b8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a520648f625da2cb5221b33485d6b2b8e">XMLOBJECTVALIDATOR_REQUIRE_INTEGER</a>(cname, proper)</td></tr>
<tr class="memdesc:a520648f625da2cb5221b33485d6b2b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for a required integer attribute.  <a href="#a520648f625da2cb5221b33485d6b2b8e">More...</a><br /></td></tr>
<tr class="separator:a520648f625da2cb5221b33485d6b2b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aac86283c8c06020782fa713934f470"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1aac86283c8c06020782fa713934f470">XMLOBJECTVALIDATOR_ONEOF</a>(cname, proper1, proper2)</td></tr>
<tr class="memdesc:a1aac86283c8c06020782fa713934f470"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for one of a pair of required attributes, content, or singletons.  <a href="#a1aac86283c8c06020782fa713934f470">More...</a><br /></td></tr>
<tr class="separator:a1aac86283c8c06020782fa713934f470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7db9e7f7e16ef10f28f6b1b1366fc5c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ad7db9e7f7e16ef10f28f6b1b1366fc5c">XMLOBJECTVALIDATOR_ONLYONEOF</a>(cname, proper1, proper2)</td></tr>
<tr class="memdesc:ad7db9e7f7e16ef10f28f6b1b1366fc5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for one of a pair of required attributes, content, or singletons, but disallows both.  <a href="#ad7db9e7f7e16ef10f28f6b1b1366fc5c">More...</a><br /></td></tr>
<tr class="separator:ad7db9e7f7e16ef10f28f6b1b1366fc5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae34dc7ced99bec3028fa97faaae53bba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ae34dc7ced99bec3028fa97faaae53bba">XMLOBJECTVALIDATOR_ONEOF3</a>(cname, proper1, proper2, proper3)</td></tr>
<tr class="memdesc:ae34dc7ced99bec3028fa97faaae53bba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for one of a set of three required attributes, content, or singletons.  <a href="#ae34dc7ced99bec3028fa97faaae53bba">More...</a><br /></td></tr>
<tr class="separator:ae34dc7ced99bec3028fa97faaae53bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e79363a3a4541e5c11b37a7f0ddae15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a4e79363a3a4541e5c11b37a7f0ddae15">XMLOBJECTVALIDATOR_ONLYONEOF3</a>(cname, proper1, proper2, proper3)</td></tr>
<tr class="memdesc:a4e79363a3a4541e5c11b37a7f0ddae15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for one of a set of three required attributes, content, or singletons but disallows more than one.  <a href="#a4e79363a3a4541e5c11b37a7f0ddae15">More...</a><br /></td></tr>
<tr class="separator:a4e79363a3a4541e5c11b37a7f0ddae15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6900cb8ff5aa20a8a54c02121883f8c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a6900cb8ff5aa20a8a54c02121883f8c0">XMLOBJECTVALIDATOR_NONEORBOTH</a>(cname, proper1, proper2)</td></tr>
<tr class="memdesc:a6900cb8ff5aa20a8a54c02121883f8c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks a co-constraint (if one present, the other must be) between a pair of attributes, content, or singletons.  <a href="#a6900cb8ff5aa20a8a54c02121883f8c0">More...</a><br /></td></tr>
<tr class="separator:a6900cb8ff5aa20a8a54c02121883f8c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c37ef0ef673c9d8c83384523e01f4d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a0c37ef0ef673c9d8c83384523e01f4d8">XMLOBJECTVALIDATOR_NONEMPTY</a>(cname, proper)</td></tr>
<tr class="memdesc:a0c37ef0ef673c9d8c83384523e01f4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validator code that checks for a non-empty collection.  <a href="#a0c37ef0ef673c9d8c83384523e01f4d8">More...</a><br /></td></tr>
<tr class="separator:a0c37ef0ef673c9d8c83384523e01f4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1823e45bc999537de56e085a912150d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#a1823e45bc999537de56e085a912150d4">XMLOBJECTVALIDATOR_SIMPLE</a>(linkage, cname)</td></tr>
<tr class="memdesc:a1823e45bc999537de56e085a912150d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares/defines a Validator specialization that checks object type and a non-empty simple content model.  <a href="#a1823e45bc999537de56e085a912150d4">More...</a><br /></td></tr>
<tr class="separator:a1823e45bc999537de56e085a912150d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a41ed66baaa8c7376486dcc407ca2e726"><td class="memTemplParams" colspan="2">template&lt;class InputSequence , class OutputSequence &gt; </td></tr>
<tr class="memitem:a41ed66baaa8c7376486dcc407ca2e726"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a> (const InputSequence &amp;in, OutputSequence &amp;out)</td></tr>
<tr class="memdesc:a41ed66baaa8c7376486dcc407ca2e726"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template function for cloning a sequence of XMLObjects.  <a href="#a41ed66baaa8c7376486dcc407ca2e726">More...</a><br /></td></tr>
<tr class="separator:a41ed66baaa8c7376486dcc407ca2e726"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Licensed to the University Corporation for Advanced Internet Development, Inc. </p>
<p>(UCAID) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership.</p>
<p>UCAID licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<p>Base header file definitions. Must be included prior to including any other header. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a184a5983089798524bf62a6d2a6fc537"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(desc) \</div>
<div class="line">    class linkage cname : <span class="keyword">public</span> <span class="keyword">virtual</span> base { \</div>
<div class="line">    protected: \</div>
<div class="line">        cname() {} \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Type-specific <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a> method.) \</div>
<div class="line">        virtual cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element local name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh LOCAL_NAME[]</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObject specialization. </p>
<p>Basic boilerplate includes a protected constructor, empty virtual destructor, and Unicode constants for the default associated element's name and prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the class to declare </td></tr>
    <tr><td class="paramname">base</td><td>the base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">desc</td><td>documentation comment for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a72c519be650469c6121acd28ec6d0dae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECT2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(desc) \</div>
<div class="line">    class linkage cname : <span class="keyword">public</span> <span class="keyword">virtual</span> base, <span class="keyword">public</span> <span class="keyword">virtual</span> base2 { \</div>
<div class="line">    protected: \</div>
<div class="line">        cname() {} \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Type-specific <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a> method.) \</div>
<div class="line">        virtual cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element local name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh LOCAL_NAME[]</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObject specialization with two base classes. </p>
<p>Basic boilerplate includes a protected constructor, empty virtual destructor, and Unicode constants for the default associated element's name and prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the class to declare </td></tr>
    <tr><td class="paramname">base</td><td>the first base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base2</td><td>the second base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">desc</td><td>documentation comment for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a58cd19813bf1d02b75009cdd03ce5dca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECT3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base3, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(desc) \</div>
<div class="line">    class linkage cname : <span class="keyword">public</span> <span class="keyword">virtual</span> base, <span class="keyword">public</span> <span class="keyword">virtual</span> base2, <span class="keyword">public</span> <span class="keyword">virtual</span> base3 { \</div>
<div class="line">    protected: \</div>
<div class="line">        cname() {} \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Type-specific <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a> method.) \</div>
<div class="line">        virtual cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element local name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh LOCAL_NAME[]</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObject specialization with three base classes. </p>
<p>Basic boilerplate includes a protected constructor, empty virtual destructor, and Unicode constants for the default associated element's name and prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the class to declare </td></tr>
    <tr><td class="paramname">base</td><td>the first base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base2</td><td>the second base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base3</td><td>the third base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">desc</td><td>documentation comment for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6461cda8c2c379c42adfc6601e55d5a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECT4</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base3, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base4, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(desc) \</div>
<div class="line">    class linkage cname : <span class="keyword">public</span> <span class="keyword">virtual</span> base, <span class="keyword">public</span> <span class="keyword">virtual</span> base2, <span class="keyword">public</span> <span class="keyword">virtual</span> base3, <span class="keyword">public</span> <span class="keyword">virtual</span> base4 { \</div>
<div class="line">    protected: \</div>
<div class="line">        cname() {} \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Type-specific <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a> method.) \</div>
<div class="line">        virtual cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element local name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh LOCAL_NAME[]</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObject specialization with four base classes. </p>
<p>Basic boilerplate includes a protected constructor, empty virtual destructor, and Unicode constants for the default associated element's name and prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the class to declare </td></tr>
    <tr><td class="paramname">base</td><td>the first base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base2</td><td>the second base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base3</td><td>the third base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base4</td><td>the fourth base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">desc</td><td>documentation comment for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aca6926f4f191d3976ad6b822136a607f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECT5</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base3, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base4, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base5, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(desc) \</div>
<div class="line">    class linkage cname : <span class="keyword">public</span> <span class="keyword">virtual</span> base, <span class="keyword">public</span> <span class="keyword">virtual</span> base2, <span class="keyword">public</span> <span class="keyword">virtual</span> base3, <span class="keyword">public</span> <span class="keyword">virtual</span> base4, <span class="keyword">public</span> <span class="keyword">virtual</span> base5 { \</div>
<div class="line">    protected: \</div>
<div class="line">        cname() {} \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Type-specific <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a> method.) \</div>
<div class="line">        virtual cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element local name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh LOCAL_NAME[]</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObject specialization with five base classes. </p>
<p>Basic boilerplate includes a protected constructor, empty virtual destructor, and Unicode constants for the default associated element's name and prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the class to declare </td></tr>
    <tr><td class="paramname">base</td><td>the first base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base2</td><td>the second base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base3</td><td>the third base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base4</td><td>the fourth base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">base5</td><td>the fifth base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">desc</td><td>documentation comment for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9a2c6c34144ccdb0af5ea1b71075b5ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECTBUILDER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespacePrefix&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(Builder <span class="keywordflow">for</span> cname objects.) \</div>
<div class="line">    class linkage cname##Builder : <span class="keyword">public</span> <a class="code" href="a00020.html">xmltooling::ConcreteXMLObjectBuilder</a> { \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname##Builder() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Default builder.) \</div>
<div class="line">        virtual cname* buildObject()<span class="keyword"> const </span>{ \</div>
<div class="line">            return buildObject(namespaceURI,cname::LOCAL_NAME,namespacePrefix); \</div>
<div class="line">        } \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Builder that allows element/type <span class="keyword">override</span>.) \</div>
<div class="line">        virtual cname* buildObject( \</div>
<div class="line">            <span class="keyword">const</span> XMLCh* nsURI, <span class="keyword">const</span> XMLCh* localName, <span class="keyword">const</span> XMLCh* prefix=<span class="keyword">nullptr</span>, <span class="keyword">const</span> <a class="code" href="a00069.html">xmltooling::QName</a>* schemaType=<span class="keyword">nullptr</span> \</div>
<div class="line">            ) const</div>
<div class="ttc" id="a00020_html"><div class="ttname"><a href="a00020.html">xmltooling::ConcreteXMLObjectBuilder</a></div><div class="ttdoc">A factory interface for obtaining XMLObjects. </div><div class="ttdef"><b>Definition:</b> ConcreteXMLObjectBuilder.h:38</div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">xmltooling::QName</a></div><div class="ttdoc">A data structure for encapsulating XML QNames. </div><div class="ttdef"><b>Definition:</b> QName.h:44</div></div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObjectBuilder specialization. </p>
<p>Basic boilerplate includes an empty virtual destructor, and a default builder that defaults the element name.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the default associated element </td></tr>
    <tr><td class="paramname">namespacePrefix</td><td>the XML namespace prefix of the default associated element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa1ab408b1e00d118d2451b55c0abb809"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECTVALIDATOR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">class </span>linkage cname##SchemaValidator : <span class="keyword">public</span> <a class="code" href="a00099.html">xmltooling::Validator</a> \</div>
<div class="line">    { \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname##SchemaValidator() {} \</div>
<div class="line">        virtual <span class="keywordtype">void</span> <a class="code" href="a00099.html#a3489bcbbc5b4dc2e2850e82b28883bfc">validate</a>(<span class="keyword">const</span> <a class="code" href="a00105.html">xmltooling::XMLObject</a>* xmlObject)<span class="keyword"> const </span>{ \</div>
<div class="line">            const cname* ptr=<span class="keyword">dynamic_cast&lt;</span><span class="keyword">const </span>cname*<span class="keyword">&gt;</span>(xmlObject); \</div>
<div class="line">            if (!ptr) \</div>
<div class="line">                throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot;SchemaValidator: unsupported object type ($1).&quot;</span>,<a class="code" href="a00061.html">xmltooling::params</a>(1,<span class="keyword">typeid</span>(xmlObject).name())); \</div>
<div class="line">            if (ptr-&gt;nil() &amp;&amp; (ptr-&gt;hasChildren() || ptr-&gt;getTextContent())) \</div>
<div class="line">                throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(<span class="stringliteral">&quot;Object has nil property but with children or content.&quot;</span>)</div>
<div class="ttc" id="a00099_html_a3489bcbbc5b4dc2e2850e82b28883bfc"><div class="ttname"><a href="a00099.html#a3489bcbbc5b4dc2e2850e82b28883bfc">xmltooling::Validator::validate</a></div><div class="ttdeci">virtual void validate(const XMLObject *xmlObject) const =0</div><div class="ttdoc">Checks to see if an XMLObject is valid. </div></div>
<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">xmltooling::Validator</a></div><div class="ttdoc">An interface for classes that implement rules for checking the validity of XMLObjects. </div><div class="ttdef"><b>Definition:</b> Validator.h:38</div></div>
<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">xmltooling::params</a></div><div class="ttdoc">Wrapper around a variable number of arguments. </div><div class="ttdef"><b>Definition:</b> exceptions.h:93</div></div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Begins the declaration of a Schema Validator specialization. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the base name of the Validator specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a470ea5f8a32925c04cfde3f5a1359f14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGIN_XMLOBJECTVALIDATOR_SUB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">class </span>linkage cname##SchemaValidator : <span class="keyword">public</span> base##SchemaValidator \</div>
<div class="line">    { \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname##SchemaValidator() {} \</div>
<div class="line">        virtual <span class="keywordtype">void</span> validate(<span class="keyword">const</span> <a class="code" href="a00105.html">xmltooling::XMLObject</a>* xmlObject)<span class="keyword"> const </span>{ \</div>
<div class="line">            const cname* ptr=<span class="keyword">dynamic_cast&lt;</span><span class="keyword">const </span>cname*<span class="keyword">&gt;</span>(xmlObject); \</div>
<div class="line">            if (!ptr) \</div>
<div class="line">                throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot;SchemaValidator: unsupported object type ($1).&quot;</span>,<a class="code" href="a00061.html">xmltooling::params</a>(1,<span class="keyword">typeid</span>(xmlObject).name()));</div>
<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">xmltooling::params</a></div><div class="ttdoc">Wrapper around a variable number of arguments. </div><div class="ttdef"><b>Definition:</b> exceptions.h:93</div></div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Begins the declaration of a Schema Validator specialization subclass. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the base name of the Validator specialization </td></tr>
    <tr><td class="paramname">base</td><td>base class for the validator </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3d44140e1c1bb50daa792a44c26bab43"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_BOOLEAN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">def&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Declares abstract get/set methods for a boolean XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">def</td><td>the default/presumed value, if no explicit value has been set </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad02085c1d37b0604c6b290fa50251328"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_DATETIME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#a8a852eda578a2e4353e0d9cd6eb00fb6">DECL_XMLOBJECT_ATTRIB</a>(proper,upcased,<a class="code" href="a00028.html">xmltooling::DateTime</a>); \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Returns the proper attribute in epoch form.) \</div>
<div class="line">    virtual time_t <span class="keyword">get</span>##proper##Epoch() <span class="keyword">const</span>=0; \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">    virtual <span class="keywordtype">void</span> set##proper(time_t proper)=0; \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">    virtual <span class="keywordtype">void</span> set##proper(<span class="keyword">const</span> XMLCh* proper)=0</div>
<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">xmltooling::DateTime</a></div><div class="ttdoc">Class for manipulating XML date/time information. </div><div class="ttdef"><b>Definition:</b> DateTime.h:53</div></div>
<div class="ttc" id="a00122_html_a8a852eda578a2e4353e0d9cd6eb00fb6"><div class="ttname"><a href="a00122.html#a8a852eda578a2e4353e0d9cd6eb00fb6">DECL_XMLOBJECT_ATTRIB</a></div><div class="ttdeci">#define DECL_XMLOBJECT_ATTRIB(proper, upcased, type)</div><div class="ttdoc">Declares abstract get/set methods for a typed XML attribute. </div><div class="ttdef"><b>Definition:</b> base.h:551</div></div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a DateTime XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0eb4a733906e0bc7c730a5180888e106"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_ELEMENT_QNAME</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element QName) \</div>
<div class="line">        static <a class="code" href="a00069.html">xmltooling::QName</a> ELEMENT_QNAME</div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">xmltooling::QName</a></div><div class="ttdoc">A data structure for encapsulating XML QNames. </div><div class="ttdef"><b>Definition:</b> QName.h:44</div></div>
</div><!-- fragment -->
<p>Declares a static variable holding the XMLObject's element QName. </p>

</div>
</div>
<a class="anchor" id="ac122dbcd05c92f62b30b9d1cf8d92109"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INHERITED_DATETIME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#ac7eea41b57e0fbef6ada45dab7eedece">DECL_INHERITED_XMLOBJECT_ATTRIB</a>(proper,upcased,<a class="code" href="a00028.html">xmltooling::DateTime</a>); \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">    virtual <span class="keywordtype">void</span> set##proper(time_t proper)=0; \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">    virtual <span class="keywordtype">void</span> set##proper(<span class="keyword">const</span> XMLCh* proper)=0</div>
<div class="ttc" id="a00122_html_ac7eea41b57e0fbef6ada45dab7eedece"><div class="ttname"><a href="a00122.html#ac7eea41b57e0fbef6ada45dab7eedece">DECL_INHERITED_XMLOBJECT_ATTRIB</a></div><div class="ttdeci">#define DECL_INHERITED_XMLOBJECT_ATTRIB(proper, upcased, type)</div><div class="ttdoc">Declares abstract set method for a typed XML attribute. </div><div class="ttdef"><b>Definition:</b> base.h:537</div></div>
<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">xmltooling::DateTime</a></div><div class="ttdoc">Class for manipulating XML date/time information. </div><div class="ttdef"><b>Definition:</b> DateTime.h:53</div></div>
</div><!-- fragment -->
<p>Declares abstract set method for a DateTime XML attribute. </p>
<p>The get method is omitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa630296ecefe8b5faa2766baa1b0e59b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INHERITED_INTEGER_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(proper attribute name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh upcased##_ATTRIB_NAME[]; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper attribute <span class="keyword">using</span> a <span class="keywordtype">string</span> value.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<span class="keyword">const</span> XMLCh* proper)=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<span class="keywordtype">int</span> proper)=0</div>
</div><!-- fragment -->
<p>Declares abstract set method for an integer XML attribute. </p>
<p>The get method is omitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0bd66d0fcc29ebb1bbdb2cead465555d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INHERITED_STRING_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#ac7eea41b57e0fbef6ada45dab7eedece">DECL_INHERITED_XMLOBJECT_ATTRIB</a>(proper,upcased,XMLCh)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Declares abstract set method for a string XML attribute. </p>
<p>The get method is omitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa2f6e6b3ad58ebf7b194d5ce3d8a0e0a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INHERITED_TYPED_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper child.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(proper* child)=0</div>
</div><!-- fragment -->
<p>Declares abstract set method for a typed XML child object. </p>
<p>The get method is omitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afa6e60f9a5648da9bdf2288c1a21fcb3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INHERITED_TYPED_FOREIGN_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper child.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(ns::proper* child)=0</div>
</div><!-- fragment -->
<p>Declares abstract set method for a typed XML child object in a foreign namespace. </p>
<p>The get method is omitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac7eea41b57e0fbef6ada45dab7eedece"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INHERITED_XMLOBJECT_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(proper attribute name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh upcased##_ATTRIB_NAME[]; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<span class="keyword">const</span> type* proper)=0</div>
</div><!-- fragment -->
<p>Declares abstract set method for a typed XML attribute. </p>
<p>The get method is omitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">type</td><td>the attribute's data type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6b733a13ddcbc819a3d9aceee339e4c6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INTEGER_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(proper attribute name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh upcased##_ATTRIB_NAME[]; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns the proper attribute after a NULL indicator.) \</div>
<div class="line">        virtual std::pair&lt;bool,int&gt; <span class="keyword">get</span>##proper() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper attribute <span class="keyword">using</span> a <span class="keywordtype">string</span> value.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<span class="keyword">const</span> XMLCh* proper)=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<span class="keywordtype">int</span> proper)=0</div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for an integer XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1cbda8a559f539a7461f1cc0d9d39474"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_INTEGER_CONTENT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(Returns proper in integer form after a NULL indicator.) \</div>
<div class="line">    std::pair&lt;bool,int&gt; <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">        return std::make_pair((getTextContent()!=<span class="keyword">nullptr</span>), (getTextContent()!=<span class="keyword">nullptr</span> ? xercesc::XMLString::parseInt(getTextContent()) : 0)); \</div>
<div class="line">    } \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets proper.) \</div>
<div class="line">    void set##proper(<span class="keywordtype">int</span> proper) { \</div>
<div class="line">        try { \</div>
<div class="line">            std::string buf(boost::lexical_cast&lt;std::string&gt;(proper)); \</div>
<div class="line">            xmltooling::auto_ptr_XMLCh widen(buf.c_str()); \</div>
<div class="line">            setTextContent(widen.get()); \</div>
<div class="line">        } \</div>
<div class="line">        catch (boost::bad_lexical_cast&amp;) { \</div>
<div class="line">        } \</div>
<div class="line">    } \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets or clears proper.) \</div>
<div class="line">    void set##proper(<span class="keyword">const</span> XMLCh* proper) { \</div>
<div class="line">        setTextContent(proper); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Declares aliased get/set methods for named integer XML element content. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name to label the element's content </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a24b5c07c52f3f26a4e68e6b929acffd5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_SIMPLE_CONTENT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(Returns proper.) \</div>
<div class="line">    const XMLCh* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">        return getTextContent(); \</div>
<div class="line">    } \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Sets or clears proper.) \</div>
<div class="line">    void set##proper(<span class="keyword">const</span> XMLCh* proper) { \</div>
<div class="line">        setTextContent(proper); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Declares aliased get/set methods for named XML element simple content. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name to label the element's content </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ada094b989c0377ce7754242f289aa00a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_STRING_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#a8a852eda578a2e4353e0d9cd6eb00fb6">DECL_XMLOBJECT_ATTRIB</a>(proper,upcased,XMLCh)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Declares abstract get/set methods for a string XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aada49116b3cf070b1da974460ffb0367"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_TYPE_QNAME</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Type QName) \</div>
<div class="line">        static <a class="code" href="a00069.html">xmltooling::QName</a> TYPE_QNAME</div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">xmltooling::QName</a></div><div class="ttdoc">A data structure for encapsulating XML QNames. </div><div class="ttdef"><b>Definition:</b> QName.h:44</div></div>
</div><!-- fragment -->
<p>Declares a static variable holding the XMLObject's schema type QName. </p>

</div>
</div>
<a class="anchor" id="a64ade6e613ec456f8192858e4a054bc7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_TYPED_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns the proper child.) \</div>
<div class="line">        virtual proper* <span class="keyword">get</span>##proper() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper child.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(proper* child)=0</div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a typed XML child object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1bc33d9bb5db0060bec2914227013e9d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_TYPED_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \</div>
<div class="line">        virtual <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(proper) get<span class="preprocessor">##proper##s()=0; \</span></div>
<div class="line"><span class="preprocessor">        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \</span></div>
<div class="line"><span class="preprocessor">        virtual const std::vector&lt;proper*&gt;&amp; get##proper##s() const=0</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a typed XML child collection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1491b72e444b5dcbeb3a47cdd43346fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_TYPED_FOREIGN_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns the proper child.) \</div>
<div class="line">        virtual ns::proper* <span class="keyword">get</span>##proper() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper child.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(ns::proper* child)=0</div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a typed XML child object in a foreign namespace. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8e7876d452bd68a05a2e09eaf897fdf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_TYPED_FOREIGN_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \</div>
<div class="line">        virtual <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(ns::proper) get<span class="preprocessor">##proper##s()=0; \</span></div>
<div class="line"><span class="preprocessor">        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \</span></div>
<div class="line"><span class="preprocessor">        virtual const std::vector&lt;ns::proper*&gt;&amp; get##proper##s() const=0</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a typed XML child collection in a foreign namespace. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abe45465a5461693561c98c3896c63736"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECT_ABSTRACT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMLTOOLING_DOXYGEN(desc) \</div>
<div class="line">    class linkage cname : <span class="keyword">public</span> <span class="keyword">virtual</span> base { \</div>
<div class="line">    protected: \</div>
<div class="line">        cname() {} \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname() {} \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Element local name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh LOCAL_NAME[]; \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Begins the declaration of an XMLObject specialization for an abstract element/type. </p>
<p>Basic boilerplate includes a protected constructor, empty virtual destructor, and Unicode constants for the default associated element's name and prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the class to declare </td></tr>
    <tr><td class="paramname">base</td><td>the base class to derive from using public virtual inheritance </td></tr>
    <tr><td class="paramname">desc</td><td>documentation comment for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8a852eda578a2e4353e0d9cd6eb00fb6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECT_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">upcased, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(proper attribute name) \</div>
<div class="line">        static <span class="keyword">const</span> XMLCh upcased##_ATTRIB_NAME[]; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns the proper attribute.) \</div>
<div class="line">        virtual <span class="keyword">const</span> type* <span class="keyword">get</span>##proper() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper attribute.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<span class="keyword">const</span> type* proper)=0</div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a typed XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">upcased</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">type</td><td>the attribute's data type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abcfb546606ea9e2244f58c8cb4fe7ecb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECT_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns the proper child.) \</div>
<div class="line">        virtual <a class="code" href="a00105.html">xmltooling::XMLObject</a>* <span class="keyword">get</span>##proper() <span class="keyword">const</span>=0; \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Sets the proper child.) \</div>
<div class="line">        virtual <span class="keywordtype">void</span> set##proper(<a class="code" href="a00105.html">xmltooling::XMLObject</a>* child)=0</div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a generic XML child object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a91bfe1ec80e82ff9cd0aa095d5e8d9e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECT_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div>
<div class="line">        XMLTOOLING_DOXYGEN(Returns modifiable proper collection.) \</div>
<div class="line">        virtual <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(<a class="code" href="a00105.html">xmltooling::XMLObject</a>) get<span class="preprocessor">##proper##s()=0; \</span></div>
<div class="line"><span class="preprocessor">        XMLTOOLING_DOXYGEN(Returns reference to immutable proper collection.) \</span></div>
<div class="line"><span class="preprocessor">        virtual const std::vector&lt;xmltooling::XMLObject*&gt;&amp; get##proper##s() const=0</span></div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Declares abstract get/set methods for a generic XML child collection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac1827324b04a51a4d32122b69c367681"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECT_SIMPLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">desc&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#a184a5983089798524bf62a6d2a6fc537">BEGIN_XMLOBJECT</a>(linkage,cname,<a class="code" href="a00105.html">xmltooling::XMLObject</a>,desc); <a class="code" href="a00122.html#a24b5c07c52f3f26a4e68e6b929acffd5">\</a></div>
<div class="line"><a class="code" href="a00122.html#a24b5c07c52f3f26a4e68e6b929acffd5">        DECL_SIMPLE_CONTENT</a>(proper); <a class="code" href="a00122.html#a4313e3a00a8566975f82b4b45093d7f5">\</a></div>
<div class="line"><a class="code" href="a00122.html#a4313e3a00a8566975f82b4b45093d7f5">    END_XMLOBJECT</a></div>
<div class="ttc" id="a00122_html_a24b5c07c52f3f26a4e68e6b929acffd5"><div class="ttname"><a href="a00122.html#a24b5c07c52f3f26a4e68e6b929acffd5">DECL_SIMPLE_CONTENT</a></div><div class="ttdeci">#define DECL_SIMPLE_CONTENT(proper)</div><div class="ttdoc">Declares aliased get/set methods for named XML element simple content. </div><div class="ttdef"><b>Definition:</b> base.h:1354</div></div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
<div class="ttc" id="a00122_html_a184a5983089798524bf62a6d2a6fc537"><div class="ttname"><a href="a00122.html#a184a5983089798524bf62a6d2a6fc537">BEGIN_XMLOBJECT</a></div><div class="ttdeci">#define BEGIN_XMLOBJECT(linkage, cname, base, desc)</div><div class="ttdoc">Begins the declaration of an XMLObject specialization. </div><div class="ttdef"><b>Definition:</b> base.h:378</div></div>
<div class="ttc" id="a00122_html_a4313e3a00a8566975f82b4b45093d7f5"><div class="ttname"><a href="a00122.html#a4313e3a00a8566975f82b4b45093d7f5">END_XMLOBJECT</a></div><div class="ttdeci">#define END_XMLOBJECT</div><div class="ttdoc">Ends the declaration of an XMLObject specialization. </div><div class="ttdef"><b>Definition:</b> base.h:491</div></div>
</div><!-- fragment -->
<p>Declares an XMLObject specialization with a simple content model and type, handling it as string data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper</td><td>the proper name to label the element's content </td></tr>
    <tr><td class="paramname">desc</td><td>documentation for class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a12f936645958cdc0a2acb699df7bfc1a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECTBUILDER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespacePrefix&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#a9a2c6c34144ccdb0af5ea1b71075b5ce">BEGIN_XMLOBJECTBUILDER</a>(linkage,cname,namespaceURI,namespacePrefix); \</div>
<div class="line">    XMLTOOLING_DOXYGEN(Singleton builder.) \</div>
<div class="line">    static cname* build##cname() { \</div>
<div class="line">        const cname##Builder* b = <span class="keyword">dynamic_cast&lt;</span><span class="keyword">const </span>cname##Builder*<span class="keyword">&gt;</span>( \</div>
<div class="line">            XMLObjectBuilder::getBuilder(<a class="code" href="a00069.html">xmltooling::QName</a>(namespaceURI,cname::LOCAL_NAME)) \</div>
<div class="line">            ); \</div>
<div class="line">        if (b) \</div>
<div class="line">            return b-&gt;buildObject(); \</div>
<div class="line">        throw <a class="code" href="a00109.html">xmltooling::XMLObjectException</a>(<span class="stringliteral">&quot;Unable to obtain typed builder for &quot;</span>#cname<span class="stringliteral">&quot;.&quot;</span>); \</div>
<div class="line">    } <a class="code" href="a00122.html#ad2d5217452adbfd0e0824c052eefb90e">\</a></div>
<div class="line"><a class="code" href="a00122.html#ad2d5217452adbfd0e0824c052eefb90e">    END_XMLOBJECTBUILDER</a></div>
<div class="ttc" id="a00122_html_a9a2c6c34144ccdb0af5ea1b71075b5ce"><div class="ttname"><a href="a00122.html#a9a2c6c34144ccdb0af5ea1b71075b5ce">BEGIN_XMLOBJECTBUILDER</a></div><div class="ttdeci">#define BEGIN_XMLOBJECTBUILDER(linkage, cname, namespaceURI, namespacePrefix)</div><div class="ttdoc">Begins the declaration of an XMLObjectBuilder specialization. </div><div class="ttdef"><b>Definition:</b> base.h:1684</div></div>
<div class="ttc" id="a00109_html"><div class="ttname"><a href="a00109.html">xmltooling::XMLObjectException</a></div><div class="ttdoc">Exceptions in basic object usage. </div><div class="ttdef"><b>Definition:</b> exceptions.h:357</div></div>
<div class="ttc" id="a00122_html_ad2d5217452adbfd0e0824c052eefb90e"><div class="ttname"><a href="a00122.html#ad2d5217452adbfd0e0824c052eefb90e">END_XMLOBJECTBUILDER</a></div><div class="ttdeci">#define END_XMLOBJECTBUILDER</div><div class="ttdoc">Ends the declaration of an XMLObjectBuilder specialization. </div><div class="ttdef"><b>Definition:</b> base.h:1701</div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">xmltooling::QName</a></div><div class="ttdoc">A data structure for encapsulating XML QNames. </div><div class="ttdef"><b>Definition:</b> QName.h:44</div></div>
</div><!-- fragment -->
<p>Declares a generic XMLObjectBuilder specialization. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the default associated element </td></tr>
    <tr><td class="paramname">namespacePrefix</td><td>the XML namespace prefix of the default associated element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2585755b0dbffc1f2ba80173685e5aa8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECL_XMLOBJECTIMPL_SIMPLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">class </span>linkage cname##Impl \</div>
<div class="line">        : <span class="keyword">public</span> <span class="keyword">virtual</span> cname, \</div>
<div class="line">            <span class="keyword">public</span> <a class="code" href="a00005.html">xmltooling::AbstractSimpleElement</a>, \</div>
<div class="line">            <span class="keyword">public</span> <a class="code" href="a00003.html">xmltooling::AbstractDOMCachingXMLObject</a>, \</div>
<div class="line">            <span class="keyword">public</span> <a class="code" href="a00007.html">xmltooling::AbstractXMLObjectMarshaller</a>, \</div>
<div class="line">            <span class="keyword">public</span> <a class="code" href="a00008.html">xmltooling::AbstractXMLObjectUnmarshaller</a> \</div>
<div class="line">    { \</div>
<div class="line">    public: \</div>
<div class="line">        virtual ~cname##Impl() {} \</div>
<div class="line">        cname##Impl(<span class="keyword">const</span> XMLCh* nsURI, <span class="keyword">const</span> XMLCh* localName, <span class="keyword">const</span> XMLCh* prefix, <span class="keyword">const</span> <a class="code" href="a00069.html">xmltooling::QName</a>* schemaType) \</div>
<div class="line">            : <a class="code" href="a00006.html">xmltooling::AbstractXMLObject</a>(nsURI, localName, prefix, schemaType) { \</div>
<div class="line">        } \</div>
<div class="line">        cname##Impl(<span class="keyword">const</span> cname##Impl&amp; src) \</div>
<div class="line">            : <a class="code" href="a00006.html">xmltooling::AbstractXMLObject</a>(src), \</div>
<div class="line">                xmltooling::AbstractSimpleElement(src), \</div>
<div class="line">                xmltooling::AbstractDOMCachingXMLObject(src) {} <a class="code" href="a00122.html#a646413a0147ae4b4a13593a26587976f">\</a></div>
<div class="line"><a class="code" href="a00122.html#a646413a0147ae4b4a13593a26587976f">        IMPL_XMLOBJECT_CLONE</a>(cname) \</div>
<div class="line">    }</div>
<div class="ttc" id="a00122_html_a646413a0147ae4b4a13593a26587976f"><div class="ttname"><a href="a00122.html#a646413a0147ae4b4a13593a26587976f">IMPL_XMLOBJECT_CLONE</a></div><div class="ttdeci">#define IMPL_XMLOBJECT_CLONE(cname)</div><div class="ttdoc">Implements cloning methods for an XMLObject specialization implementation class. </div><div class="ttdef"><b>Definition:</b> base.h:1394</div></div>
<div class="ttc" id="a00003_html"><div class="ttname"><a href="a00003.html">xmltooling::AbstractDOMCachingXMLObject</a></div><div class="ttdoc">AbstractXMLObject mixin that implements DOM caching. </div><div class="ttdef"><b>Definition:</b> AbstractDOMCachingXMLObject.h:43</div></div>
<div class="ttc" id="a00006_html"><div class="ttname"><a href="a00006.html">xmltooling::AbstractXMLObject</a></div><div class="ttdoc">An abstract implementation of XMLObject. </div><div class="ttdef"><b>Definition:</b> AbstractXMLObject.h:52</div></div>
<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">xmltooling::AbstractSimpleElement</a></div><div class="ttdoc">AbstractXMLObject mixin that implements a simple string-based content model. </div><div class="ttdef"><b>Definition:</b> AbstractSimpleElement.h:43</div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">xmltooling::QName</a></div><div class="ttdoc">A data structure for encapsulating XML QNames. </div><div class="ttdef"><b>Definition:</b> QName.h:44</div></div>
<div class="ttc" id="a00008_html"><div class="ttname"><a href="a00008.html">xmltooling::AbstractXMLObjectUnmarshaller</a></div><div class="ttdoc">A mix-in to implement object unmarshalling. </div><div class="ttdef"><b>Definition:</b> AbstractXMLObjectUnmarshaller.h:42</div></div>
<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">xmltooling::AbstractXMLObjectMarshaller</a></div><div class="ttdoc">A mix-in to implement object marshalling with DOM reuse. </div><div class="ttdef"><b>Definition:</b> AbstractXMLObjectMarshaller.h:42</div></div>
</div><!-- fragment -->
<p>Declares and defines an implementation class for an XMLObject with a simple content model and type, handling it as string data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acd52881c18ff46e18583777fd51650bc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_BOOLEAN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: <a class="code" href="a00203.html#aa6078fc438e1b22b707db1a66ebc2a89">\</a></div>
<div class="line"><a class="code" href="a00203.html#aa6078fc438e1b22b707db1a66ebc2a89">        xmlconstants::xmltooling_bool_t</a> m_##proper; \</div>
<div class="line">    public: <a class="code" href="a00203.html#aa6078fc438e1b22b707db1a66ebc2a89">\</a></div>
<div class="line"><a class="code" href="a00203.html#aa6078fc438e1b22b707db1a66ebc2a89">        xmlconstants::xmltooling_bool_t</a> <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        void proper(<a class="code" href="a00203.html#aa6078fc438e1b22b707db1a66ebc2a89">xmlconstants::xmltooling_bool_t</a> value) { \</div>
<div class="line">            if (m_##proper != value) { \</div>
<div class="line">                releaseThisandParentDOM(); \</div>
<div class="line">                m_##proper = value; \</div>
<div class="line">            } \</div>
<div class="line">        }</div>
<div class="ttc" id="a00203_html_aa6078fc438e1b22b707db1a66ebc2a89"><div class="ttname"><a href="a00203.html#aa6078fc438e1b22b707db1a66ebc2a89">xmlconstants::xmltooling_bool_t</a></div><div class="ttdeci">xmltooling_bool_t</div><div class="ttdoc">Enumerations of the different values of a boolean attribute or element. </div><div class="ttdef"><b>Definition:</b> XMLConstants.h:108</div></div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for a boolean XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab50268e8c9ec74e9c0e1549944f2b960"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td>&#160;&#160;&#160;set##proper(src.get##proper())</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements cloning of a child attribute, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the attribute to clone </p>

</div>
</div>
<a class="anchor" id="afbc5cb622b11a455b3ab0fa8dafe655c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_BOOLEAN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td>&#160;&#160;&#160;proper(src.m_##proper)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements cloning of a boolean child attribute, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the attribute to clone </p>

</div>
</div>
<a class="anchor" id="a9efb30d0e1e5eb78fa5681199c68faf5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_FOREIGN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">set##proper(src.get##proper()); \</div>
<div class="line">    if (src.m_##proper##Prefix) \</div>
<div class="line">        m_##proper##Prefix = xercesc::XMLString::replicate(src.m_##proper##Prefix)</div>
</div><!-- fragment -->
<p>Implements cloning of a child attribute in a foreign namespace, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the attribute to clone </p>

</div>
</div>
<a class="anchor" id="ac2ffa71b16f029610958cdc4054a02b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_INTEGER_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td>&#160;&#160;&#160;set##proper(src.m_##proper)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements cloning of an integer child attribute, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the attribute to clone </p>

</div>
</div>
<a class="anchor" id="aa7b38dba0df5fdfd1c18b9b3dcbdcbd9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_TYPED_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (src.get##proper()) \</div>
<div class="line">        set##proper(src.get##proper()-&gt;<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##proper())</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Implements cloning of a typed child object, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the child type to clone </p>

</div>
</div>
<a class="anchor" id="addf2f55e8ca7a78f2fa1bd9a5674727e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_TYPED_CHILD_IN_BAG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">proper* _##proper##cast = <span class="keyword">dynamic_cast&lt;</span>proper*<span class="keyword">&gt;</span>(*_bagit); \</div>
<div class="line">    if (_##proper##cast) { \</div>
<div class="line">        get##proper##s().push_back(_##proper##cast-&gt;clone##proper()); \</div>
<div class="line">        continue; \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements cloning of a typed child in a bag iteration loop based on a cast check. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type to clone </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad5878ff010e874ef89071b048bd5aa37"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_TYPED_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> void (<a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(proper)::* proper##_push_back)(proper* <span class="keyword">const</span>&amp;) = &amp;<a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(proper)::push_back; <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">\</a></div>
<div class="line"><a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">    VectorOf</a>(proper) c<span class="preprocessor">##proper = get##proper##s(); \</span></div>
<div class="line"><span class="preprocessor">    std::for_each( \</span></div>
<div class="line"><span class="preprocessor">        src.m_##proper##s.begin(), src.m_##proper##s.end(), \</span></div>
<div class="line"><span class="preprocessor">        boost::lambda::if_(boost::lambda::_1 != ((proper*)nullptr)) \</span></div>
<div class="line"><span class="preprocessor">            [boost::lambda::bind(proper##_push_back, boost::ref(c##proper), boost::lambda::bind(&amp;proper::clone##proper, boost::lambda::_1))] \</span></div>
<div class="line"><span class="preprocessor">        )</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Implements cloning of a child collection, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the child type to clone </p>

</div>
</div>
<a class="anchor" id="ae10a37b86b36b82d644a4b82fb03c816"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_TYPED_FOREIGN_CHILD_IN_BAG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">ns::proper* _##proper##cast = <span class="keyword">dynamic_cast&lt;</span>ns::proper*<span class="keyword">&gt;</span>(*_bagit); \</div>
<div class="line">    if (_##proper##cast) { \</div>
<div class="line">        get##proper##s().push_back(_##proper##cast-&gt;clone##proper()); \</div>
<div class="line">        continue; \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements cloning of a typed child in a forign namespace in a bag iteration loop based on a cast check. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type to clone </td></tr>
    <tr><td class="paramname">ns</td><td>the namespace of the child type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1248e2c6dd2f62e822a870d18e147b32"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_TYPED_FOREIGN_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> void (<a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(ns::proper)::* proper##_push_back)(ns::proper* <span class="keyword">const</span>&amp;) = &amp;<a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(ns::proper)::push_back; <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">\</a></div>
<div class="line"><a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">    VectorOf</a>(ns::proper) c<span class="preprocessor">##proper = get##proper##s(); \</span></div>
<div class="line"><span class="preprocessor">    std::for_each( \</span></div>
<div class="line"><span class="preprocessor">        src.m_##proper##s.begin(), src.m_##proper##s.end(), \</span></div>
<div class="line"><span class="preprocessor">        boost::lambda::if_(boost::lambda::_1 != ((ns::proper*)nullptr)) \</span></div>
<div class="line"><span class="preprocessor">            [boost::lambda::bind(proper##_push_back, boost::ref(c##proper), boost::lambda::bind(&amp;ns::proper::clone##proper, boost::lambda::_1))] \</span></div>
<div class="line"><span class="preprocessor">        )</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Implements cloning of a child collection in a foreign namespace, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the child type to clone ns the namespace of the child type </p>

</div>
</div>
<a class="anchor" id="af998b999332b6622be0874d34865f4c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_XMLOBJECT_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (src.get##proper()) \</div>
<div class="line">        set##proper(src.get##proper()-&gt;<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>())</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
</div><!-- fragment -->
<p>Implements cloning of a child object, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the child object to clone </p>

</div>
</div>
<a class="anchor" id="a94e350163100d4ec665f605ba272cd51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_XMLOBJECT_CHILD_IN_BAG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (*_bagit) { \</div>
<div class="line">        get##proper##s().push_back((*_bagit)-&gt;clone()); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements cloning of an XMLObject child in a bag iteration loop. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child to clone </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae7e7b2a07ea5ebfd52427068b0ea01e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_CLONE_XMLOBJECT_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> void (<a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(XMLObject)::* XMLObject_push_back)(XMLObject* <span class="keyword">const</span>&amp;) = &amp;<a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a>(XMLObject)::push_back; <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">\</a></div>
<div class="line"><a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">    VectorOf</a>(XMLObject) c<span class="preprocessor">##proper = get##proper##s(); \</span></div>
<div class="line"><span class="preprocessor">    std::for_each( \</span></div>
<div class="line"><span class="preprocessor">        src.m_##proper##s.begin(), src.m_##proper##s.end(), \</span></div>
<div class="line"><span class="preprocessor">        boost::lambda::if_(boost::lambda::_1 != ((XMLObject*)nullptr)) \</span></div>
<div class="line"><span class="preprocessor">            [boost::lambda::bind(XMLObject_push_back, boost::ref(c##proper), boost::lambda::bind(&amp;XMLObject::clone, boost::lambda::_1))] \</span></div>
<div class="line"><span class="preprocessor">        )</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Implements cloning of an untyped child collection, for use in copy constructor or deferred clone methods. </p>
<p>proper the proper name of the child type to clone </p>

</div>
</div>
<a class="anchor" id="aaba55b1d77ccca84affb21b263e37ae7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_DATETIME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fallback&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#a69008ae02c3a1a28b0b8596a694bd902">IMPL_DATETIME_ATTRIB_EX</a>(proper,fallback,false)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements get/set methods and a private member for a DateTime XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">fallback</td><td>epoch to return when attribute is NULL </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a69008ae02c3a1a28b0b8596a694bd902"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_DATETIME_ATTRIB_EX</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fallback, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">duration&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        DateTime* m_##proper; \</div>
<div class="line">        time_t m_##proper##Epoch; \</div>
<div class="line">    public: \</div>
<div class="line">        const DateTime* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        time_t <span class="keyword">get</span>##proper##Epoch()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper ? m_##proper##Epoch : fallback; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<span class="keyword">const</span> DateTime* proper) { \</div>
<div class="line">            m_##proper = prepareForAssignment(m_##proper,proper); \</div>
<div class="line">            if (m_##proper) \</div>
<div class="line">                m_##proper##Epoch=m_##proper-&gt;getEpoch(duration); \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(time_t proper) { \</div>
<div class="line">            m_##proper = prepareForAssignment(m_##proper,proper,duration); \</div>
<div class="line">            m_##proper##Epoch = proper; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<span class="keyword">const</span> XMLCh* proper) { \</div>
<div class="line">            m_##proper = prepareForAssignment(m_##proper,proper,duration); \</div>
<div class="line">            if (m_##proper) \</div>
<div class="line">                m_##proper##Epoch=m_##proper-&gt;getEpoch(duration); \</div>
<div class="line">        }</div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for a DateTime XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">fallback</td><td>epoch to return when attribute is NULL </td></tr>
    <tr><td class="paramname">duration</td><td>true iff the attribute should be handled as a duration </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aec4366e0a855bb0b63e490e92f47f502"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_DURATION_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fallback&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#a69008ae02c3a1a28b0b8596a694bd902">IMPL_DATETIME_ATTRIB_EX</a>(proper,fallback,true)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements get/set methods and a private member for a duration-valued DateTime XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">fallback</td><td>epoch to return when attribute is NULL </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aca72739c64e4ec3855702d0bed30bdb7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_ELEMENT_QNAME</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespacePrefix&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00069.html">xmltooling::QName</a> cname::ELEMENT_QNAME(namespaceURI,cname::LOCAL_NAME,namespacePrefix)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements a static variable holding an XMLObject's element QName. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the default associated element </td></tr>
    <tr><td class="paramname">namespacePrefix</td><td>the XML namespace prefix of the default associated element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adbcb3f847865bbb251ee4a5855a9923b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_ID_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a>(proper,XMLCh) \</div>
<div class="line">    const XMLCh* getXMLID()<span class="keyword"> const </span>{ \</div>
<div class="line">        return m_##proper; \</div>
<div class="line">    }</div>
<div class="ttc" id="a00122_html_a43d0e8a60abc310f962801d3812419bb"><div class="ttname"><a href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a></div><div class="ttdeci">#define IMPL_XMLOBJECT_ATTRIB(proper, type)</div><div class="ttdoc">Implements get/set methods and a private member for a typed XML attribute. </div><div class="ttdef"><b>Definition:</b> base.h:703</div></div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for a string XML attribute, plus a getXMLID override. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afeaaa47cffa81c9ec44337c7ac596c6c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_ID_ATTRIB_EX</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a>(proper,XMLCh) \</div>
<div class="line">    const XMLCh* getXMLID()<span class="keyword"> const </span>{ \</div>
<div class="line">        return m_##proper; \</div>
<div class="line">    } \</div>
<div class="line">    void releaseDOM()<span class="keyword"> const </span>{ \</div>
<div class="line">        if (getDOM()) \</div>
<div class="line">            getDOM()-&gt;removeAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \</div>
<div class="line">        AbstractDOMCachingXMLObject::releaseDOM(); \</div>
<div class="line">    }</div>
<div class="ttc" id="a00122_html_a43d0e8a60abc310f962801d3812419bb"><div class="ttname"><a href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a></div><div class="ttdeci">#define IMPL_XMLOBJECT_ATTRIB(proper, type)</div><div class="ttdoc">Implements get/set methods and a private member for a typed XML attribute. </div><div class="ttdef"><b>Definition:</b> base.h:703</div></div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for a string XML attribute, plus a getXMLID override and attribute node clearance when DOM is dropped. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3948f8afc7fded2e19906400579d7cae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_INTEGER_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        XMLCh* m_##proper; \</div>
<div class="line">    public: \</div>
<div class="line">        pair&lt;bool,int&gt; <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return make_pair((m_##proper!=<span class="keyword">nullptr</span>),(m_##proper!=<span class="keyword">nullptr</span> ? xercesc::XMLString::parseInt(m_##proper): 0)); \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<span class="keyword">const</span> XMLCh* proper) { \</div>
<div class="line">            m_##proper = prepareForAssignment(m_##proper,proper); \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<span class="keywordtype">int</span> proper) { \</div>
<div class="line">            try { \</div>
<div class="line">                std::string buf(boost::lexical_cast&lt;std::string&gt;(proper)); \</div>
<div class="line">                xmltooling::auto_ptr_XMLCh widen(buf.c_str()); \</div>
<div class="line">                set##proper(widen.get()); \</div>
<div class="line">            } \</div>
<div class="line">            catch (boost::bad_lexical_cast&amp;) { \</div>
<div class="line">            } \</div>
<div class="line">        }</div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for an integer XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a414618cb6b3d42c90617470bdc8b8556"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_STRING_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="a00122.html#a43d0e8a60abc310f962801d3812419bb">IMPL_XMLOBJECT_ATTRIB</a>(proper,XMLCh)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements get/set methods and a private member for a string XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a74c87def15e6bcbe18b1d9c39d1e8648"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_TYPE_QNAME</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespacePrefix&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00069.html">xmltooling::QName</a> cname::TYPE_QNAME(namespaceURI,cname::TYPE_NAME,namespacePrefix)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements a static variable holding an XMLObject's schema type QName. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the default associated element </td></tr>
    <tr><td class="paramname">namespacePrefix</td><td>the XML namespace prefix of the default associated element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a83bc3ea1dbd6cc8dba53b1f593db0bb8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_TYPED_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        proper* m_##proper; \</div>
<div class="line">        std::list&lt;xmltooling::XMLObject*&gt;::iterator m_pos_##proper; \</div>
<div class="line">    public: \</div>
<div class="line">        proper* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(proper* child) { \</div>
<div class="line">            prepareForAssignment(m_##proper,child); \</div>
<div class="line">            *m_pos_##proper = m_##proper = child; \</div>
<div class="line">        }</div>
</div><!-- fragment -->
<p>Implements get/set methods and a private list iterator member for a typed XML child object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa43fe44c1facac568f04ecbb79138b77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_TYPED_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fence&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        std::vector&lt;proper*&gt; m_##proper##s; \</div>
<div class="line">    public: <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">\</a></div>
<div class="line"><a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">        VectorOf</a>(proper) get<span class="preprocessor">##proper##s() { \</span></div>
<div class="line"><span class="preprocessor">            return VectorOf(proper)(this, m_##proper##s, &amp;m_children, fence); \</span></div>
<div class="line"><span class="preprocessor">        } \</span></div>
<div class="line"><span class="preprocessor">        const std::vector&lt;proper*&gt;&amp; get##proper##s() const { \</span></div>
<div class="line"><span class="preprocessor">            return m_##proper##s; \</span></div>
<div class="line"><span class="preprocessor">        }</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Implements get method and a private vector member for a typed XML child collection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">fence</td><td>insertion fence for new objects of the child collection in backing list </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a16e2c2d1ffdfe6775892b3272e0c8fb2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_TYPED_FOREIGN_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        ns::proper* m_##proper; \</div>
<div class="line">        std::list&lt;xmltooling::XMLObject*&gt;::iterator m_pos_##proper; \</div>
<div class="line">    public: \</div>
<div class="line">        ns::proper* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(ns::proper* child) { \</div>
<div class="line">            prepareForAssignment(m_##proper,child); \</div>
<div class="line">            *m_pos_##proper = m_##proper = child; \</div>
<div class="line">        }</div>
</div><!-- fragment -->
<p>Implements get/set methods and a private list iterator member for a typed XML child object in a foreign namespace. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3a73b148e38302849ca3d66214d6f870"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_TYPED_FOREIGN_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fence&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        std::vector&lt;ns::proper*&gt; m_##proper##s; \</div>
<div class="line">    public: <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">\</a></div>
<div class="line"><a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">        VectorOf</a>(ns::proper) get<span class="preprocessor">##proper##s() { \</span></div>
<div class="line"><span class="preprocessor">            return VectorOf(ns::proper)(this, m_##proper##s, &amp;m_children, fence); \</span></div>
<div class="line"><span class="preprocessor">        } \</span></div>
<div class="line"><span class="preprocessor">        const std::vector&lt;ns::proper*&gt;&amp; get##proper##s() const { \</span></div>
<div class="line"><span class="preprocessor">            return m_##proper##s; \</span></div>
<div class="line"><span class="preprocessor">        }</span></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Implements get method and a private vector member for a typed XML child collection in a foreign namespace. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
    <tr><td class="paramname">fence</td><td>insertion fence for new objects of the child collection in backing list </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a43d0e8a60abc310f962801d3812419bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        type* m_##proper; \</div>
<div class="line">    public: \</div>
<div class="line">        const type* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<span class="keyword">const</span> type* proper) { \</div>
<div class="line">            m_##proper = prepareForAssignment(m_##proper,proper); \</div>
<div class="line">        }</div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for a typed XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">type</td><td>the attribute's data type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0dd13bfdded46b546e321835c7420553"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        xmltooling::XMLObject* m_##proper; \</div>
<div class="line">        std::list&lt;xmltooling::XMLObject*&gt;::iterator m_pos_##proper; \</div>
<div class="line">    public: \</div>
<div class="line">        xmltooling::XMLObject* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<a class="code" href="a00105.html">xmltooling::XMLObject</a>* child) { \</div>
<div class="line">            prepareForAssignment(m_##proper,child); \</div>
<div class="line">            *m_pos_##proper = m_##proper = child; \</div>
<div class="line">        }</div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
</div><!-- fragment -->
<p>Implements get/set methods and a private list iterator member for a generic XML child object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7e5a003502495ce9965d82a24e7ffc12"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fence&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">        std::vector&lt;xmltooling::XMLObject*&gt; m_##proper##s; \</div>
<div class="line">    public: <a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">\</a></div>
<div class="line"><a class="code" href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">        VectorOf</a>(<a class="code" href="a00105.html">xmltooling::XMLObject</a>) get<span class="preprocessor">##proper##s() { \</span></div>
<div class="line"><span class="preprocessor">            return VectorOf(xmltooling::XMLObject)(this, m_##proper##s, &amp;m_children, fence); \</span></div>
<div class="line"><span class="preprocessor">        } \</span></div>
<div class="line"><span class="preprocessor">        const std::vector&lt;xmltooling::XMLObject*&gt;&amp; get##proper##s() const { \</span></div>
<div class="line"><span class="preprocessor">            return m_##proper##s; \</span></div>
<div class="line"><span class="preprocessor">        }</span></div>
<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">xmltooling::XMLObject</a></div><div class="ttdoc">Object that represents an XML Element that has been unmarshalled into this C++ object. </div><div class="ttdef"><b>Definition:</b> XMLObject.h:59</div></div>
<div class="ttc" id="a00194_html_ae4bd10b5bb01f5671a61bc50d5129c91"><div class="ttname"><a href="a00194.html#ae4bd10b5bb01f5671a61bc50d5129c91">VectorOf</a></div><div class="ttdeci">#define VectorOf(type)</div><div class="ttdoc">Shorthand for an XMLObjectChildrenList wrapped around a vector. </div><div class="ttdef"><b>Definition:</b> XMLObjectChildrenList.h:40</div></div>
</div><!-- fragment -->
<p>Implements get method and a private vector member for a generic XML child collection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child </td></tr>
    <tr><td class="paramname">fence</td><td>insertion fence for new objects of the child collection in backing list </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a646413a0147ae4b4a13593a26587976f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_CLONE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname()<span class="keyword"> const </span>{ \</div>
<div class="line">        return <span class="keyword">dynamic_cast&lt;</span>cname*<span class="keyword">&gt;</span>(<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()); \</div>
<div class="line">    } \</div>
<div class="line">    xmltooling::XMLObject* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()<span class="keyword"> const </span>{ \</div>
<div class="line">        std::auto_ptr&lt;xmltooling::XMLObject&gt; domClone(<a class="code" href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a>()); \</div>
<div class="line">        cname##Impl* ret=<span class="keyword">dynamic_cast&lt;</span>cname##Impl*<span class="keyword">&gt;</span>(domClone.get()); \</div>
<div class="line">        if (ret) { \</div>
<div class="line">            domClone.release(); \</div>
<div class="line">            return ret; \</div>
<div class="line">        } \</div>
<div class="line">        return <span class="keyword">new</span> cname##Impl(*<span class="keyword">this</span>); \</div>
<div class="line">    }</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
<div class="ttc" id="a00003_html_aeb30158b0bcfb169766ccb45606e5ae4"><div class="ttname"><a href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a></div><div class="ttdeci">XMLObject * clone() const </div><div class="ttdoc">Creates a copy of the object, along with all of its children. </div></div>
</div><!-- fragment -->
<p>Implements cloning methods for an XMLObject specialization implementation class. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9077cca84ee4a3f26c820943bbefb0ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_CLONE2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname()<span class="keyword"> const </span>{ \</div>
<div class="line">        return <span class="keyword">dynamic_cast&lt;</span>cname*<span class="keyword">&gt;</span>(<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()); \</div>
<div class="line">    } \</div>
<div class="line">    base* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##base()<span class="keyword"> const </span>{ \</div>
<div class="line">        return <span class="keyword">dynamic_cast&lt;</span>base*<span class="keyword">&gt;</span>(<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()); \</div>
<div class="line">    } \</div>
<div class="line">    xmltooling::XMLObject* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()<span class="keyword"> const </span>{ \</div>
<div class="line">        std::auto_ptr&lt;xmltooling::XMLObject&gt; domClone(<a class="code" href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a>()); \</div>
<div class="line">        cname##Impl* ret=<span class="keyword">dynamic_cast&lt;</span>cname##Impl*<span class="keyword">&gt;</span>(domClone.get()); \</div>
<div class="line">        if (ret) { \</div>
<div class="line">            domClone.release(); \</div>
<div class="line">            return ret; \</div>
<div class="line">        } \</div>
<div class="line">        return <span class="keyword">new</span> cname##Impl(*<span class="keyword">this</span>); \</div>
<div class="line">    }</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
<div class="ttc" id="a00003_html_aeb30158b0bcfb169766ccb45606e5ae4"><div class="ttname"><a href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a></div><div class="ttdeci">XMLObject * clone() const </div><div class="ttdoc">Creates a copy of the object, along with all of its children. </div></div>
</div><!-- fragment -->
<p>Implements cloning methods for an XMLObject specialization implementation class that must override a base class clone method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">base</td><td>name of base type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a19a49c37c2184a20da0db9754367c318"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_CLONE_EX</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname()<span class="keyword"> const </span>{ \</div>
<div class="line">        return <span class="keyword">dynamic_cast&lt;</span>cname*<span class="keyword">&gt;</span>(<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()); \</div>
<div class="line">    } \</div>
<div class="line">    xmltooling::XMLObject* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()<span class="keyword"> const </span>{ \</div>
<div class="line">        std::auto_ptr&lt;xmltooling::XMLObject&gt; domClone(<a class="code" href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a>()); \</div>
<div class="line">        cname##Impl* ret=<span class="keyword">dynamic_cast&lt;</span>cname##Impl*<span class="keyword">&gt;</span>(domClone.get()); \</div>
<div class="line">        if (ret) { \</div>
<div class="line">            domClone.release(); \</div>
<div class="line">            return ret; \</div>
<div class="line">        } \</div>
<div class="line">        std::auto_ptr&lt;cname##Impl&gt; ret2(<span class="keyword">new</span> cname##Impl(*<span class="keyword">this</span>)); \</div>
<div class="line">        ret2-&gt;_clone(*<span class="keyword">this</span>); \</div>
<div class="line">        return ret2.release(); \</div>
<div class="line">    }</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
<div class="ttc" id="a00003_html_aeb30158b0bcfb169766ccb45606e5ae4"><div class="ttname"><a href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a></div><div class="ttdeci">XMLObject * clone() const </div><div class="ttdoc">Creates a copy of the object, along with all of its children. </div></div>
</div><!-- fragment -->
<p>Implements cloning methods for an XMLObject specialization implementation class that needs two stage duplication to avoid invoking virtual methods during construction. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae7bc8331b45409286ab67b9517d2850f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_CLONE_EX2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">cname* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##cname()<span class="keyword"> const </span>{ \</div>
<div class="line">        return <span class="keyword">dynamic_cast&lt;</span>cname*<span class="keyword">&gt;</span>(<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()); \</div>
<div class="line">    } \</div>
<div class="line">    base* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>##base()<span class="keyword"> const </span>{ \</div>
<div class="line">        return <span class="keyword">dynamic_cast&lt;</span>base*<span class="keyword">&gt;</span>(<a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()); \</div>
<div class="line">    } \</div>
<div class="line">    xmltooling::XMLObject* <a class="code" href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">clone</a>()<span class="keyword"> const </span>{ \</div>
<div class="line">        std::auto_ptr&lt;xmltooling::XMLObject&gt; domClone(<a class="code" href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a>()); \</div>
<div class="line">        cname##Impl* ret=<span class="keyword">dynamic_cast&lt;</span>cname##Impl*<span class="keyword">&gt;</span>(domClone.get()); \</div>
<div class="line">        if (ret) { \</div>
<div class="line">            domClone.release(); \</div>
<div class="line">            return ret; \</div>
<div class="line">        } \</div>
<div class="line">        std::auto_ptr&lt;cname##Impl&gt; ret2(<span class="keyword">new</span> cname##Impl(*<span class="keyword">this</span>)); \</div>
<div class="line">        ret2-&gt;_clone(*<span class="keyword">this</span>); \</div>
<div class="line">        return ret2.release(); \</div>
<div class="line">    }</div>
<div class="ttc" id="a00206_html_a41ed66baaa8c7376486dcc407ca2e726"><div class="ttname"><a href="a00206.html#a41ed66baaa8c7376486dcc407ca2e726">xmltooling::clone</a></div><div class="ttdeci">void clone(const InputSequence &amp;in, OutputSequence &amp;out)</div><div class="ttdoc">Template function for cloning a sequence of XMLObjects. </div><div class="ttdef"><b>Definition:</b> base.h:1981</div></div>
<div class="ttc" id="a00003_html_aeb30158b0bcfb169766ccb45606e5ae4"><div class="ttname"><a href="a00003.html#aeb30158b0bcfb169766ccb45606e5ae4">xmltooling::AbstractDOMCachingXMLObject::clone</a></div><div class="ttdeci">XMLObject * clone() const </div><div class="ttdoc">Creates a copy of the object, along with all of its children. </div></div>
</div><!-- fragment -->
<p>Implements cloning methods for an XMLObject specialization implementation class that needs two stage duplication to avoid invoking virtual methods during construction, and must override a base class clone method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">base</td><td>name of base type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a00ccbbe285aac87f95f1a09535076b0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECT_FOREIGN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: \</div>
<div class="line">    XMLCh* m_##proper##Prefix; \</div>
<div class="line">        type* m_##proper; \</div>
<div class="line">    public: \</div>
<div class="line">        const type* <span class="keyword">get</span>##proper()<span class="keyword"> const </span>{ \</div>
<div class="line">            return m_##proper; \</div>
<div class="line">        } \</div>
<div class="line">        void set##proper(<span class="keyword">const</span> type* proper) { \</div>
<div class="line">            m_##proper = prepareForAssignment(m_##proper,proper); \</div>
<div class="line">            xercesc::XMLString::release(&amp;m_##proper##Prefix); \</div>
<div class="line">            m_##proper##Prefix = <span class="keyword">nullptr</span>; \</div>
<div class="line">        }</div>
</div><!-- fragment -->
<p>Implements get/set methods and a private member for a typed, qualified XML attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">type</td><td>the attribute's data type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a67912142e8cbeaea7f3f196966537f7d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPL_XMLOBJECTBUILDER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">cname* cname##Builder::buildObject( \</div>
<div class="line">        <span class="keyword">const</span> XMLCh* nsURI, <span class="keyword">const</span> XMLCh* localName, <span class="keyword">const</span> XMLCh* prefix, <span class="keyword">const</span> <a class="code" href="a00069.html">xmltooling::QName</a>* schemaType \</div>
<div class="line">        ) <span class="keyword">const</span> \</div>
<div class="line">    { \</div>
<div class="line">        return <span class="keyword">new</span> cname##Impl(nsURI,localName,prefix,schemaType); \</div>
<div class="line">    }</div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">xmltooling::QName</a></div><div class="ttdoc">A data structure for encapsulating XML QNames. </div><div class="ttdef"><b>Definition:</b> QName.h:44</div></div>
</div><!-- fragment -->
<p>Implements the standard XMLObjectBuilder specialization function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f9965a2cc4aaade15ecbfe63a71cf15"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAKE_NONCOPYABLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">private</span>: \</div>
<div class="line">        type(<span class="keyword">const</span> type&amp;); \</div>
<div class="line">        type&amp; operator=(<span class="keyword">const</span> type&amp;)</div>
</div><!-- fragment -->
<p>Blocks copy c'tor and assignment operator for a class. </p>

</div>
</div>
<a class="anchor" id="a3fe444abf00ad61871e8e9641e788c1a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MARSHALL_BOOLEAN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">switch</span> (m_##proper) { \</div>
<div class="line">        case xmlconstants::XML_BOOL_TRUE: \</div>
<div class="line">            domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, <a class="code" href="a00203.html#a14a083bb0017ff8a0b25fa9669045652">xmlconstants::XML_TRUE</a>); \</div>
<div class="line">            break; \</div>
<div class="line">        case xmlconstants::XML_BOOL_ONE: \</div>
<div class="line">            domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, <a class="code" href="a00203.html#ad7feed086c162b752f80044ed4f62c47">xmlconstants::XML_ONE</a>); \</div>
<div class="line">            break; \</div>
<div class="line">        case xmlconstants::XML_BOOL_FALSE: \</div>
<div class="line">            domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, <a class="code" href="a00203.html#a57bb42f08bd8561888f988ec14b342f7">xmlconstants::XML_FALSE</a>); \</div>
<div class="line">            break; \</div>
<div class="line">        case xmlconstants::XML_BOOL_ZERO: \</div>
<div class="line">            domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, <a class="code" href="a00203.html#ad3cb0cd3cc2891b35ebbc7e1c161b676">xmlconstants::XML_ZERO</a>); \</div>
<div class="line">            break; \</div>
<div class="line">        case xmlconstants::XML_BOOL_NULL: \</div>
<div class="line">            break; \</div>
<div class="line">    }</div>
<div class="ttc" id="a00203_html_a57bb42f08bd8561888f988ec14b342f7"><div class="ttname"><a href="a00203.html#a57bb42f08bd8561888f988ec14b342f7">xmlconstants::XML_FALSE</a></div><div class="ttdeci">const XMLCh XML_FALSE[]</div><div class="ttdoc">XML "false" boolean constant. </div></div>
<div class="ttc" id="a00203_html_ad7feed086c162b752f80044ed4f62c47"><div class="ttname"><a href="a00203.html#ad7feed086c162b752f80044ed4f62c47">xmlconstants::XML_ONE</a></div><div class="ttdeci">const XMLCh XML_ONE[]</div><div class="ttdoc">XML "1" boolean constant. </div></div>
<div class="ttc" id="a00203_html_ad3cb0cd3cc2891b35ebbc7e1c161b676"><div class="ttname"><a href="a00203.html#ad3cb0cd3cc2891b35ebbc7e1c161b676">xmlconstants::XML_ZERO</a></div><div class="ttdeci">const XMLCh XML_ZERO[]</div><div class="ttdoc">XML "0" boolean constant. </div></div>
<div class="ttc" id="a00203_html_a14a083bb0017ff8a0b25fa9669045652"><div class="ttname"><a href="a00203.html#a14a083bb0017ff8a0b25fa9669045652">xmlconstants::XML_TRUE</a></div><div class="ttdeci">const XMLCh XML_TRUE[]</div><div class="ttdoc">XML "true" boolean constant. </div></div>
</div><!-- fragment -->
<p>Implements marshalling for a boolean attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2a2fc60afc4da8cf114d8525c597c3f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MARSHALL_DATETIME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (m_##proper) { \</div>
<div class="line">        domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper-&gt;getRawData()); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements marshalling for a DateTime attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1c131345d81acf83ef144a9581f20867"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MARSHALL_ID_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (m_##proper &amp;&amp; *m_##proper) { \</div>
<div class="line">        domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \</div>
<div class="line">        domElement-&gt;setIdAttributeNS(namespaceURI, ucase##_ATTRIB_NAME); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements marshalling for an ID attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acdce840171deeae41abc626ffc627c91"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MARSHALL_INTEGER_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (m_##proper &amp;&amp; *m_##proper) { \</div>
<div class="line">        domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements marshalling for an integer attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a95f632e27d997a9caa47c9981f9254e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MARSHALL_QNAME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (m_##proper) { \</div>
<div class="line">        xmltooling::auto_ptr_XMLCh qstr(m_##proper-&gt;toString().c_str()); \</div>
<div class="line">        domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, qstr.get()); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements marshalling for a QName attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a19866d0b6f837d137b7ef8db83139777"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MARSHALL_STRING_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (m_##proper &amp;&amp; *m_##proper) { \</div>
<div class="line">        domElement-&gt;setAttributeNS(namespaceURI, ucase##_ATTRIB_NAME, m_##proper); \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p>Implements marshalling for a string attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aacbb9c0bed16649ef5bd710e781b43d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_BOOLEAN_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper,ucase,namespaceURI)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements unmarshalling process branch for a boolean attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afb40bd3c9cb40e983d8feead349e2292"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_DATETIME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper,ucase,namespaceURI)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements unmarshalling process branch for a DateTime attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8b16045dccbd56ce5ab975bd27ef4e65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_ID_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \</div>
<div class="line">        set##proper(attribute-&gt;getValue()); \</div>
<div class="line">        attribute-&gt;getOwnerElement()-&gt;setIdAttributeNode(attribute); \</div>
<div class="line">        return; \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for an ID attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a318adf1829fb4ac0b6e9aa21e6eb912c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_INTEGER_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00122.html#a20d6b6a82ba9818665005106ef20e0e2">PROC_STRING_ATTRIB</a>(proper,ucase,namespaceURI)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements unmarshalling process branch for an integer attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5e47c4747c97019286ea295940c660c6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_QNAME_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \</div>
<div class="line">        std::auto_ptr&lt;xmltooling::QName&gt; q(<a class="code" href="a00104.html#a111bfeb2a577820acd317035a8fe493e">xmltooling::XMLHelper::getAttributeValueAsQName</a>(attribute)); \</div>
<div class="line">        set##proper(q.get()); \</div>
<div class="line">        return; \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_a111bfeb2a577820acd317035a8fe493e"><div class="ttname"><a href="a00104.html#a111bfeb2a577820acd317035a8fe493e">xmltooling::XMLHelper::getAttributeValueAsQName</a></div><div class="ttdeci">static QName * getAttributeValueAsQName(const xercesc::DOMAttr *attribute)</div></div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for a DateTime attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a20d6b6a82ba9818665005106ef20e0e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_STRING_ATTRIB</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ucase, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(attribute, namespaceURI, ucase##_ATTRIB_NAME)) { \</div>
<div class="line">        set##proper(attribute-&gt;getValue()); \</div>
<div class="line">        return; \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for a string attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the attribute </td></tr>
    <tr><td class="paramname">ucase</td><td>the upcased name of the attribute </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the attribute </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3c27d2f760c0c1ad35e9f97374c2d5a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_TYPED_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">force&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (force || <a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(root,namespaceURI,proper::LOCAL_NAME)) { \</div>
<div class="line">        proper* typesafe=<span class="keyword">dynamic_cast&lt;</span>proper*<span class="keyword">&gt;</span>(childXMLObject); \</div>
<div class="line">        if (typesafe &amp;&amp; !m_##proper) { \</div>
<div class="line">            typesafe-&gt;setParent(<span class="keyword">this</span>); \</div>
<div class="line">            *m_pos_##proper = m_##proper = typesafe; \</div>
<div class="line">            return; \</div>
<div class="line">        } \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for typed child singleton element. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the child element </td></tr>
    <tr><td class="paramname">force</td><td>bypass use of hint and just cast down to check child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aef425205181e7155947b76ef47b979df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_TYPED_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">force&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (force || <a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(root,namespaceURI,proper::LOCAL_NAME)) { \</div>
<div class="line">        proper* typesafe=<span class="keyword">dynamic_cast&lt;</span>proper*<span class="keyword">&gt;</span>(childXMLObject); \</div>
<div class="line">        if (typesafe) { \</div>
<div class="line">            get##proper##s().push_back(typesafe); \</div>
<div class="line">            return; \</div>
<div class="line">        } \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for typed child collection element. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the child element </td></tr>
    <tr><td class="paramname">force</td><td>bypass use of hint and just cast down to check child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a306cca912c5a8e8a1759c2182ad4a383"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_TYPED_FOREIGN_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">force&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (force || <a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(root,namespaceURI,ns::proper::LOCAL_NAME)) { \</div>
<div class="line">        ns::proper* typesafe=<span class="keyword">dynamic_cast&lt;</span>ns::proper*<span class="keyword">&gt;</span>(childXMLObject); \</div>
<div class="line">        if (typesafe &amp;&amp; !m_##proper) { \</div>
<div class="line">            typesafe-&gt;setParent(<span class="keyword">this</span>); \</div>
<div class="line">            *m_pos_##proper = m_##proper = typesafe; \</div>
<div class="line">            return; \</div>
<div class="line">        } \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for typed child singleton element in a foreign namespace. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the child element </td></tr>
    <tr><td class="paramname">force</td><td>bypass use of hint and just cast down to check child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1977f769f16a984f8685575a808bcd50"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_TYPED_FOREIGN_CHILDREN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ns, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">force&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (force || <a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(root,namespaceURI,ns::proper::LOCAL_NAME)) { \</div>
<div class="line">        ns::proper* typesafe=<span class="keyword">dynamic_cast&lt;</span>ns::proper*<span class="keyword">&gt;</span>(childXMLObject); \</div>
<div class="line">        if (typesafe) { \</div>
<div class="line">            get##proper##s().push_back(typesafe); \</div>
<div class="line">            return; \</div>
<div class="line">        } \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for typed child collection element in a foreign namespace. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">ns</td><td>the C++ namespace for the type </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the child element </td></tr>
    <tr><td class="paramname">force</td><td>bypass use of hint and just cast down to check child </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad3dfbbb4acf10b6623325a75fe08deb8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROC_XMLOBJECT_CHILD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">namespaceURI&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a>(root,namespaceURI,proper::LOCAL_NAME)) { \</div>
<div class="line">        if (!m_##proper) { \</div>
<div class="line">            childXMLObject-&gt;setParent(<span class="keyword">this</span>); \</div>
<div class="line">            *m_pos_##proper = m_##proper = childXMLObject; \</div>
<div class="line">            return; \</div>
<div class="line">        } \</div>
<div class="line">    }</div>
<div class="ttc" id="a00104_html_af3326d31f6f836b03984d09b5245e3ec"><div class="ttname"><a href="a00104.html#af3326d31f6f836b03984d09b5245e3ec">xmltooling::XMLHelper::isNodeNamed</a></div><div class="ttdeci">static bool isNodeNamed(const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)</div><div class="ttdoc">Checks the qualified name of a node. </div></div>
</div><!-- fragment -->
<p>Implements unmarshalling process branch for a generic child singleton element. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">proper</td><td>the proper name of the child type </td></tr>
    <tr><td class="paramname">namespaceURI</td><td>the XML namespace of the child element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1aa24bc623206d31d8f17e523dfc2fe5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_CHECKTYPE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">const</span> cname* ptr=<span class="keyword">dynamic_cast&lt;</span><span class="keyword">const </span>cname*<span class="keyword">&gt;</span>(xmlObject); \</div>
<div class="line">    if (!ptr) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot;SchemaValidator: unsupported object type ($1).&quot;</span>,<a class="code" href="a00061.html">xmltooling::params</a>(1,<span class="keyword">typeid</span>(xmlObject).name()))</div>
<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">xmltooling::params</a></div><div class="ttdoc">Wrapper around a variable number of arguments. </div><div class="ttdef"><b>Definition:</b> exceptions.h:93</div></div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks the object type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0c37ef0ef673c9d8c83384523e01f4d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_NONEMPTY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (ptr-&gt;get##proper##s().empty()) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have at least one &quot;</span>#proper<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for a non-empty collection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper</td><td>the proper name of the collection item </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6900cb8ff5aa20a8a54c02121883f8c0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_NONEORBOTH</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> ((ptr-&gt;get##proper1() &amp;&amp; !ptr-&gt;get##proper2()) || (!ptr-&gt;get##proper1() &amp;&amp; ptr-&gt;get##proper2())) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; cannot have &quot;</span>#proper1<span class="stringliteral">&quot; without &quot;</span>#proper2<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks a co-constraint (if one present, the other must be) between a pair of attributes, content, or singletons. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper1</td><td>the proper name of the first attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper2</td><td>the proper name of the second attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1aac86283c8c06020782fa713934f470"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_ONEOF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!ptr-&gt;get##proper1() &amp;&amp; !ptr-&gt;get##proper2()) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have &quot;</span>#proper1<span class="stringliteral">&quot; or &quot;</span>#proper2<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for one of a pair of required attributes, content, or singletons. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper1</td><td>the proper name of the first attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper2</td><td>the proper name of the second attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae34dc7ced99bec3028fa97faaae53bba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_ONEOF3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper3&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!ptr-&gt;get##proper1() &amp;&amp; !ptr-&gt;get##proper2() &amp;&amp; !ptr-&gt;get##proper3()) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have &quot;</span>#proper1<span class="stringliteral">&quot;, &quot;</span>#proper2<span class="stringliteral">&quot;, or &quot;</span>#proper3<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for one of a set of three required attributes, content, or singletons. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper1</td><td>the proper name of the first attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper2</td><td>the proper name of the second attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper3</td><td>the proper name of the third attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad7db9e7f7e16ef10f28f6b1b1366fc5c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_ONLYONEOF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper2&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> ((!ptr-&gt;get##proper1() &amp;&amp; !ptr-&gt;get##proper2()) || (ptr-&gt;get##proper1() &amp;&amp; ptr-&gt;get##proper2())) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have &quot;</span>#proper1<span class="stringliteral">&quot; or &quot;</span>#proper2<span class="stringliteral">&quot; but not both.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for one of a pair of required attributes, content, or singletons, but disallows both. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper1</td><td>the proper name of the first attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper2</td><td>the proper name of the second attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4e79363a3a4541e5c11b37a7f0ddae15"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_ONLYONEOF3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper3&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">int</span> c##proper1##proper2##proper3=0; \</div>
<div class="line">    if (ptr-&gt;get##proper1()!=<span class="keyword">nullptr</span>) \</div>
<div class="line">        c##proper1##proper2##proper3++; \</div>
<div class="line">    if (ptr-&gt;get##proper2()!=<span class="keyword">nullptr</span>) \</div>
<div class="line">        c##proper1##proper2##proper3++; \</div>
<div class="line">    if (ptr-&gt;get##proper3()!=<span class="keyword">nullptr</span>) \</div>
<div class="line">        c##proper1##proper2##proper3++; \</div>
<div class="line">    if (c##proper1##proper2##proper3 != 1) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have only one of &quot;</span>#proper1<span class="stringliteral">&quot;, &quot;</span>#proper2<span class="stringliteral">&quot;, or &quot;</span>#proper3<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for one of a set of three required attributes, content, or singletons but disallows more than one. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper1</td><td>the proper name of the first attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper2</td><td>the proper name of the second attribute, content, or singleton member </td></tr>
    <tr><td class="paramname">proper3</td><td>the proper name of the third attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac0cb87550435528cc2534173e424bf4e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_REQUIRE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!ptr-&gt;get##proper()) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have &quot;</span>#proper<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for a required attribute, content, or singleton. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper</td><td>the proper name of the attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a520648f625da2cb5221b33485d6b2b8e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_REQUIRE_INTEGER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">proper&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!ptr-&gt;get##proper().first) \</div>
<div class="line">        throw <a class="code" href="a00098.html">xmltooling::ValidationException</a>(#cname<span class="stringliteral">&quot; must have &quot;</span>#proper<span class="stringliteral">&quot;.&quot;</span>)</div>
<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">xmltooling::ValidationException</a></div><div class="ttdoc">Exceptions during object validation. </div><div class="ttdef"><b>Definition:</b> exceptions.h:363</div></div>
</div><!-- fragment -->
<p>Validator code that checks for a required integer attribute. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
    <tr><td class="paramname">proper</td><td>the proper name of the attribute, content, or singleton member </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1823e45bc999537de56e085a912150d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMLOBJECTVALIDATOR_SIMPLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">linkage, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cname&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="a00122.html#aa1ab408b1e00d118d2451b55c0abb809">BEGIN_XMLOBJECTVALIDATOR</a>(linkage,cname); <a class="code" href="a00122.html#ac0cb87550435528cc2534173e424bf4e">\</a></div>
<div class="line"><a class="code" href="a00122.html#ac0cb87550435528cc2534173e424bf4e">        XMLOBJECTVALIDATOR_REQUIRE</a>(cname,TextContent); <a class="code" href="a00122.html#a9070c2ed149483371c4f3ddc8d6b0bd9">\</a></div>
<div class="line"><a class="code" href="a00122.html#a9070c2ed149483371c4f3ddc8d6b0bd9">    END_XMLOBJECTVALIDATOR</a></div>
<div class="ttc" id="a00122_html_a9070c2ed149483371c4f3ddc8d6b0bd9"><div class="ttname"><a href="a00122.html#a9070c2ed149483371c4f3ddc8d6b0bd9">END_XMLOBJECTVALIDATOR</a></div><div class="ttdeci">#define END_XMLOBJECTVALIDATOR</div><div class="ttdoc">Ends the declaration of a Validator specialization. </div><div class="ttdef"><b>Definition:</b> base.h:1842</div></div>
<div class="ttc" id="a00122_html_aa1ab408b1e00d118d2451b55c0abb809"><div class="ttname"><a href="a00122.html#aa1ab408b1e00d118d2451b55c0abb809">BEGIN_XMLOBJECTVALIDATOR</a></div><div class="ttdeci">#define BEGIN_XMLOBJECTVALIDATOR(linkage, cname)</div><div class="ttdoc">Begins the declaration of a Schema Validator specialization. </div><div class="ttdef"><b>Definition:</b> base.h:1810</div></div>
<div class="ttc" id="a00122_html_ac0cb87550435528cc2534173e424bf4e"><div class="ttname"><a href="a00122.html#ac0cb87550435528cc2534173e424bf4e">XMLOBJECTVALIDATOR_REQUIRE</a></div><div class="ttdeci">#define XMLOBJECTVALIDATOR_REQUIRE(cname, proper)</div><div class="ttdoc">Validator code that checks for a required attribute, content, or singleton. </div><div class="ttdef"><b>Definition:</b> base.h:1860</div></div>
</div><!-- fragment -->
<p>Declares/defines a Validator specialization that checks object type and a non-empty simple content model. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">linkage</td><td>linkage specifier for the class </td></tr>
    <tr><td class="paramname">cname</td><td>the name of the XMLObject specialization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_472d3fff574b2339f04f728923446b42.html">xmltooling</a></li><li class="navelem"><a class="el" href="a00122.html">base.h</a></li>
    <li class="footer">Generated on Fri Oct 17 2014 12:44:58 for xmltooling by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.8 </li>
  </ul>
</div>
</body>
</html>