PageRenderTime 44ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/include/xercesc2.5/validators/schema/XUtil.hpp

https://github.com/rauls/newscaster
C++ Header | 134 lines | 28 code | 14 blank | 92 comment | 0 complexity | d4e22c1a570d6f34ffae3f61757360cb MD5 | raw file
  1. /*
  2. * The Apache Software License, Version 1.1
  3. *
  4. * Copyright (c) 2001 The Apache Software Foundation. All rights
  5. * reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. *
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. *
  14. * 2. Redistributions in binary form must reproduce the above copyright
  15. * notice, this list of conditions and the following disclaimer in
  16. * the documentation and/or other materials provided with the
  17. * distribution.
  18. *
  19. * 3. The end-user documentation included with the redistribution,
  20. * if any, must include the following acknowledgment:
  21. * "This product includes software developed by the
  22. * Apache Software Foundation (http://www.apache.org/)."
  23. * Alternately, this acknowledgment may appear in the software itself,
  24. * if and wherever such third-party acknowledgments normally appear.
  25. *
  26. * 4. The names "Xerces" and "Apache Software Foundation" must
  27. * not be used to endorse or promote products derived from this
  28. * software without prior written permission. For written
  29. * permission, please contact apache\@apache.org.
  30. *
  31. * 5. Products derived from this software may not be called "Apache",
  32. * nor may "Apache" appear in their name, without prior written
  33. * permission of the Apache Software Foundation.
  34. *
  35. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38. * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39. * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42. * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46. * SUCH DAMAGE.
  47. * ====================================================================
  48. *
  49. * This software consists of voluntary contributions made by many
  50. * individuals on behalf of the Apache Software Foundation, and was
  51. * originally based on software copyright (c) 2001, International
  52. * Business Machines, Inc., http://www.ibm.com . For more information
  53. * on the Apache Software Foundation, please see
  54. * <http://www.apache.org/>.
  55. */
  56. /*
  57. * $Log: XUtil.hpp,v $
  58. * Revision 1.5 2004/01/29 11:52:31 cargilld
  59. * Code cleanup changes to get rid of various compiler diagnostic messages.
  60. *
  61. * Revision 1.4 2002/11/04 14:49:42 tng
  62. * C++ Namespace Support.
  63. *
  64. * Revision 1.3 2002/05/21 19:31:45 tng
  65. * DOM Reorganization: modify to use the new DOM interface and remove obsolete code in XUtil.
  66. *
  67. * Revision 1.2 2002/02/06 22:21:49 knoaman
  68. * Use IDOM for schema processing.
  69. *
  70. * Revision 1.1.1.1 2002/02/01 22:22:50 peiyongz
  71. * sane_include
  72. *
  73. * Revision 1.3 2001/11/02 14:13:45 knoaman
  74. * Add support for identity constraints.
  75. *
  76. * Revision 1.2 2001/05/11 13:27:39 tng
  77. * Copyright update.
  78. *
  79. * Revision 1.1 2001/03/30 16:06:00 tng
  80. * Schema: XUtil, added by Pei Yong Zhang
  81. *
  82. */
  83. #if !defined(XUTIL_HPP)
  84. #define XUTIL_HPP
  85. #include <xercesc/dom/DOMElement.hpp>
  86. #include <xercesc/dom/DOMDocument.hpp>
  87. #include <xercesc/dom/DOMNamedNodeMap.hpp>
  88. #include <xercesc/dom/DOMNode.hpp>
  89. XERCES_CPP_NAMESPACE_BEGIN
  90. class DOMNode;
  91. class DOMElement;
  92. /**
  93. * Some useful utility methods.
  94. */
  95. class VALIDATORS_EXPORT XUtil
  96. {
  97. public:
  98. // Finds and returns the first child element node.
  99. static DOMElement* getFirstChildElement(const DOMNode* const parent);
  100. // Finds and returns the first child node with the given qualifiedname.
  101. static DOMElement* getFirstChildElementNS(const DOMNode* const parent
  102. , const XMLCh** const elemNames
  103. , const XMLCh* const uriStr
  104. , unsigned int length);
  105. // Finds and returns the next sibling element node.
  106. static DOMElement* getNextSiblingElement(const DOMNode* const node);
  107. static DOMElement* getNextSiblingElementNS(const DOMNode* const node
  108. , const XMLCh** const elemNames
  109. , const XMLCh* const uriStr
  110. , unsigned int length);
  111. private:
  112. // -----------------------------------------------------------------------
  113. // Constructors and Destructor
  114. // -----------------------------------------------------------------------
  115. // This class cannot be instantiated.
  116. XUtil() {};
  117. ~XUtil() {};
  118. };
  119. XERCES_CPP_NAMESPACE_END
  120. #endif