/* * The Apache Software License, Version 1.1 * * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xerces" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache\@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation, and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com . For more information * on the Apache Software Foundation, please see * . */ /* * $Log: XObjectComparator.hpp,v $ * Revision 1.2 2003/10/31 22:15:42 peiyongz * dumpContent * * Revision 1.1 2003/10/29 16:14:15 peiyongz * XObjectComparator/XTemplateComparator * * $Id: XObjectComparator.hpp,v 1.2 2003/10/31 22:15:42 peiyongz Exp $ * */ #if !defined(XOBJECT_COMPARATOR_HPP) #define XOBJECT_COMPARATOR_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class XMLUTIL_EXPORT XObjectComparator { public: /********************************************************** * * XMLGrammarPoolImpl * * Grammar * * SchemaGrammar * DTDGrammar * ***********************************************************/ static void dumpContent ( XMLGrammarPoolImpl* const ); static bool isEquivalent ( XMLGrammarPoolImpl* const , XMLGrammarPoolImpl* const ); static bool isEquivalent ( Grammar* const , Grammar* const ); static bool isBaseEquivalent ( Grammar* const , Grammar* const ); static bool isEquivalent ( SchemaGrammar* const , SchemaGrammar* const ); /********************************************************** * * XMLGrammarDescription * * XMLSchemaDescription * XMLDTDDescription * ***********************************************************/ static bool isEquivalent ( XMLSchemaDescription* const , XMLSchemaDescription* const ); static bool isEquivalent ( XMLDTDDescription* const , XMLDTDDescription* const ); /********************************************************** * * XMLElementDecl * SchemaElementDecl * DTDElementDecl * ***********************************************************/ static bool isBaseEquivalent ( XMLElementDecl* const , XMLElementDecl* const ); static bool isEquivalent ( SchemaElementDecl* const , SchemaElementDecl* const ); static bool isEquivalent ( DTDElementDecl* const , DTDElementDecl* const ); /********************************************************** * XMLAttDef * SchemaAttDef * DTDAttDef * ***********************************************************/ static bool isBaseEquivalent ( XMLAttDef* const , XMLAttDef* const ); static bool isEquivalent ( SchemaAttDef* const , SchemaAttDef* const ); static bool isEquivalent ( DTDAttDef* const , DTDAttDef* const ); /********************************************************** * XMLAttDefList * SchemaAttDefList * DTDAttDefList * ***********************************************************/ static bool isBaseEquivalent ( XMLAttDefList* const , XMLAttDefList* const ); static bool isEquivalent ( SchemaAttDefList* const , SchemaAttDefList* const ); static bool isEquivalent ( DTDAttDefList* const , DTDAttDefList* const ); /********************************************************** * XMLEntityDecl * DTDEntityDecl * ***********************************************************/ static bool isBaseEquivalent ( XMLEntityDecl* const , XMLEntityDecl* const ); static bool isEquivalent ( DTDEntityDecl* const , DTDEntityDecl* const ); /********************************************************** * XMLNotationDecl * * DTDEntityDecl * * ComplexTypeInfo * XercesGroupInfo * XercesAttGroupInfo ***********************************************************/ static bool isEquivalent ( XMLNotationDecl* const , XMLNotationDecl* const ); static bool isEquivalent ( ComplexTypeInfo* const , ComplexTypeInfo* const ); static bool isEquivalent ( XercesGroupInfo* const , XercesGroupInfo* const ); static bool isEquivalent ( XercesAttGroupInfo* const , XercesAttGroupInfo* const ); /********************************************************** * * DatatypeValidator * * * DatatypeValidatorFactory * ***********************************************************/ static bool isEquivalent ( DatatypeValidator* const , DatatypeValidator* const ); static bool isBaseEquivalent ( DatatypeValidator* const , DatatypeValidator* const ); static bool isEquivalent ( DatatypeValidatorFactory* const , DatatypeValidatorFactory* const ); /********************************************************** * * ContentSpecNode * QName * KVStringPair * XMLRefInfo * XMLStringPool * ***********************************************************/ static bool isEquivalent ( ContentSpecNode* const , ContentSpecNode* const ); static bool isEquivalent ( QName* const , QName* const ); static bool isEquivalent ( KVStringPair* const , KVStringPair* const ); static bool isEquivalent ( XMLRefInfo* const , XMLRefInfo* const ); static bool isEquivalent ( XMLStringPool* const , XMLStringPool* const ); /********************************************************** * * XercesNodeTest * XercesStep * XercesLocationPath * XercesXPath * ***********************************************************/ static bool isEquivalent ( XercesNodeTest* const , XercesNodeTest* const ); static bool isEquivalent ( XercesStep* const , XercesStep* const ); static bool isEquivalent ( XercesLocationPath* const , XercesLocationPath* const ); static bool isEquivalent ( XercesXPath* const , XercesXPath* const ); /********************************************************** * * IC_Field * IC_Selector * * IdentityConstraint * IC_Key * IC_KeyRef * IC_Unique * ***********************************************************/ static bool isEquivalent ( IC_Field* const , IC_Field* const ); static bool isEquivalent ( IC_Selector* const , IC_Selector* const ); static bool isEquivalent ( IdentityConstraint* const , IdentityConstraint* const ); static bool isBaseEquivalent ( IdentityConstraint* const , IdentityConstraint* const ); static bool isEquivalent ( IC_Key* const , IC_Key* const ); static bool isEquivalent ( IC_KeyRef* const , IC_KeyRef* const ); static bool isEquivalent ( IC_Unique* const , IC_Unique* const ); /********************************************************** * XMLNumber * XMLDouble * XMLFloat * XMLBigDecimal * XMLDateTime * ***********************************************************/ static bool isEquivalent ( XMLNumber* const , XMLNumber* const ); private: // ----------------------------------------------------------------------- // Unimplemented constructors and operators // ----------------------------------------------------------------------- ~XObjectComparator(); XObjectComparator(); XObjectComparator(const XObjectComparator&); XObjectComparator& operator=(const XObjectComparator&); }; XERCES_CPP_NAMESPACE_END #endif