xtemplatecomparator.cpp
来自「IBM的解析xml的工具Xerces的源代码」· C++ 代码 · 共 958 行 · 第 1/2 页
CPP
958 行
XMLCh* key = (XMLCh*) lEnum.nextElementKey(); DTDAttDef* data1 = (DTDAttDef*) lValue->get(key); DTDAttDef* data2 = (DTDAttDef*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHashTableOf<ComplexTypeInfo>* const lValue , RefHashTableOf<ComplexTypeInfo>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHashTableOfEnumerator<ComplexTypeInfo> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHashTableOfEnumerator<ComplexTypeInfo> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key = (XMLCh*) lEnum.nextElementKey(); ComplexTypeInfo* data1 = (ComplexTypeInfo*) lValue->get(key); ComplexTypeInfo* data2 = (ComplexTypeInfo*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHashTableOf<XercesGroupInfo>* const lValue , RefHashTableOf<XercesGroupInfo>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHashTableOfEnumerator<XercesGroupInfo> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHashTableOfEnumerator<XercesGroupInfo> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key = (XMLCh*) lEnum.nextElementKey(); XercesGroupInfo* data1 = (XercesGroupInfo*) lValue->get(key); XercesGroupInfo* data2 = (XercesGroupInfo*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHashTableOf<XercesAttGroupInfo>* const lValue , RefHashTableOf<XercesAttGroupInfo>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHashTableOfEnumerator<XercesAttGroupInfo> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHashTableOfEnumerator<XercesAttGroupInfo> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key = (XMLCh*) lEnum.nextElementKey(); XercesAttGroupInfo* data1 = (XercesAttGroupInfo*) lValue->get(key); XercesAttGroupInfo* data2 = (XercesAttGroupInfo*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHashTableOf<XMLRefInfo>* const lValue , RefHashTableOf<XMLRefInfo>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHashTableOfEnumerator<XMLRefInfo> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHashTableOfEnumerator<XMLRefInfo> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key = (XMLCh*) lEnum.nextElementKey(); XMLRefInfo* data1 = (XMLRefInfo*) lValue->get(key); XMLRefInfo* data2 = (XMLRefInfo*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHashTableOf<DatatypeValidator>* const lValue , RefHashTableOf<DatatypeValidator>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHashTableOfEnumerator<DatatypeValidator> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHashTableOfEnumerator<DatatypeValidator> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key = (XMLCh*) lEnum.nextElementKey(); DatatypeValidator* data1 = (DatatypeValidator*) lValue->get(key); DatatypeValidator* data2 = (DatatypeValidator*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHashTableOf<Grammar>* const lValue , RefHashTableOf<Grammar>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHashTableOfEnumerator<Grammar> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHashTableOfEnumerator<Grammar> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key = (XMLCh*) lEnum.nextElementKey(); Grammar* data1 = (Grammar*) lValue->get(key); Grammar* data2 = (Grammar*) rValue->get(key); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;} /********************************************************** * * RefHash2KeysTableOf * * SchemaAttDef * ElemVector * ***********************************************************/bool XTemplateComparator::isEquivalent(RefHash2KeysTableOf<SchemaAttDef>* const lValue , RefHash2KeysTableOf<SchemaAttDef>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHash2KeysTableOfEnumerator<SchemaAttDef> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHash2KeysTableOfEnumerator<SchemaAttDef> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key1; int key2; lEnum.nextElementKey((void*&)key1, key2); SchemaAttDef* data1 = (SchemaAttDef*) lValue->get(key1, key2); SchemaAttDef* data2 = (SchemaAttDef*) rValue->get(key1, key2); if (!XObjectComparator::isEquivalent(data1, data2)) return false; } return true;}bool XTemplateComparator::isEquivalent(RefHash2KeysTableOf<ElemVector>* const lValue , RefHash2KeysTableOf<ElemVector>* const rValue){ IS_EQUIVALENT(lValue, rValue); RefHash2KeysTableOfEnumerator<ElemVector> lEnum(lValue, false, lValue->getMemoryManager()); int lItemNumber = 0; while (lEnum.hasMoreElements()) { lEnum.nextElement(); lItemNumber++; } RefHash2KeysTableOfEnumerator<ElemVector> rEnum(rValue, false, rValue->getMemoryManager()); int rItemNumber = 0; while (rEnum.hasMoreElements()) { rEnum.nextElement(); rItemNumber++; } //both shall have the number of item in it if (lItemNumber != rItemNumber) return false; //Any thing in the lValue shall be found in the rValue lEnum.Reset(); while (lEnum.hasMoreElements()) { XMLCh* key1; int key2; lEnum.nextElementKey((void*&)key1, key2); ElemVector* data1 = (ElemVector*) lValue->get(key1, key2); ElemVector* data2 = (ElemVector*) rValue->get(key1, key2); if (!isEquivalent(data1, data2)) return false; } return true;} /********************************************************** * * RefHash3KeysIdPool * * SchemaElementDecl * ***********************************************************/bool XTemplateComparator::isEquivalent(RefHash3KeysIdPool<SchemaElementDecl>* const lValue , RefHash3KeysIdPool<SchemaElementDecl>* const rValue){ IS_EQUIVALENT(lValue, rValue) RefHash3KeysIdPoolEnumerator<SchemaElementDecl> lEnum(lValue, false, lValue->getMemoryManager()); RefHash3KeysIdPoolEnumerator<SchemaElementDecl> rEnum(rValue, false, rValue->getMemoryManager()); if (lEnum.size() != rEnum.size()) return false; for (int i = 0; i < lEnum.size(); i++) { SchemaElementDecl& lData = lEnum.nextElement(); SchemaElementDecl& rData = rEnum.nextElement(); if (!XObjectComparator::isEquivalent(&lData, &rData)) return false; } return true;} /********************************************************** * * NameIdPool * * DTDElementDecl * DTDEntityDecl * XMLNotationDecl * ***********************************************************/bool XTemplateComparator::isEquivalent(NameIdPool<DTDElementDecl>* const lValue , NameIdPool<DTDElementDecl>* const rValue){ IS_EQUIVALENT(lValue, rValue) NameIdPoolEnumerator<DTDElementDecl> lEnum(lValue, lValue->getMemoryManager()); NameIdPoolEnumerator<DTDElementDecl> rEnum(rValue, rValue->getMemoryManager()); if (lEnum.size() != rEnum.size()) return false; for (int i = 0; i < lEnum.size(); i++) { DTDElementDecl& lData = lEnum.nextElement(); DTDElementDecl& rData = rEnum.nextElement(); if (!XObjectComparator::isEquivalent(&lData, &rData)) return false; } return true;}bool XTemplateComparator::isEquivalent(NameIdPool<DTDEntityDecl>* const lValue , NameIdPool<DTDEntityDecl>* const rValue){ IS_EQUIVALENT(lValue, rValue) NameIdPoolEnumerator<DTDEntityDecl> lEnum(lValue, lValue->getMemoryManager()); NameIdPoolEnumerator<DTDEntityDecl> rEnum(rValue, rValue->getMemoryManager()); if (lEnum.size() != rEnum.size()) return false; for (int i = 0; i < lEnum.size(); i++) { DTDEntityDecl& lData = lEnum.nextElement(); DTDEntityDecl& rData = rEnum.nextElement(); if (!XObjectComparator::isEquivalent(&lData, &rData)) return false; } return true;}bool XTemplateComparator::isEquivalent(NameIdPool<XMLNotationDecl>* const lValue , NameIdPool<XMLNotationDecl>* const rValue){ IS_EQUIVALENT(lValue, rValue) NameIdPoolEnumerator<XMLNotationDecl> lEnum(lValue, lValue->getMemoryManager()); NameIdPoolEnumerator<XMLNotationDecl> rEnum(rValue, rValue->getMemoryManager()); if (lEnum.size() != rEnum.size()) return false; for (int i = 0; i < lEnum.size(); i++) { XMLNotationDecl& lData = lEnum.nextElement(); XMLNotationDecl& rData = rEnum.nextElement(); if (!XObjectComparator::isEquivalent(&lData, &rData)) return false; } return true;}XERCES_CPP_NAMESPACE_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?