author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> |
Fri, 22 Jan 2010 09:56:12 +0200 | |
changeset 3 | 127731b7107d |
parent 2 | 661f3784fe57 |
child 4 | 3eebb1e54d3a |
Binary file installationservices/swi/test/tpathsubst/scripts/SGL.GT0220.325 Customizable Install Paths (CR IHUN-6FXHUU).doc has changed
Binary file installationservices/swi/test/trevocation/scripts/SGL.GT_0235.302_Test Spec OCSP-Based SIS File Revocation.doc has changed
Binary file installationservices/swi/test/tuiscriptadaptors/scripts/SGL.GT0220.321_Silent Install CR AWIR-6FSGNJ Test Specification.doc has changed
Binary file installationservices/swi/test/tuiscriptadaptors/scripts/SGL.GT0220.323_DLL_VID_Correctness_Test_Specification.doc has changed
Binary file installationservices/swi/test/tuiscriptadaptors/scripts/SGL.GT0255.305_Test Specification VFP Support.doc has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinFileOutputStream.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,100 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: BinFileOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(BINFILEOUTPUTSTREAM_HPP) +#define BINFILEOUTPUTSTREAM_HPP + +#include <xercesc/framework/BinOutputStream.hpp> +#include <xercesc/util/PlatformUtils.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLUTIL_EXPORT BinFileOutputStream : public BinOutputStream +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + + ~BinFileOutputStream(); + + BinFileOutputStream + ( + const XMLCh* const fileName + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + BinFileOutputStream + ( + const char* const fileName + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + bool getIsOpen() const; + unsigned int getSize() const; + void reset(); + + + // ----------------------------------------------------------------------- + // Implementation of the input stream interface + // ----------------------------------------------------------------------- + virtual unsigned int curPos() const; + + virtual void writeBytes + ( + const XMLByte* const toGo + , const unsigned int maxToWrite + ); + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + BinFileOutputStream(const BinFileOutputStream&); + BinFileOutputStream& operator=(const BinFileOutputStream&); + + // ----------------------------------------------------------------------- + // Private data members + // + // fSource + // The source file that we represent. The FileHandle type is defined + // per platform. + // ----------------------------------------------------------------------- + FileHandle fSource; + MemoryManager* const fMemoryManager; +}; + + +// --------------------------------------------------------------------------- +// BinFileOutputStream: Getter methods +// --------------------------------------------------------------------------- +inline bool BinFileOutputStream::getIsOpen() const +{ + return (fSource != (FileHandle) XERCES_Invalid_File_Handle); +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinMemOutputStream.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: BinMemOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#ifndef BINMEMOUTPUTSTREAM_HEADER_GUARD_ +#define BINMEMOUTPUTSTREAM_HEADER_GUARD_ + +#include <xercesc/framework/BinOutputStream.hpp> +#include <xercesc/util/PlatformUtils.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLUTIL_EXPORT BinMemOutputStream : public BinOutputStream +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + + ~BinMemOutputStream(); + + BinMemOutputStream + ( + int initCapacity = 1023 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + // ----------------------------------------------------------------------- + // Implementation of the output stream interface + // ----------------------------------------------------------------------- + virtual unsigned int curPos() const; + + virtual void writeBytes + ( + const XMLByte* const toGo + , const unsigned int maxToWrite + ) ; + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + const XMLByte* getRawBuffer() const; + + unsigned int getSize() const; + void reset(); + +private : + // ----------------------------------------------------------------------- + // Unimplemented methods. + // ----------------------------------------------------------------------- + BinMemOutputStream(const BinMemOutputStream&); + BinMemOutputStream& operator=(const BinMemOutputStream&); + + // ----------------------------------------------------------------------- + // Private helpers + // ----------------------------------------------------------------------- + void insureCapacity(const unsigned int extraNeeded); + + // ----------------------------------------------------------------------- + // Private data members + // + // fDataBuf + // The pointer to the buffer data. Its grown as needed. Its always + // one larger than fCapacity, to leave room for the null terminator. + // + // fIndex + // The current index into the buffer, as characters are appended + // to it. If its zero, then the buffer is empty. + // + // fCapacity + // The current capacity of the buffer. Its actually always one + // larger, to leave room for the null terminator. + // + // ----------------------------------------------------------------------- + MemoryManager* fMemoryManager; + XMLByte* fDataBuf; + unsigned int fIndex; + unsigned int fCapacity; + +}; + + +XERCES_CPP_NAMESPACE_END + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/CharTypeTables.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,255 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: CharTypeTables.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(CHARTYPETABLES_HPP) +#define CHARTYPETABLES_HPP + +#include <xercesc/util/XercesDefs.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +// --------------------------------------------------------------------------- +// These are character type lookup tables. They are included into XMLReader +// but are in their own private header in order to keep from making that +// file unreadable. +// +// THE RANGES and SINGLES MUST BE IN NUMERICAL ORDER, because the lookup +// method will use this info to short circuit the search! +// --------------------------------------------------------------------------- +static const XMLCh gBaseChars[] = +{ + // Ranges + 0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6 + , 0x00F8, 0x00FF + , 0x0100, 0x0131, 0x0134, 0x013E, 0x0141, 0x0148, 0x014A, 0x017E + , 0x0180, 0x01C3, 0x01CD, 0x01F0, 0x01F4, 0x01F5, 0x01FA, 0x0217 + , 0x0250, 0x02A8, 0x02BB, 0x02C1, 0x0388, 0x038A, 0x038E, 0x03A1 + , 0x03A3, 0x03CE, 0x03D0, 0x03D6, 0x03E2, 0x03F3, 0x0401, 0x040C + , 0x040E, 0x044F, 0x0451, 0x045C, 0x045E, 0x0481, 0x0490, 0x04C4 + , 0x04C7, 0x04C8, 0x04CB, 0x04CC, 0x04D0, 0x04EB, 0x04EE, 0x04F5 + , 0x04F8, 0x04F9, 0x0531, 0x0556, 0x0561, 0x0586, 0x05D0, 0x05EA + , 0x05F0, 0x05F2, 0x0621, 0x063A, 0x0641, 0x064A, 0x0671, 0x06B7 + , 0x06BA, 0x06BE, 0x06C0, 0x06CE, 0x06D0, 0x06D3, 0x06E5, 0x06E6 + , 0x0905, 0x0939, 0x0958, 0x0961, 0x0985, 0x098C, 0x098F, 0x0990 + , 0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B6, 0x09B9, 0x09DC, 0x09DD + , 0x09DF, 0x09E1, 0x09F0, 0x09F1, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10 + , 0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36 + , 0x0A38, 0x0A39, 0x0A59, 0x0A5C, 0x0A72, 0x0A74, 0x0A85, 0x0A8B + , 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3 + , 0x0AB5, 0x0AB9, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28 + , 0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B36, 0x0B39, 0x0B5C, 0x0B5D + , 0x0B5F, 0x0B61, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95 + , 0x0B99, 0x0B9A, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA + , 0x0BAE, 0x0BB5, 0x0BB7, 0x0BB9, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10 + , 0x0C12, 0x0C28, 0x0C2A, 0x0C33, 0x0C35, 0x0C39, 0x0C60, 0x0C61 + , 0x0C85, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3 + , 0x0CB5, 0x0CB9, 0x0CE0, 0x0CE1, 0x0D05, 0x0D0C, 0x0D0E, 0x0D10 + , 0x0D12, 0x0D28, 0x0D2A, 0x0D39, 0x0D60, 0x0D61, 0x0E01, 0x0E2E + , 0x0E32, 0x0E33, 0x0E40, 0x0E45, 0x0E81, 0x0E82, 0x0E87, 0x0E88 + , 0x0E94, 0x0E97, 0x0E99, 0x0E9F, 0x0EA1, 0x0EA3, 0x0EAA, 0x0EAB + , 0x0EAD, 0x0EAE, 0x0EB2, 0x0EB3, 0x0EC0, 0x0EC4, 0x0F40, 0x0F47 + , 0x0F49, 0x0F69, 0x10A0, 0x10C5, 0x10D0, 0x10F6, 0x1102, 0x1103 + , 0x1105, 0x1107, 0x110B, 0x110C, 0x110E, 0x1112, 0x1154, 0x1155 + , 0x115F, 0x1161, 0x116D, 0x116E, 0x1172, 0x1173, 0x11AE, 0x11AF + , 0x11B7, 0x11B8, 0x11BC, 0x11C2, 0x1E00, 0x1E9B, 0x1EA0, 0x1EF9 + , 0x1F00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D + , 0x1F50, 0x1F57, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC + , 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB + , 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x212A, 0x212B + , 0x2180, 0x2182, 0x3041, 0x3094, 0x30A1, 0x30FA, 0x3105, 0x312C + , 0xAC00, 0xD7A3 + , 0x00 + + // Singles + , 0x0386, 0x038C, 0x03DA, 0x03DC, 0x03DE, 0x03E0, 0x0559, 0x06D5 + , 0x093D, 0x09B2, 0x0A5E, 0x0A8D, 0x0ABD, 0x0AE0, 0x0B3D, 0x0B9C + , 0x0CDE, 0x0E30, 0x0E84, 0x0E8A, 0x0E8D, 0x0EA5, 0x0EA7, 0x0EB0 + , 0x0EBD, 0x1100, 0x1109, 0x113C, 0x113E, 0x1140, 0x114C, 0x114E + , 0x1150, 0x1159, 0x1163, 0x1165, 0x1167, 0x1169, 0x1175, 0x119E + , 0x11A8, 0x11AB, 0x11BA, 0x11EB, 0x11F0, 0x11F9, 0x1F59, 0x1F5B + , 0x1F5D, 0x1FBE, 0x2126, 0x212E + , 0x00 +}; + + +static const XMLCh gCombiningChars[] = +{ + // Ranges + 0x0300, 0x0345, 0x0360, 0x0361, 0x0483, 0x0486, 0x0591, 0x05A1 + , 0x05A3, 0x05B9, 0x05BB, 0x05BD, 0x05C1, 0x05C2, 0x064B, 0x0652 + , 0x06D6, 0x06DC, 0x06DD, 0x06DF, 0x06E0, 0x06E4 + , 0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0901, 0x0903, 0x093E, 0x094C + , 0x0951, 0x0954, 0x0962, 0x0963, 0x0981, 0x0983, 0x09C0, 0x09C4 + , 0x09C7, 0x09C8, 0x09CB, 0x09CD, 0x09E2, 0x09E3, 0x0A40, 0x0A42 + , 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A70, 0x0A71, 0x0A81, 0x0A83 + , 0x0ABE, 0x0AC5, 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0B01, 0x0B03 + , 0x0B3E, 0x0B43, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, 0x0B56, 0x0B57 + , 0x0B82, 0x0B83, 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD + , 0x0C01, 0x0C03, 0x0C3E, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D + , 0x0C55, 0x0C56, 0x0C82, 0x0C83, 0x0CBE, 0x0CC4, 0x0CC6, 0x0CC8 + , 0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0D02, 0x0D03, 0x0D3E, 0x0D43 + , 0x0D46, 0x0D48, 0x0D4A, 0x0D4D, 0x0E34, 0x0E3A, 0x0E47, 0x0E4E + , 0x0EB4, 0x0EB9, 0x0EBB, 0x0EBC, 0x0EC8, 0x0ECD, 0x0F18, 0x0F19 + , 0x0F71, 0x0F84, 0x0F86, 0x0F8B, 0x0F90, 0x0F95, 0x0F99, 0x0FAD + , 0x0FB1, 0x0FB7, 0x20D0, 0x20DC, 0x302A, 0x302F + , 0x00 + + // Singles + , 0x05BF, 0x05C4, 0x0670 + , 0x093C, 0x094D, 0x09BC, 0x09BE, 0x09BF, 0x09D7, 0x0A02 + , 0x0A3C, 0x0A3E, 0x0A3F, 0x0ABC, 0x0B3C, 0x0BD7, 0x0D57, 0x0E31 + , 0x0EB1, 0x0F35, 0x0F37, 0x0F39, 0x0F3E, 0x0F3F, 0x0F97, 0x0FB9 + , 0x20E1, 0x3099, 0x309A + , 0x00 +}; + + +static const XMLCh gDigitChars[] = +{ + // Ranges + 0x0030, 0x0039, 0x0660, 0x0669, 0x06F0, 0x06F9, 0x0966, 0x096F + , 0x09E6, 0x09EF, 0x0A66, 0x0A6F, 0x0AE6, 0x0AEF, 0x0B66, 0x0B6F + , 0x0BE7, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF, 0x0D66, 0x0D6F + , 0x0E50, 0x0E59, 0x0ED0, 0x0ED9, 0x0F20, 0x0F29 + , 0x00 + + // Singles + , 0x00 +}; + + +static const XMLCh gIdeographicChars[] = +{ + // Ranges + 0x3021, 0x3029, 0x4E00, 0x9FA5 + , 0x00 + + // Singles + , 0x3007 + , 0x00 +}; + +static const XMLCh gExtenderChars[] = +{ + // Ranges + 0x3031, 0x3035, 0x309D, 0x309E, 0x30FC, 0x30FE + , 0x00 + + // Singles + , 0x00B7, 0x02D0, 0x02D1, 0x0387, 0x0640, 0x0E46, 0x0EC6, 0x3005 + , 0x00 +}; + + +static const XMLCh gPublicIdChars[] = +{ + // Ranges + 0x0023, 0x0025, 0x0027, 0x003B, 0x003F, 0x005A, 0x0061, 0x007A + , 0x00 + + // Singles + , 0x000A, 0x000D, 0x0020, 0x0021, 0x003D, 0x005F + , 0x00 +}; + + +static const XMLCh gWhitespaceChars[] = +{ + // Ranges + 0x00 + + , 0x0020, 0x0009, 0x000D, 0x000A + , 0x00 +}; + + +static const XMLCh gXMLChars[] = +{ + // Ranges + 0x0020, 0xD7FF, 0xE000, 0xFFFD + , 0x00 + + , 0x0009, 0x000D, 0x000A + , 0x00 +}; + +// The following are for XML 1.1 +static const XMLCh gWhitespaceChars1_1[] = +{ + // Ranges + 0x00 + + , 0x0020, 0x0009, 0x000D, 0x000A, 0x0085, 0x2028 + , 0x00 +}; + +static const XMLCh gFirstNameChars1_1[] = +{ + // Ranges + // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check + 0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6 + , 0x00F8, 0x02FF, 0x0370, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D + , 0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF, 0xF900, 0xFDCF + , 0xFDF0, 0xFFFD + , 0x00 + + , 0x003A, 0x005F + , 0x00 + +}; + +static const XMLCh gNameChars1_1[] = +{ + // Ranges + // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check + 0x0030, 0x0039, 0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6 + , 0x00D8, 0x00F6, 0x00F8, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D + , 0x203F, 0x2040, 0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF + , 0xF900, 0xFDCF, 0xFDF0, 0xFFFD + , 0x00 + + , 0x002D, 0x002E, 0x003A, 0x005F, 0x00B7 + , 0x00 +}; + +static const XMLCh gXMLChars1_1[] = +{ + // Ranges + 0x0020, 0x007E, 0x00A0, 0xD7FF, 0xE000, 0xFFFD + , 0x00 + + , 0x0009, 0x000D, 0x000A, 0x0085 + , 0x00 +}; + +static const XMLCh gControl_Chars1_1[] = +{ + // Ranges + 0x0001, 0x001F, 0x007F, 0x009F + , 0x00 + + , 0x00 +}; + + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/DGXMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,209 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: DGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(DGXMLSCANNER_HPP) +#define DGXMLSCANNER_HPP + +#include <xercesc/internal/XMLScanner.hpp> +#include <xercesc/util/ValueVectorOf.hpp> +#include <xercesc/util/NameIdPool.hpp> +#include <xercesc/validators/common/Grammar.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class DTDElementDecl; +class DTDGrammar; +class DTDValidator; + +// This is an integrated scanner class, which does DTD/XML Schema grammar +// processing. +class XMLPARSER_EXPORT DGXMLScanner : public XMLScanner +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + DGXMLScanner + ( + XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + DGXMLScanner + ( + XMLDocumentHandler* const docHandler + , DocTypeHandler* const docTypeHandler + , XMLEntityHandler* const entityHandler + , XMLErrorReporter* const errReporter + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + virtual ~DGXMLScanner(); + + // ----------------------------------------------------------------------- + // XMLScanner public virtual methods + // ----------------------------------------------------------------------- + virtual const XMLCh* getName() const; + virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool(); + virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const; + virtual unsigned int resolveQName + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , int& prefixColonPos + ); + virtual void scanDocument + ( + const InputSource& src + ); + virtual bool scanNext(XMLPScanToken& toFill); + virtual Grammar* loadGrammar + ( + const InputSource& src + , const short grammarType + , const bool toCache = false + ); + + virtual Grammar::GrammarType getCurrentGrammarType() const; + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + DGXMLScanner(); + DGXMLScanner(const DGXMLScanner&); + DGXMLScanner& operator=(const DGXMLScanner&); + + // ----------------------------------------------------------------------- + // XMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual void scanCDSection(); + virtual void scanCharData(XMLBuffer& toToUse); + virtual EntityExpRes scanEntityRef + ( + const bool inAttVal + , XMLCh& firstCh + , XMLCh& secondCh + , bool& escaped + ); + virtual void scanDocTypeDecl(); + virtual void scanReset(const InputSource& src); + virtual void sendCharData(XMLBuffer& toSend); + virtual InputSource* resolveSystemId(const XMLCh* const sysId + ,const XMLCh* const pubId); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void commonInit(); + void cleanUp(); + + unsigned int buildAttList + ( + const unsigned int attCount + , XMLElementDecl* elemDecl + , RefVectorOf<XMLAttr>& toFill + ); + unsigned int resolvePrefix + ( + const XMLCh* const prefix + , const ElemStack::MapModes mode + ); + void updateNSMap + ( + const XMLCh* const attrPrefix + , const XMLCh* const attrLocalName + , const XMLCh* const attrValue + ); + void scanAttrListforNameSpaces(RefVectorOf<XMLAttr>* theAttrList, int attCount, XMLElementDecl* elemDecl); + + // ----------------------------------------------------------------------- + // Private scanning methods + // ----------------------------------------------------------------------- + bool scanAttValue + ( + const XMLAttDef* const attDef + , const XMLCh *const attrName + , XMLBuffer& toFill + ); + bool scanContent(); + void scanEndTag(bool& gotData); + bool scanStartTag(bool& gotData); + bool scanStartTagNS(bool& gotData); + + // ----------------------------------------------------------------------- + // Grammar preparsing methods + // ----------------------------------------------------------------------- + Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false); + + // ----------------------------------------------------------------------- + // Data members + // + // fRawAttrList + // During the initial scan of the attributes we can only do a raw + // scan for key/value pairs. So this vector is used to store them + // until they can be processed (and put into fAttrList.) + // + // fDTDValidator + // The DTD validator instance. + // + // fElemState + // fElemStateSize + // Stores an element next state from DFA content model - used for + // wildcard validation + // + // fDTDElemNonDeclPool + // registry of "faulted-in" DTD element decls + // fElemCount + // count of the number of start tags seen so far (starts at 1). + // Used for duplicate attribute detection/processing of required/defaulted attributes + // fAttDefRegistry + // mapping from XMLAttDef instances to the count of the last + // start tag where they were utilized. + // fUndeclaredAttrRegistry + // mapping of attr QNames to the count of the last start tag in which they occurred + // + // ----------------------------------------------------------------------- + ValueVectorOf<XMLAttr*>* fAttrNSList; + DTDValidator* fDTDValidator; + DTDGrammar* fDTDGrammar; + NameIdPool<DTDElementDecl>* fDTDElemNonDeclPool; + unsigned int fElemCount; + RefHashTableOf<unsigned int>* fAttDefRegistry; + RefHashTableOf<unsigned int>* fUndeclaredAttrRegistry; +}; + +inline const XMLCh* DGXMLScanner::getName() const +{ + return XMLUni::fgDGXMLScanner; +} + +inline Grammar::GrammarType DGXMLScanner::getCurrentGrammarType() const +{ + return Grammar::DTDGrammarType; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ElemStack.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,587 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: ElemStack.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(ELEMSTACK_HPP) +#define ELEMSTACK_HPP + +#include <xercesc/util/StringPool.hpp> +#include <xercesc/util/QName.hpp> +#include <xercesc/util/ValueVectorOf.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLElementDecl; +class Grammar; + +struct PrefMapElem : public XMemory +{ + unsigned int fPrefId; + unsigned int fURIId; +}; + +// +// During the scan of content, we have to keep up with the nesting of +// elements (for validation and wellformedness purposes) and we have to +// have places to remember namespace (prefix to URI) mappings. +// +// We only have to keep a stack of the current path down through the tree +// that we are currently scanning, and keep track of any children of any +// elements along that path. +// +// So, this data structure is a stack, which represents the current path +// through the tree that we've worked our way down to. For each node in +// the stack, there is an array of element ids that represent the ids of +// the child elements scanned so far. Upon exit from that element, its +// array of child elements is validated. +// +// Since we have the actual XMLElementDecl in the stack nodes, when its time +// to validate, we just extract the content model from that element decl +// and validate. All the required data falls easily to hand. Note that we +// actually have some derivative of XMLElementDecl, which is specific to +// the validator used, but the abstract API is sufficient for the needs of +// the scanner. +// +// Since the namespace support also requires the storage of information on +// a nested element basis, this structure also holds the namespace info. For +// each level, the prefixes defined at that level (and the namespaces that +// they map to) are stored. +// +class XMLPARSER_EXPORT ElemStack : public XMemory +{ +public : + // ----------------------------------------------------------------------- + // Class specific data types + // + // These really should be private, but some of the compilers we have to + // support are too dumb to deal with that. + // + // PrefMapElem + // fURIId is the id of the URI from the validator's URI map. The + // fPrefId is the id of the prefix from our own prefix pool. The + // namespace stack consists of these elements. + // + // StackElem + // fThisElement is the basic element decl for the current element. + // The fRowCapacity is how large fChildIds has grown so far. + // fChildCount is how many of them are valid right now. + // + // The fMapCapacity is how large fMap has grown so far. fMapCount + // is how many of them are valid right now. + // + // Note that we store the reader number we were in when we found the + // start tag. We'll use this at the end tag to test for unbalanced + // markup in entities. + // + // MapModes + // When a prefix is mapped to a namespace id, it matters whether the + // QName being mapped is an attribute or name. Attributes are not + // affected by an sibling xmlns attributes, whereas elements are + // affected by its own xmlns attributes. + // ----------------------------------------------------------------------- + struct StackElem : public XMemory + { + XMLElementDecl* fThisElement; + unsigned int fReaderNum; + + unsigned int fChildCapacity; + unsigned int fChildCount; + QName** fChildren; + + PrefMapElem* fMap; + unsigned int fMapCapacity; + unsigned int fMapCount; + + bool fValidationFlag; + bool fCommentOrPISeen; + bool fReferenceEscaped; + int fCurrentScope; + Grammar* fCurrentGrammar; + unsigned int fCurrentURI; + XMLCh * fSchemaElemName; + unsigned int fSchemaElemNameMaxLen; + + int fPrefixColonPos; + }; + + enum MapModes + { + Mode_Attribute + , Mode_Element + }; + + + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + ElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + ~ElemStack(); + + + // ----------------------------------------------------------------------- + // Stack access + // ----------------------------------------------------------------------- + unsigned int addLevel(); + unsigned int addLevel(XMLElementDecl* const toSet, const unsigned int readerNum); + const StackElem* popTop(); + + + // ----------------------------------------------------------------------- + // Stack top access + // ----------------------------------------------------------------------- + unsigned int addChild(QName* const child, const bool toParent); + const StackElem* topElement() const; + void setElement(XMLElementDecl* const toSet, const unsigned int readerNum); + + void setValidationFlag(bool validationFlag); + bool getValidationFlag(); + + inline void setCommentOrPISeen(); + inline bool getCommentOrPISeen() const; + + inline void setReferenceEscaped(); + inline bool getReferenceEscaped() const; + + void setCurrentScope(int currentScope); + int getCurrentScope(); + + void setCurrentGrammar(Grammar* currentGrammar); + Grammar* getCurrentGrammar(); + + void setCurrentURI(unsigned int uri); + unsigned int getCurrentURI(); + + inline void setCurrentSchemaElemName(const XMLCh * const schemaElemName); + inline XMLCh *getCurrentSchemaElemName(); + + void setPrefixColonPos(int colonPos); + int getPrefixColonPos() const; + + // ----------------------------------------------------------------------- + // Prefix map methods + // ----------------------------------------------------------------------- + void addPrefix + ( + const XMLCh* const prefixToAdd + , const unsigned int uriId + ); + unsigned int mapPrefixToURI + ( + const XMLCh* const prefixToMap + , const MapModes mode + , bool& unknown + ) const; + ValueVectorOf<PrefMapElem*>* getNamespaceMap() const; + unsigned int getPrefixId(const XMLCh* const prefix) const; + const XMLCh* getPrefixForId(unsigned int prefId) const; + + // ----------------------------------------------------------------------- + // Miscellaneous methods + // ----------------------------------------------------------------------- + bool isEmpty() const; + void reset + ( + const unsigned int emptyId + , const unsigned int unknownId + , const unsigned int xmlId + , const unsigned int xmlNSId + ); + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + ElemStack(const ElemStack&); + ElemStack& operator=(const ElemStack&); + + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void expandMap(StackElem* const toExpand); + void expandStack(); + + + // ----------------------------------------------------------------------- + // Data members + // + // fEmptyNamespaceId + // This is the special URI id for the "" namespace, which is magic + // because of the xmlns="" operation. + // + // fGlobalPoolId + // This is a special URI id that is returned when the namespace + // prefix is "" and no one has explicitly mapped that prefix to an + // explicit URI (or when they explicitly clear any such mapping, + // which they can also do.) And also its prefix pool id, which is + // stored here for fast access. + // + // fPrefixPool + // This is the prefix pool where prefixes are hashed and given unique + // ids. These ids are used to track prefixes in the element stack. + // + // fStack + // fStackCapacity + // fStackTop + // This the stack array. Its an array of pointers to StackElem + // structures. The capacity is the current high water mark of the + // stack. The top is the current top of stack (i.e. the part of it + // being used.) + // + // fUnknownNamespaceId + // This is the URI id for the special URI that is assigned to any + // prefix which has not been mapped. This lets us keep going after + // issuing the error. + // + // fXMLNamespaceId + // fXMLPoolId + // fXMLNSNamespaceId + // fXMLNSPoolId + // These are the URI ids for the special URIs that are assigned to + // the 'xml' and 'xmlns' namespaces. And also its prefix pool id, + // which is stored here for fast access. + // ----------------------------------------------------------------------- + unsigned int fEmptyNamespaceId; + unsigned int fGlobalPoolId; + XMLStringPool fPrefixPool; + StackElem** fStack; + unsigned int fStackCapacity; + unsigned int fStackTop; + unsigned int fUnknownNamespaceId; + unsigned int fXMLNamespaceId; + unsigned int fXMLPoolId; + unsigned int fXMLNSNamespaceId; + unsigned int fXMLNSPoolId; + ValueVectorOf<PrefMapElem*>* fNamespaceMap; + MemoryManager* fMemoryManager; +}; + + +class XMLPARSER_EXPORT WFElemStack : public XMemory +{ +public : + // ----------------------------------------------------------------------- + // Class specific data types + // + // These really should be private, but some of the compilers we have to + // support are too dumb to deal with that. + // + // PrefMapElem + // fURIId is the id of the URI from the validator's URI map. The + // fPrefId is the id of the prefix from our own prefix pool. The + // namespace stack consists of these elements. + // + // StackElem + // fThisElement is the basic element decl for the current element. + // The fRowCapacity is how large fChildIds has grown so far. + // fChildCount is how many of them are valid right now. + // + // The fMapCapacity is how large fMap has grown so far. fMapCount + // is how many of them are valid right now. + // + // Note that we store the reader number we were in when we found the + // start tag. We'll use this at the end tag to test for unbalanced + // markup in entities. + // + // MapModes + // When a prefix is mapped to a namespace id, it matters whether the + // QName being mapped is an attribute or name. Attributes are not + // affected by an sibling xmlns attributes, whereas elements are + // affected by its own xmlns attributes. + // ----------------------------------------------------------------------- + struct StackElem : public XMemory + { + int fTopPrefix; + unsigned int fCurrentURI; + unsigned int fReaderNum; + unsigned int fElemMaxLength; + XMLCh* fThisElement; + }; + + enum MapModes + { + Mode_Attribute + , Mode_Element + }; + + + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + WFElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + ~WFElemStack(); + + + // ----------------------------------------------------------------------- + // Stack access + // ----------------------------------------------------------------------- + unsigned int addLevel(); + unsigned int addLevel(const XMLCh* const toSet, const unsigned int toSetLen, + const unsigned int readerNum); + const StackElem* popTop(); + + + // ----------------------------------------------------------------------- + // Stack top access + // ----------------------------------------------------------------------- + const StackElem* topElement() const; + void setElement(const XMLCh* const toSet, const unsigned int toSetLen, + const unsigned int readerNum); + + void setCurrentURI(unsigned int uri); + unsigned int getCurrentURI(); + + // ----------------------------------------------------------------------- + // Prefix map methods + // ----------------------------------------------------------------------- + void addPrefix + ( + const XMLCh* const prefixToAdd + , const unsigned int uriId + ); + unsigned int mapPrefixToURI + ( + const XMLCh* const prefixToMap + , const MapModes mode + , bool& unknown + ) const; + + + // ----------------------------------------------------------------------- + // Miscellaneous methods + // ----------------------------------------------------------------------- + bool isEmpty() const; + void reset + ( + const unsigned int emptyId + , const unsigned int unknownId + , const unsigned int xmlId + , const unsigned int xmlNSId + ); + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + WFElemStack(const WFElemStack&); + WFElemStack& operator=(const WFElemStack&); + + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void expandMap(); + void expandStack(); + + + // ----------------------------------------------------------------------- + // Data members + // + // fEmptyNamespaceId + // This is the special URI id for the "" namespace, which is magic + // because of the xmlns="" operation. + // + // fGlobalPoolId + // This is a special URI id that is returned when the namespace + // prefix is "" and no one has explicitly mapped that prefix to an + // explicit URI (or when they explicitly clear any such mapping, + // which they can also do.) And also its prefix pool id, which is + // stored here for fast access. + // + // fPrefixPool + // This is the prefix pool where prefixes are hashed and given unique + // ids. These ids are used to track prefixes in the element stack. + // + // fStack + // fStackCapacity + // fStackTop + // This the stack array. Its an array of pointers to StackElem + // structures. The capacity is the current high water mark of the + // stack. The top is the current top of stack (i.e. the part of it + // being used.) + // + // fUnknownNamespaceId + // This is the URI id for the special URI that is assigned to any + // prefix which has not been mapped. This lets us keep going after + // issuing the error. + // + // fXMLNamespaceId + // fXMLPoolId + // fXMLNSNamespaceId + // fXMLNSPoolId + // These are the URI ids for the special URIs that are assigned to + // the 'xml' and 'xmlns' namespaces. And also its prefix pool id, + // which is stored here for fast access. + // ----------------------------------------------------------------------- + unsigned int fEmptyNamespaceId; + unsigned int fGlobalPoolId; + unsigned int fStackCapacity; + unsigned int fStackTop; + unsigned int fUnknownNamespaceId; + unsigned int fXMLNamespaceId; + unsigned int fXMLPoolId; + unsigned int fXMLNSNamespaceId; + unsigned int fXMLNSPoolId; + unsigned int fMapCapacity; + PrefMapElem* fMap; + StackElem** fStack; + XMLStringPool fPrefixPool; + MemoryManager* fMemoryManager; +}; + + +// --------------------------------------------------------------------------- +// ElemStack: Miscellaneous methods +// --------------------------------------------------------------------------- +inline bool ElemStack::isEmpty() const +{ + return (fStackTop == 0); +} + +inline bool ElemStack::getValidationFlag() +{ + return fStack[fStackTop-1]->fValidationFlag; +} + +inline void ElemStack::setValidationFlag(bool validationFlag) +{ + fStack[fStackTop-1]->fValidationFlag = validationFlag; + return; +} + +inline bool ElemStack::getCommentOrPISeen() const +{ + return fStack[fStackTop-1]->fCommentOrPISeen; +} + +inline void ElemStack::setCommentOrPISeen() +{ + fStack[fStackTop-1]->fCommentOrPISeen = true; + return; +} + +inline bool ElemStack::getReferenceEscaped() const +{ + return fStack[fStackTop-1]->fReferenceEscaped; +} + +inline void ElemStack::setReferenceEscaped() +{ + fStack[fStackTop-1]->fReferenceEscaped = true; + return; +} + +inline void ElemStack::setCurrentSchemaElemName(const XMLCh * const schemaElemName) +{ + unsigned int schemaElemNameLen = XMLString::stringLen(schemaElemName); + unsigned int stackPos = fStackTop-1; + + if(fStack[stackPos]->fSchemaElemNameMaxLen <= schemaElemNameLen) + { + XMLCh *tempStr = fStack[stackPos]->fSchemaElemName; + fStack[stackPos]->fSchemaElemNameMaxLen = schemaElemNameLen << 1; + fStack[stackPos]->fSchemaElemName = (XMLCh *)fMemoryManager->allocate((fStack[stackPos]->fSchemaElemNameMaxLen)*sizeof(XMLCh)); + fMemoryManager->deallocate(tempStr); + } + XMLString::copyString(fStack[stackPos]->fSchemaElemName, schemaElemName); +} + +inline XMLCh *ElemStack::getCurrentSchemaElemName() +{ + return fStack[fStackTop-1]->fSchemaElemName; +} + +inline int ElemStack::getCurrentScope() +{ + return fStack[fStackTop-1]->fCurrentScope; +} + +inline void ElemStack::setCurrentScope(int currentScope) +{ + fStack[fStackTop-1]->fCurrentScope = currentScope; + return; +} + +inline Grammar* ElemStack::getCurrentGrammar() +{ + return fStack[fStackTop-1]->fCurrentGrammar; +} + +inline void ElemStack::setCurrentGrammar(Grammar* currentGrammar) +{ + fStack[fStackTop-1]->fCurrentGrammar = currentGrammar; + return; +} + +inline unsigned int ElemStack::getCurrentURI() +{ + return fStack[fStackTop-1]->fCurrentURI; +} + +inline void ElemStack::setCurrentURI(unsigned int uri) +{ + fStack[fStackTop-1]->fCurrentURI = uri; + return; +} + +inline unsigned int ElemStack::getPrefixId(const XMLCh* const prefix) const +{ + return fPrefixPool.getId(prefix); +} + +inline const XMLCh* ElemStack::getPrefixForId(unsigned int prefId) const +{ + return fPrefixPool.getValueForId(prefId); +} + +inline void ElemStack::setPrefixColonPos(int colonPos) +{ + fStack[fStackTop-1]->fPrefixColonPos = colonPos; +} + +inline int ElemStack::getPrefixColonPos() const { + return fStack[fStackTop-1]->fPrefixColonPos; +} + +// --------------------------------------------------------------------------- +// WFElemStack: Miscellaneous methods +// --------------------------------------------------------------------------- +inline bool WFElemStack::isEmpty() const +{ + return (fStackTop == 0); +} + +inline unsigned int WFElemStack::getCurrentURI() +{ + return fStack[fStackTop-1]->fCurrentURI; +} + +inline void WFElemStack::setCurrentURI(unsigned int uri) +{ + fStack[fStackTop-1]->fCurrentURI = uri; + return; +} + + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/EndOfEntityException.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,117 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: EndOfEntityException.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(ENDOFENTITYEXCEPTION_HPP) +#define ENDOFENTITYEXCEPTION_HPP + +#include <xercesc/util/XercesDefs.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLEntityDecl; + +// +// This class is only used internally. Its thrown by the ReaderMgr class, +// when an entity ends, and is caught in the scanner. This tells the scanner +// that an entity has ended, and allows it to do the right thing according +// to what was going on when the entity ended. +// +// Since its internal, it does not bother implementing XMLException. +// +class XMLPARSER_EXPORT EndOfEntityException +{ +public: + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + EndOfEntityException( XMLEntityDecl* entityThatEnded + , const unsigned int readerNum) : + + fEntity(entityThatEnded) + , fReaderNum(readerNum) + { + } + + EndOfEntityException(const EndOfEntityException& toCopy) : + + fEntity(toCopy.fEntity) + , fReaderNum(toCopy.fReaderNum) + { + } + + ~EndOfEntityException() + { + } + + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + XMLEntityDecl& getEntity(); + const XMLEntityDecl& getEntity() const; + unsigned int getReaderNum() const; + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + EndOfEntityException& operator = (const EndOfEntityException&); + + // ----------------------------------------------------------------------- + // Private data members + // + // fEntity + // This is a reference to the entity that ended, causing this + // exception. + // + // fReaderNum + // The unique reader number of the reader that was handling this + // entity. This is used to know whether a particular entity has + // ended. + // ----------------------------------------------------------------------- + XMLEntityDecl* fEntity; + unsigned int fReaderNum; +}; + + +// --------------------------------------------------------------------------- +// EndOfEntityException: Getter methods +// --------------------------------------------------------------------------- +inline XMLEntityDecl& EndOfEntityException::getEntity() +{ + return *fEntity; +} + +inline const XMLEntityDecl& EndOfEntityException::getEntity() const +{ + return *fEntity; +} + +inline unsigned int EndOfEntityException::getReaderNum() const +{ + return fReaderNum; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IANAEncodings.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,813 @@ +#if !defined(IANAENCODINGS_HPP) +#define IANAENCODINGS_HPP + +#include <xercesc/util/XercesDefs.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +// ---------------------------------------------------------------- +// This file was generated from the IANA charset source. +// so do not edit this file directly!! +// ---------------------------------------------------------------- + +const XMLCh gEncodingArray[][46] = +{ + { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0036,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x00 } + , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0039,0x0031,0x00 } + , { 0x0041,0x0053,0x0043,0x0049,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0055,0x0053,0x00 } + , { 0x0055,0x0053,0x002D,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 } + , { 0x0075,0x0073,0x00 } + , { 0x0049,0x0042,0x004D,0x0033,0x0036,0x0037,0x00 } + , { 0x0063,0x0070,0x0033,0x0036,0x0037,0x00 } + , { 0x0063,0x0073,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0054,0x0046,0x002D,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0036,0x0034,0x0036,0x0055,0x0054,0x0046,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0062,0x0061,0x0073,0x0069,0x0063,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0072,0x0065,0x0066,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0062,0x0061,0x0073,0x0069,0x0063,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 } + , { 0x0063,0x0073,0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x00 } + , { 0x0069,0x0072,0x0076,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0049,0x006E,0x0074,0x006C,0x0052,0x0065,0x0066,0x0056,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x00 } + , { 0x0042,0x0053,0x005F,0x0034,0x0037,0x0033,0x0030,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0047,0x0042,0x00 } + , { 0x0067,0x0062,0x00 } + , { 0x0075,0x006B,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0055,0x006E,0x0069,0x0074,0x0065,0x0064,0x004B,0x0069,0x006E,0x0067,0x0064,0x006F,0x006D,0x00 } + , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0031,0x00 } + , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x00 } + , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x002D,0x0041,0x0044,0x0044,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0032,0x00 } + , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x0041,0x0044,0x0044,0x00 } + , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0031,0x00 } + , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x00 } + , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x002D,0x0041,0x0044,0x0044,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0032,0x00 } + , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x0041,0x0044,0x0044,0x00 } + , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0042,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x00 } + , { 0x0046,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x00 } + , { 0x0073,0x0065,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x00 } + , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0043,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x0032,0x00 } + , { 0x0073,0x0065,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x0046,0x006F,0x0072,0x004E,0x0061,0x006D,0x0065,0x0073,0x00 } + , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0039,0x00 } + , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0039,0x00 } + , { 0x004B,0x0053,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x00 } + , { 0x006B,0x006F,0x0072,0x0065,0x0061,0x006E,0x00 } + , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0030,0x0031,0x0031,0x0039,0x0038,0x0037,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004B,0x0052,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004B,0x0052,0x00 } + , { 0x0045,0x0055,0x0043,0x002D,0x004B,0x0052,0x00 } + , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x004B,0x0052,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x002D,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x002D,0x0045,0x0058,0x0054,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x006A,0x0070,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x00 } + , { 0x006B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 } + , { 0x0078,0x0030,0x0032,0x0030,0x0031,0x002D,0x0037,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x006A,0x0070,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x0072,0x006F,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x00 } + , { 0x006A,0x0070,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x0072,0x006F,0x00 } + , { 0x0049,0x0054,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0049,0x0054,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0049,0x0074,0x0061,0x006C,0x0069,0x0061,0x006E,0x00 } + , { 0x0050,0x0054,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0036,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x00 } + , { 0x0045,0x0053,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0037,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0037,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 } + , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x002D,0x006F,0x006C,0x0064,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0038,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x004F,0x006C,0x0064,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0039,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 } + , { 0x0044,0x0049,0x004E,0x005F,0x0036,0x0036,0x0030,0x0030,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0031,0x00 } + , { 0x0064,0x0065,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x0045,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0031,0x0047,0x0065,0x0072,0x006D,0x0061,0x006E,0x00 } + , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x005F,0x0028,0x0031,0x0039,0x0037,0x0033,0x0029,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0035,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 } + , { 0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0031,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0037,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0037,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0033,0x0037,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0037,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0036,0x0031,0x0039,0x0037,0x0038,0x00 } + , { 0x0042,0x0053,0x005F,0x0076,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0037,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0037,0x0042,0x0053,0x0056,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 } + , { 0x0049,0x004E,0x0049,0x0053,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0039,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0039,0x0049,0x004E,0x0049,0x0053,0x00 } + , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0030,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0030,0x0049,0x004E,0x0049,0x0053,0x0038,0x00 } + , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0031,0x0049,0x004E,0x0049,0x0053,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x003A,0x0031,0x0039,0x0038,0x0031,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x0031,0x0039,0x0038,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0038,0x003A,0x0031,0x0039,0x0038,0x0030,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 } + , { 0x0047,0x0042,0x005F,0x0031,0x0039,0x0038,0x0038,0x002D,0x0038,0x0030,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0037,0x00 } + , { 0x0063,0x006E,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x004E,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0037,0x0047,0x0042,0x0031,0x0039,0x0038,0x0038,0x00 } + , { 0x0047,0x0042,0x005F,0x0032,0x0033,0x0031,0x0032,0x002D,0x0038,0x0030,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0038,0x00 } + , { 0x0063,0x0068,0x0069,0x006E,0x0065,0x0073,0x0065,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0038,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x0038,0x0030,0x00 } + , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0031,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0030,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x00 } + , { 0x006E,0x006F,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0031,0x00 } + , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0031,0x00 } + , { 0x006E,0x006F,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0031,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0032,0x00 } + , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0039,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x00 } + , { 0x0066,0x0072,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 } + , { 0x0076,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x002D,0x0073,0x0075,0x0070,0x0070,0x006C,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0037,0x0030,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0037,0x0030,0x0056,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x0053,0x0075,0x0070,0x0070,0x0031,0x00 } + , { 0x0050,0x0054,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0034,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x0032,0x00 } + , { 0x0045,0x0053,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0035,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x0032,0x00 } + , { 0x004D,0x0053,0x005A,0x005F,0x0037,0x0037,0x0039,0x0035,0x002E,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0048,0x0055,0x00 } + , { 0x0068,0x0075,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0036,0x0048,0x0075,0x006E,0x0067,0x0061,0x0072,0x0069,0x0061,0x006E,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0037,0x00 } + , { 0x0078,0x0030,0x0032,0x0030,0x0038,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0038,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0037,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0030,0x0038,0x00 } + , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0038,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 } + , { 0x0041,0x0053,0x004D,0x004F,0x005F,0x0034,0x0034,0x0039,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0039,0x0030,0x0033,0x0036,0x00 } + , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0039,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0039,0x0041,0x0053,0x004D,0x004F,0x0034,0x0034,0x0039,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0030,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0030,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0061,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0031,0x00 } + , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0061,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0031,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0061,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x002D,0x004F,0x0043,0x0052,0x002D,0x0042,0x00 } + , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0039,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0033,0x00 } + , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0033,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x0061,0x0064,0x0064,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0034,0x00 } + , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0034,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0035,0x00 } + , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0035,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x0061,0x0064,0x0064,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0036,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0036,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x006B,0x0061,0x006E,0x0061,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0032,0x0030,0x0033,0x0033,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0038,0x00 } + , { 0x0065,0x0031,0x0033,0x0062,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0033,0x0033,0x00 } + , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0031,0x0031,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0039,0x00 } + , { 0x0043,0x0053,0x0041,0x005F,0x0054,0x0035,0x0030,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 } + , { 0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0039,0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0030,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 } + , { 0x006C,0x0031,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0031,0x0039,0x00 } + , { 0x0043,0x0050,0x0038,0x0031,0x0039,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 } + , { 0x006C,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 } + , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0037,0x0062,0x0069,0x0074,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0032,0x0054,0x0036,0x0031,0x0037,0x0062,0x0069,0x0074,0x00 } + , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0038,0x0062,0x0069,0x0074,0x00 } + , { 0x0054,0x002E,0x0036,0x0031,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0054,0x0036,0x0031,0x0038,0x0062,0x0069,0x0074,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0039,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 } + , { 0x006C,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0030,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 } + , { 0x006C,0x0034,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 } + , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0031,0x0045,0x0043,0x004D,0x0041,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0031,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x00 } + , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0031,0x00 } + , { 0x0063,0x0061,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0031,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0031,0x00 } + , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x0032,0x00 } + , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0032,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0032,0x00 } + , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0067,0x0072,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0033,0x0043,0x0053,0x0041,0x005A,0x0032,0x0034,0x0033,0x0034,0x0031,0x0039,0x0038,0x0035,0x0067,0x0072,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0037,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 } + , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0034,0x00 } + , { 0x0041,0x0053,0x004D,0x004F,0x002D,0x0037,0x0030,0x0038,0x00 } + , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0041,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0045,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 } + , { 0x0045,0x004C,0x004F,0x0054,0x005F,0x0039,0x0032,0x0038,0x00 } + , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0038,0x00 } + , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x00 } + , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0038,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 } + , { 0x0054,0x002E,0x0031,0x0030,0x0031,0x002D,0x0047,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0038,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0038,0x0054,0x0031,0x0030,0x0031,0x0047,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 } + , { 0x0068,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0045,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 } + , { 0x0043,0x0053,0x004E,0x005F,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0039,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x0039,0x0043,0x0053,0x004E,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 } + , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0059,0x0055,0x00 } + , { 0x006A,0x0073,0x00 } + , { 0x0079,0x0075,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0031,0x004A,0x0055,0x0053,0x0049,0x0042,0x0031,0x0030,0x0030,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0061,0x0064,0x0064,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0054,0x0065,0x0078,0x0074,0x0043,0x006F,0x006D,0x006D,0x00 } + , { 0x0049,0x0045,0x0043,0x005F,0x0050,0x0032,0x0037,0x002D,0x0031,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0033,0x0049,0x0045,0x0043,0x0050,0x0032,0x0037,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 } + , { 0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x0073,0x0065,0x0072,0x0062,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0036,0x00 } + , { 0x0073,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0036,0x0053,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 } + , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x006D,0x0061,0x0063,0x00 } + , { 0x006D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0037,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0037,0x004D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x003A,0x0031,0x0039,0x0038,0x0039,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 } + , { 0x006C,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 } + , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0063,0x0063,0x0069,0x0074,0x0074,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0030,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x0047,0x0072,0x0065,0x0065,0x006B,0x0043,0x0043,0x0049,0x0054,0x0054,0x00 } + , { 0x004E,0x0043,0x005F,0x004E,0x0043,0x0030,0x0030,0x002D,0x0031,0x0030,0x003A,0x0038,0x0031,0x00 } + , { 0x0063,0x0075,0x0062,0x0061,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0055,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0031,0x0043,0x0075,0x0062,0x0061,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0032,0x0035,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0033,0x0037,0x0041,0x0064,0x0064,0x00 } + , { 0x0047,0x004F,0x0053,0x0054,0x005F,0x0031,0x0039,0x0037,0x0036,0x0038,0x002D,0x0037,0x0034,0x00 } + , { 0x0053,0x0054,0x005F,0x0053,0x0045,0x0056,0x005F,0x0033,0x0035,0x0038,0x002D,0x0038,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0033,0x0047,0x004F,0x0053,0x0054,0x0031,0x0039,0x0037,0x0036,0x0038,0x0037,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0073,0x0075,0x0070,0x0070,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0034,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x002D,0x0032,0x002D,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0053,0x0075,0x0070,0x0070,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0031,0x0030,0x0033,0x0036,0x0037,0x002D,0x0062,0x006F,0x0078,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0036,0x0037,0x0042,0x006F,0x0078,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0037,0x00 } + , { 0x006C,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x003A,0x0031,0x0039,0x0039,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x006C,0x0061,0x0070,0x00 } + , { 0x006C,0x0061,0x0070,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0038,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0038,0x004C,0x0061,0x0070,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0031,0x0032,0x002D,0x0031,0x0039,0x0039,0x0030,0x00 } + , { 0x0078,0x0030,0x0032,0x0031,0x0032,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0039,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0039,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0031,0x0032,0x0031,0x0039,0x0039,0x0030,0x00 } + , { 0x0044,0x0053,0x005F,0x0032,0x0030,0x0038,0x0039,0x00 } + , { 0x0044,0x0053,0x0032,0x0030,0x0038,0x0039,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x004B,0x00 } + , { 0x0064,0x006B,0x00 } + , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 } + , { 0x0075,0x0073,0x002D,0x0064,0x006B,0x00 } + , { 0x0063,0x0073,0x0055,0x0053,0x0044,0x004B,0x00 } + , { 0x0064,0x006B,0x002D,0x0075,0x0073,0x00 } + , { 0x0063,0x0073,0x0044,0x004B,0x0055,0x0053,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0031,0x00 } + , { 0x0058,0x0030,0x0032,0x0030,0x0031,0x00 } + , { 0x0063,0x0073,0x0048,0x0061,0x006C,0x0066,0x0057,0x0069,0x0064,0x0074,0x0068,0x004B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 } + , { 0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004B,0x0052,0x00 } + , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0032,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0034,0x00 } + , { 0x0063,0x0073,0x0055,0x0043,0x0053,0x0034,0x00 } + , { 0x0044,0x0045,0x0043,0x002D,0x004D,0x0043,0x0053,0x00 } + , { 0x0064,0x0065,0x0063,0x00 } + , { 0x0063,0x0073,0x0044,0x0045,0x0043,0x004D,0x0043,0x0053,0x00 } + , { 0x0068,0x0070,0x002D,0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 } + , { 0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 } + , { 0x0072,0x0038,0x00 } + , { 0x0063,0x0073,0x0048,0x0050,0x0052,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 } + , { 0x006D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 } + , { 0x006D,0x0061,0x0063,0x00 } + , { 0x0063,0x0073,0x004D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 } + , { 0x0063,0x0070,0x0030,0x0033,0x0037,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0075,0x0073,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0061,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0077,0x0074,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x006E,0x006C,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x004E,0x0054,0x00 } + , { 0x0063,0x0070,0x0030,0x0033,0x0038,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 } + , { 0x0043,0x0050,0x0032,0x0037,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0045,0x00 } + , { 0x0043,0x0050,0x0032,0x0037,0x0034,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0052,0x00 } + , { 0x0063,0x0070,0x0032,0x0037,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x0044,0x004B,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x004E,0x004F,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 } + , { 0x0043,0x0050,0x0032,0x0037,0x0038,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0069,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0073,0x0065,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 } + , { 0x0043,0x0050,0x0032,0x0038,0x0030,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0074,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x0045,0x00 } + , { 0x0063,0x0070,0x0032,0x0038,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 } + , { 0x0043,0x0050,0x0032,0x0038,0x0034,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0065,0x0073,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 } + , { 0x0043,0x0050,0x0032,0x0038,0x0035,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0062,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 } + , { 0x0063,0x0070,0x0032,0x0039,0x0030,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 } + , { 0x0063,0x0070,0x0032,0x0039,0x0037,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0072,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 } + , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 } + , { 0x0063,0x0070,0x0034,0x0032,0x0030,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 } + , { 0x0063,0x0070,0x0034,0x0032,0x0033,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0072,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 } + , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 } + , { 0x0063,0x0070,0x0034,0x0032,0x0034,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0068,0x0065,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 } + , { 0x0049,0x0042,0x004D,0x0034,0x0033,0x0037,0x00 } + , { 0x0063,0x0070,0x0034,0x0033,0x0037,0x00 } + , { 0x0034,0x0033,0x0037,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0043,0x006F,0x0064,0x0065,0x0050,0x0061,0x0067,0x0065,0x0034,0x0033,0x0037,0x00 } + , { 0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 } + , { 0x0043,0x0050,0x0035,0x0030,0x0030,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0062,0x0065,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0068,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0037,0x0037,0x0035,0x00 } + , { 0x0063,0x0070,0x0037,0x0037,0x0035,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0037,0x0037,0x0035,0x0042,0x0061,0x006C,0x0074,0x0069,0x0063,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0030,0x00 } + , { 0x0063,0x0070,0x0038,0x0035,0x0030,0x00 } + , { 0x0038,0x0035,0x0030,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0035,0x0030,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 } + , { 0x0063,0x0070,0x0038,0x0035,0x0031,0x00 } + , { 0x0038,0x0035,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0032,0x00 } + , { 0x0063,0x0070,0x0038,0x0035,0x0032,0x00 } + , { 0x0038,0x0035,0x0032,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0070,0x0038,0x0035,0x0032,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 } + , { 0x0063,0x0070,0x0038,0x0035,0x0035,0x00 } + , { 0x0038,0x0035,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 } + , { 0x0063,0x0070,0x0038,0x0035,0x0037,0x00 } + , { 0x0038,0x0035,0x0037,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0030,0x00 } + , { 0x0038,0x0036,0x0030,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0031,0x00 } + , { 0x0038,0x0036,0x0031,0x00 } + , { 0x0063,0x0070,0x002D,0x0069,0x0073,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0032,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0032,0x00 } + , { 0x0038,0x0036,0x0032,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0036,0x0032,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0033,0x00 } + , { 0x0038,0x0036,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0034,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0035,0x00 } + , { 0x0038,0x0036,0x0035,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0036,0x00 } + , { 0x0038,0x0036,0x0036,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 } + , { 0x0043,0x0050,0x0038,0x0036,0x0038,0x00 } + , { 0x0063,0x0070,0x002D,0x0061,0x0072,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 } + , { 0x0063,0x0070,0x0038,0x0036,0x0039,0x00 } + , { 0x0038,0x0036,0x0039,0x00 } + , { 0x0063,0x0070,0x002D,0x0067,0x0072,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 } + , { 0x0043,0x0050,0x0038,0x0037,0x0030,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0072,0x006F,0x0065,0x0063,0x0065,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0079,0x0075,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 } + , { 0x0043,0x0050,0x0038,0x0037,0x0031,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0073,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 } + , { 0x0063,0x0070,0x0038,0x0038,0x0030,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 } + , { 0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 } + , { 0x0063,0x0070,0x0038,0x0039,0x0031,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 } + , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 } + , { 0x0063,0x0070,0x0039,0x0030,0x0033,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 } + , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 } + , { 0x0063,0x0070,0x0039,0x0030,0x0034,0x00 } + , { 0x0039,0x0030,0x0034,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 } + , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 } + , { 0x0043,0x0050,0x0039,0x0030,0x0035,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0074,0x0072,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 } + , { 0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 } + , { 0x0043,0x0050,0x0039,0x0031,0x0038,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0032,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 } + , { 0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 } + , { 0x0043,0x0050,0x0031,0x0030,0x0032,0x0036,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x002D,0x0041,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x0041,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0041,0x002D,0x0046,0x0052,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0043,0x0041,0x0046,0x0052,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x002D,0x0041,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x0041,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x002D,0x0041,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x0041,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0052,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0052,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x0054,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0049,0x0054,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0050,0x0054,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0050,0x0054,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0041,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0041,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0053,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0053,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x004B,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x004B,0x00 } + , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x0053,0x00 } + , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x0053,0x00 } + , { 0x0055,0x004E,0x004B,0x004E,0x004F,0x0057,0x004E,0x002D,0x0038,0x0042,0x0049,0x0054,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0038,0x0042,0x0069,0x0054,0x00 } + , { 0x004D,0x004E,0x0045,0x004D,0x004F,0x004E,0x0049,0x0043,0x00 } + , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x006F,0x006E,0x0069,0x0063,0x00 } + , { 0x004D,0x004E,0x0045,0x004D,0x00 } + , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x00 } + , { 0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 } + , { 0x0063,0x0073,0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 } + , { 0x0056,0x0049,0x0051,0x0052,0x00 } + , { 0x0063,0x0073,0x0056,0x0049,0x0051,0x0052,0x00 } + , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0052,0x00 } + , { 0x0063,0x0073,0x004B,0x004F,0x0049,0x0038,0x0052,0x00 } + , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0055,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 } + , { 0x0043,0x0050,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 } + , { 0x0050,0x0043,0x002D,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x002D,0x0038,0x0035,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 } + , { 0x0043,0x0050,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0039,0x002D,0x002D,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0075,0x0073,0x002D,0x0033,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x0065,0x002D,0x0032,0x0037,0x0033,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x006B,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x006E,0x006F,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0069,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0073,0x0065,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0074,0x002D,0x0032,0x0038,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0065,0x0073,0x002D,0x0032,0x0038,0x0034,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0067,0x0062,0x002D,0x0032,0x0038,0x0035,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0072,0x002D,0x0032,0x0039,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x002D,0x0035,0x0030,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 } + , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 } + , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 } + , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0073,0x002D,0x0038,0x0037,0x0031,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 } + , { 0x0042,0x0069,0x0067,0x0035,0x002D,0x0048,0x004B,0x0053,0x0043,0x0053,0x00 } + , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x00 } + , { 0x0053,0x0043,0x0053,0x0055,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0037,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x0042,0x0045,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x004C,0x0045,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x00 } + , { 0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 } + , { 0x0063,0x0073,0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x0042,0x0045,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x004C,0x0045,0x00 } + , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x002D,0x0055,0x0054,0x0046,0x002D,0x0037,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x0055,0x0054,0x0046,0x0037,0x00 } + , { 0x0055,0x0054,0x0046,0x002D,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0033,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x0039,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x003A,0x0031,0x0039,0x0039,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 } + , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0038,0x00 } + , { 0x0069,0x0073,0x006F,0x002D,0x0063,0x0065,0x006C,0x0074,0x0069,0x0063,0x00 } + , { 0x006C,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0036,0x00 } + , { 0x00 } + , { 0x0047,0x0042,0x004B,0x00 } + , { 0x0043,0x0050,0x0039,0x0033,0x0036,0x00 } + , { 0x004D,0x0053,0x0039,0x0033,0x0036,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0039,0x0033,0x0036,0x00 } + , { 0x0047,0x0042,0x0031,0x0038,0x0030,0x0033,0x0030,0x00 } + , { 0x004A,0x0049,0x0053,0x005F,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 } + , { 0x0063,0x0073,0x004A,0x0049,0x0053,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 } + , { 0x0053,0x0068,0x0069,0x0066,0x0074,0x005F,0x004A,0x0049,0x0053,0x00 } + , { 0x004D,0x0053,0x005F,0x004B,0x0061,0x006E,0x006A,0x0069,0x00 } + , { 0x0063,0x0073,0x0053,0x0068,0x0069,0x0066,0x0074,0x004A,0x0049,0x0053,0x00 } + , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0050,0x0061,0x0063,0x006B,0x0065,0x0064,0x005F,0x0046,0x006F,0x0072,0x006D,0x0061,0x0074,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 } + , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0050,0x006B,0x0064,0x0046,0x006D,0x0074,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 } + , { 0x0045,0x0055,0x0043,0x002D,0x004A,0x0050,0x00 } + , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0046,0x0069,0x0078,0x0065,0x0064,0x005F,0x0057,0x0069,0x0064,0x0074,0x0068,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 } + , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0046,0x0069,0x0078,0x0057,0x0069,0x0064,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0042,0x0061,0x0073,0x0069,0x0063,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x004A,0x002D,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0031,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0038,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0038,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0037,0x0036,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0037,0x0036,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0034,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0034,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0035,0x00 } + , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0035,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0030,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 } + , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0030,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0031,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 } + , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0032,0x00 } + , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 } + , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0035,0x00 } + , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 } + , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 } + , { 0x0063,0x0073,0x0041,0x0064,0x006F,0x0062,0x0065,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 } + , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0055,0x0053,0x00 } + , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0055,0x0053,0x00 } + , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 } + , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 } + , { 0x0050,0x0043,0x0038,0x002D,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x002D,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 } + , { 0x0050,0x0043,0x0038,0x002D,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 } + , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 } + , { 0x0049,0x0042,0x004D,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 } + , { 0x0049,0x0042,0x004D,0x002D,0x0054,0x0068,0x0061,0x0069,0x00 } + , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0054,0x0068,0x0061,0x0069,0x00 } + , { 0x0048,0x0050,0x002D,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 } + , { 0x0063,0x0073,0x0048,0x0050,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 } + , { 0x0048,0x0050,0x002D,0x0050,0x0069,0x002D,0x0066,0x006F,0x006E,0x0074,0x00 } + , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0069,0x0046,0x006F,0x006E,0x0074,0x00 } + , { 0x0048,0x0050,0x002D,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 } + , { 0x0063,0x0073,0x0048,0x0050,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 } + , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 } + , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0053,0x004D,0x0061,0x0074,0x0068,0x00 } + , { 0x0048,0x0050,0x002D,0x0044,0x0065,0x0073,0x006B,0x0054,0x006F,0x0070,0x00 } + , { 0x0063,0x0073,0x0048,0x0050,0x0044,0x0065,0x0073,0x006B,0x0074,0x006F,0x0070,0x00 } + , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x004D,0x0061,0x0074,0x0068,0x00 } + , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x004D,0x0061,0x0074,0x0068,0x00 } + , { 0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x002D,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 } + , { 0x0063,0x0073,0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 } + , { 0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x0031,0x004A,0x00 } + , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004A,0x00 } + , { 0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 } + , { 0x0063,0x0073,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 } + , { 0x0042,0x0069,0x0067,0x0035,0x00 } + , { 0x0063,0x0073,0x0042,0x0069,0x0067,0x0035,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0030,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0031,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0032,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0033,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0034,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0035,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0036,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0037,0x00 } + , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0038,0x00 } + , { 0x0054,0x0049,0x0053,0x002D,0x0036,0x0032,0x0030,0x00 } + , { 0x0048,0x005A,0x002D,0x0047,0x0042,0x002D,0x0032,0x0033,0x0031,0x0032,0x00 } + +}; +const unsigned int gEncodingArraySize = 791; + +XERCES_CPP_NAMESPACE_END + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,326 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: IGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(IGXMLSCANNER_HPP) +#define IGXMLSCANNER_HPP + +#include <xercesc/internal/XMLScanner.hpp> +#include <xercesc/util/KVStringPair.hpp> +#include <xercesc/util/NameIdPool.hpp> +#include <xercesc/util/RefHash3KeysIdPool.hpp> +#include <xercesc/validators/common/Grammar.hpp> +#include <xercesc/validators/schema/SchemaElementDecl.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class DTDElementDecl; +class DTDGrammar; +class DTDValidator; +class SchemaValidator; +class IdentityConstraintHandler; +class IdentityConstraint; +class ContentLeafNameTypeVector; +class SchemaAttDef; +class XMLContentModel; +class XSModel; +class PSVIAttributeList; +class PSVIElement; + +// This is an integrated scanner class, which does DTD/XML Schema grammar +// processing. +class XMLPARSER_EXPORT IGXMLScanner : public XMLScanner +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + IGXMLScanner + ( + XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + IGXMLScanner + ( + XMLDocumentHandler* const docHandler + , DocTypeHandler* const docTypeHandler + , XMLEntityHandler* const entityHandler + , XMLErrorReporter* const errReporter + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + virtual ~IGXMLScanner(); + + // ----------------------------------------------------------------------- + // XMLScanner public virtual methods + // ----------------------------------------------------------------------- + virtual const XMLCh* getName() const; + virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool(); + virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const; + virtual unsigned int resolveQName + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , int& prefixColonPos + ); + virtual void scanDocument + ( + const InputSource& src + ); + virtual bool scanNext(XMLPScanToken& toFill); + virtual Grammar* loadGrammar + ( + const InputSource& src + , const short grammarType + , const bool toCache = false + ); + + virtual Grammar::GrammarType getCurrentGrammarType() const; + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + IGXMLScanner(); + IGXMLScanner(const IGXMLScanner&); + IGXMLScanner& operator=(const IGXMLScanner&); + + // ----------------------------------------------------------------------- + // XMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual void scanCDSection(); + virtual void scanCharData(XMLBuffer& toToUse); + virtual EntityExpRes scanEntityRef + ( + const bool inAttVal + , XMLCh& firstCh + , XMLCh& secondCh + , bool& escaped + ); + virtual void scanDocTypeDecl(); + virtual void scanReset(const InputSource& src); + virtual void sendCharData(XMLBuffer& toSend); + virtual InputSource* resolveSystemId(const XMLCh* const sysId + ,const XMLCh* const pubId); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void commonInit(); + void cleanUp(); + + unsigned int buildAttList + ( + const RefVectorOf<KVStringPair>& providedAttrs + , const unsigned int attCount + , XMLElementDecl* elemDecl + , RefVectorOf<XMLAttr>& toFill + ); + bool normalizeAttValue + ( + const XMLAttDef* const attDef + , const XMLCh* const name + , const XMLCh* const value + , XMLBuffer& toFill + ); + bool normalizeAttRawValue + ( + const XMLCh* const attrName + , const XMLCh* const value + , XMLBuffer& toFill + ); + unsigned int resolvePrefix + ( + const XMLCh* const prefix + , const ElemStack::MapModes mode + ); + unsigned int resolvePrefix + ( + const XMLCh* const prefix + , XMLBuffer& uriBufToFill + , const ElemStack::MapModes mode + ); + void updateNSMap + ( + const XMLCh* const attrName + , const XMLCh* const attrValue + ); + void updateNSMap + ( + const XMLCh* const attrName + , const XMLCh* const attrValue + , const int colonPosition + ); + void scanRawAttrListforNameSpaces(int attCount); + void parseSchemaLocation(const XMLCh* const schemaLocationStr); + void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri); + bool switchGrammar(const XMLCh* const newGrammarNameSpace); + bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv, + const XMLContentModel* const cm, + const unsigned int parentElemDepth); + bool anyAttributeValidation(SchemaAttDef* attWildCard, + unsigned int uriId, + bool& skipThisOne, + bool& laxThisOne); + void resizeElemState(); + void processSchemaLocation(XMLCh* const schemaLoc); + + void resizeRawAttrColonList(); + + unsigned int resolveQNameWithColon + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , const int prefixColonPos + ); + // ----------------------------------------------------------------------- + // Private scanning methods + // ----------------------------------------------------------------------- + bool basicAttrValueScan + ( + const XMLCh* const attrName + , XMLBuffer& toFill + ); + unsigned int rawAttrScan + ( + const XMLCh* const elemName + , RefVectorOf<KVStringPair>& toFill + , bool& isEmpty + ); + bool scanAttValue + ( + const XMLAttDef* const attDef + , const XMLCh* const attrName + , XMLBuffer& toFill + ); + bool scanContent(); + void scanEndTag(bool& gotData); + bool scanStartTag(bool& gotData); + bool scanStartTagNS(bool& gotData); + + // ----------------------------------------------------------------------- + // IdentityConstraints Activation methods + // ----------------------------------------------------------------------- + inline bool toCheckIdentityConstraint() const; + + // ----------------------------------------------------------------------- + // Grammar preparsing methods + // ----------------------------------------------------------------------- + Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false); + Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false); + + // ----------------------------------------------------------------------- + // PSVI handling methods + // ----------------------------------------------------------------------- + void endElementPSVI(SchemaElementDecl* const elemDecl, + DatatypeValidator* const memberDV); + void resetPSVIElemContext(); + + // ----------------------------------------------------------------------- + // Data members + // + // fRawAttrList + // During the initial scan of the attributes we can only do a raw + // scan for key/value pairs. So this vector is used to store them + // until they can be processed (and put into fAttrList.) + // + // fDTDValidator + // The DTD validator instance. + // + // fSchemaValidator + // The Schema validator instance. + // + // fSeeXsi + // This flag indicates a schema has been seen. + // + // fElemState + // fElemStateSize + // Stores an element next state from DFA content model - used for + // wildcard validation + // + // fDTDElemNonDeclPool + // registry of "faulted-in" DTD element decls + // fSchemaElemNonDeclPool + // registry for elements without decls in the grammar + // fElemCount + // count of the number of start tags seen so far (starts at 1). + // Used for duplicate attribute detection/processing of required/defaulted attributes + // fAttDefRegistry + // mapping from XMLAttDef instances to the count of the last + // start tag where they were utilized. + // fUndeclaredAttrRegistry + // mapping of attr QNames to the count of the last start tag in which they occurred + // fUndeclaredAttrRegistryNS + // mapping of namespaceId/localName pairs to the count of the last + // start tag in which they occurred. + // fPSVIAttrList + // PSVI attribute list implementation that needs to be + // filled when a PSVIHandler is registered + // + // ----------------------------------------------------------------------- + bool fSeeXsi; + Grammar::GrammarType fGrammarType; + unsigned int fElemStateSize; + unsigned int* fElemState; + XMLBuffer fContent; + RefVectorOf<KVStringPair>* fRawAttrList; + unsigned int fRawAttrColonListSize; + int* fRawAttrColonList; + DTDValidator* fDTDValidator; + SchemaValidator* fSchemaValidator; + DTDGrammar* fDTDGrammar; + IdentityConstraintHandler* fICHandler; + ValueVectorOf<XMLCh*>* fLocationPairs; + NameIdPool<DTDElementDecl>* fDTDElemNonDeclPool; + RefHash3KeysIdPool<SchemaElementDecl>* fSchemaElemNonDeclPool; + unsigned int fElemCount; + RefHashTableOf<unsigned int>* fAttDefRegistry; + RefHashTableOf<unsigned int>* fUndeclaredAttrRegistry; + RefHash2KeysTableOf<unsigned int>* fUndeclaredAttrRegistryNS; + PSVIAttributeList * fPSVIAttrList; + XSModel* fModel; + PSVIElement* fPSVIElement; + ValueStackOf<bool>* fErrorStack; + PSVIElemContext fPSVIElemContext; +}; + +inline const XMLCh* IGXMLScanner::getName() const +{ + return XMLUni::fgIGXMLScanner; +} + +inline bool IGXMLScanner::toCheckIdentityConstraint() const +{ + return fValidate && fIdentityConstraintChecking && fICHandler; +} + +inline Grammar::GrammarType IGXMLScanner::getCurrentGrammarType() const +{ + return fGrammarType; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerArrayImpl.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,101 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: MemoryManagerArrayImpl.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(MEMORYMANAGERARRAYIMPL_HPP) +#define MEMORYMANAGERARRAYIMPL_HPP + +#include <xercesc/framework/MemoryManager.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +/** + * Configurable memory manager + * + * <p>This is specialized version of a Xerces + * memory manager, which allocates memory using + * using new[](size) syntax. Such memory may + * legally be deleted with delete[]. + * </p> + * <p>This version is used in special cases where it is desired + * that allocated memory be able to be delete[]d. + * </p> + */ + +class XMLUTIL_EXPORT MemoryManagerArrayImpl : public MemoryManager +{ +public: + + /** @name Constructor */ + //@{ + + /** + * Default constructor + */ + MemoryManagerArrayImpl() + { + } + //@} + + /** @name Destructor */ + //@{ + + /** + * Default destructor + */ + virtual ~MemoryManagerArrayImpl() + { + } + //@} + + /** @name The virtual methods in MemoryManager */ + //@{ + + /** + * This method allocates requested memory. + * + * @param size The requested memory size + * + * @return A pointer to the allocated memory + */ + virtual void* allocate(size_t size); + + /** + * This method deallocates memory + * + * @param p The pointer to the allocated memory to be deleted + */ + virtual void deallocate(void* p); + + //@} + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + MemoryManagerArrayImpl(const MemoryManagerArrayImpl&); + MemoryManagerArrayImpl& operator=(const MemoryManagerArrayImpl&); + +}; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerImpl.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,97 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: MemoryManagerImpl.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(MEMORYMANAGERIMPL_HPP) +#define MEMORYMANAGERIMPL_HPP + +#include <xercesc/framework/MemoryManager.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +/** + * Configurable memory manager + * + * <p>This is Xerces default implementation of the memory + * manager interface, which will be instantiated and used + * in the absence of an application's memory manager. + * </p> + */ + +class XMLUTIL_EXPORT MemoryManagerImpl : public MemoryManager +{ +public: + + /** @name Constructor */ + //@{ + + /** + * Default constructor + */ + MemoryManagerImpl() + { + } + //@} + + /** @name Destructor */ + //@{ + + /** + * Default destructor + */ + virtual ~MemoryManagerImpl() + { + } + //@} + + /** @name The virtual methods in MemoryManager */ + //@{ + + /** + * This method allocates requested memory. + * + * @param size The requested memory size + * + * @return A pointer to the allocated memory + */ + virtual void* allocate(size_t size); + + /** + * This method deallocates memory + * + * @param p The pointer to the allocated memory to be deleted + */ + virtual void deallocate(void* p); + + //@} + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + MemoryManagerImpl(const MemoryManagerImpl&); + MemoryManagerImpl& operator=(const MemoryManagerImpl&); + +}; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ReaderMgr.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,436 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: ReaderMgr.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(READERMGR_HPP) +#define READERMGR_HPP + +#include <xercesc/internal/XMLReader.hpp> +#include <xercesc/util/PlatformUtils.hpp> +#include <xercesc/util/RefStackOf.hpp> +#include <xercesc/sax/Locator.hpp> +#include <xercesc/framework/XMLBuffer.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLEntityDecl; +class XMLEntityHandler; +class XMLDocumentHandler; +class XMLScanner; + + +// --------------------------------------------------------------------------- +// This class is used by the scanner. The scanner must deal with expansion +// of entities, some of which are totally different files (external parsed +// entities.) It does so by pushing readers onto a stack. The top reader is +// the one it wants to read out of, but that one must be popped when it is +// empty. To keep that logic from being all over the place, the scanner +// talks to the reader manager, which handles the stack and popping off +// used up readers. +// --------------------------------------------------------------------------- +class XMLPARSER_EXPORT ReaderMgr : public XMemory + , public Locator +{ +public : + // ----------------------------------------------------------------------- + // Class specific types + // ----------------------------------------------------------------------- + struct LastExtEntityInfo : public XMemory + { + const XMLCh* systemId; + const XMLCh* publicId; + XMLSSize_t lineNumber; + XMLSSize_t colNumber; + }; + + + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + ReaderMgr(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + ~ReaderMgr(); + + + // ----------------------------------------------------------------------- + // Convenience scanning methods + // + // This are all convenience methods that work in terms of the core + // character spooling methods. + // ----------------------------------------------------------------------- + bool atEOF() const; + bool getName(XMLBuffer& toFill); + bool getQName(XMLBuffer& toFill, int* colonPosition); + bool getNameToken(XMLBuffer& toFill); + XMLCh getNextChar(); + bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten); + void movePlainContentChars(XMLBuffer &dest); + void getSpaces(XMLBuffer& toFill); + void getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck); + bool isEmpty() const; + bool lookingAtChar(const XMLCh toCheck); + bool lookingAtSpace(); + XMLCh peekNextChar(); + bool skipIfQuote(XMLCh& chGotten); + void skipPastChar(const XMLCh toSkip); + bool skipPastSpaces(bool inDecl = false); + void skipToChar(const XMLCh toSkipTo); + bool skippedChar(const XMLCh toSkip); + bool skippedSpace(); + bool skippedString(const XMLCh* const toSkip); + void skipQuotedString(const XMLCh quoteCh); + XMLCh skipUntilIn(const XMLCh* const listToSkip); + XMLCh skipUntilInOrWS(const XMLCh* const listToSkip); + bool peekString(const XMLCh* const toPeek); + + + // ----------------------------------------------------------------------- + // Control methods + // ----------------------------------------------------------------------- + void cleanStackBackTo(const unsigned int readerNum); + XMLReader* createReader + ( + const InputSource& src + , const bool xmlDecl + , const XMLReader::RefFrom refFrom + , const XMLReader::Types type + , const XMLReader::Sources source + , const bool calcSrsOfs = true + ); + XMLReader* createReader + ( + const XMLCh* const sysId + , const XMLCh* const pubId + , const bool xmlDecl + , const XMLReader::RefFrom refFrom + , const XMLReader::Types type + , const XMLReader::Sources source + , InputSource*& srcToFill + , const bool calcSrcOfs = true + , const bool disableDefaultEntityResolution = false + ); + XMLReader* createReader + ( + const XMLCh* const baseURI + , const XMLCh* const sysId + , const XMLCh* const pubId + , const bool xmlDecl + , const XMLReader::RefFrom refFrom + , const XMLReader::Types type + , const XMLReader::Sources source + , InputSource*& srcToFill + , const bool calcSrcOfs = true + , const bool disableDefaultEntityResolution = false + ); + XMLReader* createIntEntReader + ( + const XMLCh* const sysId + , const XMLReader::RefFrom refFrom + , const XMLReader::Types type + , const XMLCh* const dataBuf + , const unsigned int dataLen + , const bool copyBuf + , const bool calcSrcOfs = true + ); + bool isScanningPERefOutOfLiteral() const; + bool pushReader + ( + XMLReader* const reader + , XMLEntityDecl* const entity + ); + void reset(); + + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + const XMLCh* getCurrentEncodingStr() const; + const XMLEntityDecl* getCurrentEntity() const; + XMLEntityDecl* getCurrentEntity(); + const XMLReader* getCurrentReader() const; + XMLReader* getCurrentReader(); + unsigned int getCurrentReaderNum() const; + unsigned int getReaderDepth() const; + void getLastExtEntityInfo(LastExtEntityInfo& lastInfo) const; + unsigned int getSrcOffset() const; + bool getThrowEOE() const; + + + // ----------------------------------------------------------------------- + // Setter methods + // ----------------------------------------------------------------------- + void setEntityHandler(XMLEntityHandler* const newHandler); + void setThrowEOE(const bool newValue); + void setXMLVersion(const XMLReader::XMLVersion version); + void setStandardUriConformant(const bool newValue); + + // ----------------------------------------------------------------------- + // Implement the SAX Locator interface + // ----------------------------------------------------------------------- + virtual const XMLCh* getPublicId() const; + virtual const XMLCh* getSystemId() const; + virtual XMLSSize_t getLineNumber() const; + virtual XMLSSize_t getColumnNumber() const; + + +private : + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + const XMLReader* getLastExtEntity(const XMLEntityDecl*& itsEntity) const; + bool popReader(); + + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + ReaderMgr(const ReaderMgr&); + ReaderMgr& operator=(const ReaderMgr&); + + // ----------------------------------------------------------------------- + // Private data members + // + // fCurEntity + // This is the current top of stack entity. We pull it off the stack + // and store it here for efficiency. + // + // fCurReader + // This is the current top of stack reader. We pull it off the + // stack and store it here for efficiency. + // + // fEntityHandler + // This is the installed entity handler. Its installed via the + // scanner but he passes it on to us since we need it the most, in + // process of creating external entity readers. + // + // fEntityStack + // We need to keep up with which of the pushed readers are pushed + // entity values that are being spooled. This is done to avoid the + // problem of recursive definitions. This stack consists of refs to + // EntityDecl objects for the pushed entities. + // + // fNextReaderNum + // This is the reader serial number value. Each new reader that is + // created from this reader is given a successive number. This lets + // us catch things like partial markup errors and such. + // + // fReaderStack + // This is the stack of reader references. We own all the readers + // and destroy them when they are used up. + // + // fThrowEOE + // This flag controls whether we throw an exception when we hit an + // end of entity. The scanner doesn't really need to know about ends + // of entities in the int/ext subsets, so it will turn this flag off + // until it gets into the content usually. + // + // fXMLVersion + // Enum to indicate if each Reader should be created as XML 1.1 or + // XML 1.0 conformant + // + // fStandardUriConformant + // This flag controls whether we force conformant URI + // ----------------------------------------------------------------------- + XMLEntityDecl* fCurEntity; + XMLReader* fCurReader; + XMLEntityHandler* fEntityHandler; + RefStackOf<XMLEntityDecl>* fEntityStack; + unsigned int fNextReaderNum; + RefStackOf<XMLReader>* fReaderStack; + bool fThrowEOE; + XMLReader::XMLVersion fXMLVersion; + bool fStandardUriConformant; + MemoryManager* fMemoryManager; +}; + + + +// --------------------------------------------------------------------------- +// ReaderMgr: Inlined methods +// +// NOTE: We cannot put these in alphabetical and type order as we usually +// do because some of the compilers we have to support are too stupid to +// understand out of order inlines! +// --------------------------------------------------------------------------- +inline unsigned int ReaderMgr::getCurrentReaderNum() const +{ + return fCurReader->getReaderNum(); +} + +inline const XMLReader* ReaderMgr::getCurrentReader() const +{ + return fCurReader; +} + +inline XMLReader* ReaderMgr::getCurrentReader() +{ + return fCurReader; +} + +inline bool ReaderMgr::getName(XMLBuffer& toFill) +{ + toFill.reset(); + return fCurReader->getName(toFill, false); +} + +inline bool ReaderMgr::getQName(XMLBuffer& toFill, int *colonPosition) +{ + toFill.reset(); + return fCurReader->getQName(toFill, colonPosition); +} + +inline bool ReaderMgr::getNameToken(XMLBuffer& toFill) +{ + toFill.reset(); + return fCurReader->getName(toFill, true); +} + +inline bool ReaderMgr::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten) +{ + return fCurReader->getNextCharIfNot(chNotToGet, chGotten); +} + +inline void ReaderMgr::movePlainContentChars(XMLBuffer &dest) +{ + fCurReader->movePlainContentChars(dest); +} + +inline bool ReaderMgr::getThrowEOE() const +{ + return fThrowEOE; +} + +inline unsigned int ReaderMgr::getSrcOffset() const +{ + return fCurReader? fCurReader->getSrcOffset() : 0; +} + +inline bool ReaderMgr::lookingAtChar(const XMLCh chToCheck) +{ + return (chToCheck == peekNextChar()); +} + +inline bool ReaderMgr::lookingAtSpace() +{ + XMLCh c = peekNextChar(); + return fCurReader->isWhitespace(c); +} + +inline void ReaderMgr::setThrowEOE(const bool newValue) +{ + fThrowEOE = newValue; +} + +inline void ReaderMgr::setStandardUriConformant(const bool newValue) +{ + fStandardUriConformant = newValue; +} + +inline bool ReaderMgr::skippedString(const XMLCh* const toSkip) +{ + return fCurReader->skippedString(toSkip); +} + +inline void ReaderMgr::skipToChar(const XMLCh toSkipTo) +{ + XMLCh nextCh = 0; + do + { + // Get chars until we find the one to skip + nextCh = getNextChar(); + } + // Break out at end of input or the char to skip + while((nextCh != toSkipTo) && nextCh!=0); +} + +inline void ReaderMgr::skipPastChar(const XMLCh toSkipPast) +{ + XMLCh nextCh = 0; + do + { + // Get chars until we find the one to skip + nextCh = getNextChar(); + } + while((nextCh != toSkipPast) && nextCh!=0); +} + +inline bool ReaderMgr::peekString(const XMLCh* const toPeek) +{ + return fCurReader->peekString(toPeek); +} + +inline void ReaderMgr::setEntityHandler(XMLEntityHandler* const newHandler) +{ + fEntityHandler = newHandler; +} + +inline void ReaderMgr::setXMLVersion(const XMLReader::XMLVersion version) +{ + fXMLVersion = version; + fCurReader->setXMLVersion(version); +} + +// +// This is a simple class to temporarily change the 'throw at end of entity' +// flag of the reader manager. There are some places where we need to +// turn this on and off on a scoped basis. +// +class XMLPARSER_EXPORT ThrowEOEJanitor +{ +public : + // ----------------------------------------------------------------------- + // Constructors and destructor + // ----------------------------------------------------------------------- + ThrowEOEJanitor(ReaderMgr* mgrTarget, const bool newValue) : + + fOld(mgrTarget->getThrowEOE()) + , fMgr(mgrTarget) + { + mgrTarget->setThrowEOE(newValue); + } + + ~ThrowEOEJanitor() + { + fMgr->setThrowEOE(fOld); + }; + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + ThrowEOEJanitor(const ThrowEOEJanitor&); + ThrowEOEJanitor& operator=(const ThrowEOEJanitor&); + + // ----------------------------------------------------------------------- + // Private data members + // + // fOld + // The previous value of the flag, which we replaced during ctor, + // and will replace during dtor. + // + // fMgr + // A pointer to the reader manager we are going to set/reset the + // flag on. + // ----------------------------------------------------------------------- + bool fOld; + ReaderMgr* fMgr; +}; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/SGXMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,321 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: SGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(SGXMLSCANNER_HPP) +#define SGXMLSCANNER_HPP + +#include <xercesc/internal/XMLScanner.hpp> +#include <xercesc/util/KVStringPair.hpp> +#include <xercesc/util/ValueHashTableOf.hpp> +#include <xercesc/util/RefHash3KeysIdPool.hpp> +#include <xercesc/validators/common/Grammar.hpp> +#include <xercesc/validators/schema/SchemaElementDecl.hpp> + + +XERCES_CPP_NAMESPACE_BEGIN + +class SchemaGrammar; +class SchemaValidator; +class IdentityConstraintHandler; +class IdentityConstraint; +class ContentLeafNameTypeVector; +class SchemaAttDef; +class XMLContentModel; +class XSModel; +class PSVIAttributeList; +class PSVIElement; + +// This is a scanner class, which process XML Schema grammar. +class XMLPARSER_EXPORT SGXMLScanner : public XMLScanner +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + SGXMLScanner + ( + XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + SGXMLScanner + ( + XMLDocumentHandler* const docHandler + , DocTypeHandler* const docTypeHandler + , XMLEntityHandler* const entityHandler + , XMLErrorReporter* const errReporter + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + virtual ~SGXMLScanner(); + + // ----------------------------------------------------------------------- + // XMLScanner public virtual methods + // ----------------------------------------------------------------------- + virtual const XMLCh* getName() const; + virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool(); + virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const; + virtual unsigned int resolveQName + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , int& prefixColonPos + ); + virtual void scanDocument + ( + const InputSource& src + ); + virtual bool scanNext(XMLPScanToken& toFill); + virtual Grammar* loadGrammar + ( + const InputSource& src + , const short grammarType + , const bool toCache = false + ); + virtual Grammar::GrammarType getCurrentGrammarType() const; + +protected: + // ----------------------------------------------------------------------- + // XMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual void scanReset(const InputSource& src); + + // ----------------------------------------------------------------------- + // SGXMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual bool scanStartTag(bool& gotData); + virtual void scanEndTag(bool& gotData); + + // ----------------------------------------------------------------------- + // Helper methods + // ----------------------------------------------------------------------- + unsigned int buildAttList + ( + const RefVectorOf<KVStringPair>& providedAttrs + , const unsigned int attCount + , XMLElementDecl* elemDecl + , RefVectorOf<XMLAttr>& toFill + ); + bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv, + const XMLContentModel* const cm, + const unsigned int parentElemDepth); + unsigned int rawAttrScan + ( + const XMLCh* const elemName + , RefVectorOf<KVStringPair>& toFill + , bool& isEmpty + ); + void updateNSMap + ( + const XMLCh* const attrName + , const XMLCh* const attrValue + ); + unsigned int resolvePrefix + ( + const XMLCh* const prefix + , const ElemStack::MapModes mode + ); + void resizeElemState(); + + void updateNSMap + ( + const XMLCh* const attrName + , const XMLCh* const attrValue + , const int colonPosition + ); + void resizeRawAttrColonList(); + unsigned int resolveQNameWithColon + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , const int prefixColonPos + ); + // ----------------------------------------------------------------------- + // Data members + // + // fRawAttrList + // During the initial scan of the attributes we can only do a raw + // scan for key/value pairs. So this vector is used to store them + // until they can be processed (and put into fAttrList.) + // + // fSchemaValidator + // The Schema validator instance. + // + // fSeeXsi + // This flag indicates a schema has been seen. + // + // fElemState + // fElemStateSize + // Stores an element next state from DFA content model - used for + // wildcard validation + // + // fElemNonDeclPool + // registry for elements without decls in the grammar + // fElemCount + // count of the number of start tags seen so far (starts at 1). + // Used for duplicate attribute detection/processing of required/defaulted attributes + // fAttDefRegistry + // mapping from XMLAttDef instances to the count of the last + // start tag where they were utilized. + // fUndeclaredAttrRegistryNS + // mapping of namespaceId/localName pairs to the count of the last + // start tag in which they occurred. + // fPSVIAttrList + // PSVI attribute list implementation that needs to be + // filled when a PSVIHandler is registered + // + // ----------------------------------------------------------------------- + bool fSeeXsi; + Grammar::GrammarType fGrammarType; + unsigned int fElemStateSize; + unsigned int* fElemState; + XMLBuffer fContent; + ValueHashTableOf<XMLCh>* fEntityTable; + RefVectorOf<KVStringPair>* fRawAttrList; + unsigned int fRawAttrColonListSize; + int* fRawAttrColonList; + SchemaGrammar* fSchemaGrammar; + SchemaValidator* fSchemaValidator; + IdentityConstraintHandler* fICHandler; + RefHash3KeysIdPool<SchemaElementDecl>* fElemNonDeclPool; + unsigned int fElemCount; + RefHashTableOf<unsigned int>* fAttDefRegistry; + RefHash2KeysTableOf<unsigned int>* fUndeclaredAttrRegistryNS; + PSVIAttributeList * fPSVIAttrList; + XSModel* fModel; + PSVIElement* fPSVIElement; + ValueStackOf<bool>* fErrorStack; + PSVIElemContext fPSVIElemContext; + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + SGXMLScanner(); + SGXMLScanner(const SGXMLScanner&); + SGXMLScanner& operator=(const SGXMLScanner&); + + // ----------------------------------------------------------------------- + // XMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual void scanCDSection(); + virtual void scanCharData(XMLBuffer& toToUse); + virtual EntityExpRes scanEntityRef + ( + const bool inAttVal + , XMLCh& firstCh + , XMLCh& secondCh + , bool& escaped + ); + virtual void scanDocTypeDecl(); + virtual void sendCharData(XMLBuffer& toSend); + virtual InputSource* resolveSystemId(const XMLCh* const sysId + ,const XMLCh* const pubId); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void commonInit(); + void cleanUp(); + + bool normalizeAttValue + ( + const XMLAttDef* const attDef + , const XMLCh* const attrName + , const XMLCh* const value + , XMLBuffer& toFill + ); + bool normalizeAttRawValue + ( + const XMLCh* const attrName + , const XMLCh* const value + , XMLBuffer& toFill + ); + unsigned int resolvePrefix + ( + const XMLCh* const prefix + , XMLBuffer& uriBufToFill + , const ElemStack::MapModes mode + ); + void scanRawAttrListforNameSpaces(int attCount); + void parseSchemaLocation(const XMLCh* const schemaLocationStr); + void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri); + bool switchGrammar(const XMLCh* const newGrammarNameSpace); + bool anyAttributeValidation(SchemaAttDef* attWildCard, + unsigned int uriId, + bool& skipThisOne, + bool& laxThisOne); + + // ----------------------------------------------------------------------- + // Private scanning methods + // ----------------------------------------------------------------------- + bool basicAttrValueScan + ( + const XMLCh* const attrName + , XMLBuffer& toFill + ); + bool scanAttValue + ( + const XMLAttDef* const attDef + , XMLBuffer& toFill + ); + bool scanContent(); + + // ----------------------------------------------------------------------- + // IdentityConstraints Activation methods + // ----------------------------------------------------------------------- + inline bool toCheckIdentityConstraint() const; + + // ----------------------------------------------------------------------- + // Grammar preparsing methods + // ----------------------------------------------------------------------- + Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false); + + // ----------------------------------------------------------------------- + // PSVI handling methods + // ----------------------------------------------------------------------- + void endElementPSVI(SchemaElementDecl* const elemDecl, + DatatypeValidator* const memberDV); + void resetPSVIElemContext(); +}; + +inline const XMLCh* SGXMLScanner::getName() const +{ + return XMLUni::fgSGXMLScanner; +} + +inline bool SGXMLScanner::toCheckIdentityConstraint() const +{ + return fValidate && fIdentityConstraintChecking && fICHandler; +} + +inline Grammar::GrammarType SGXMLScanner::getCurrentGrammarType() const +{ + return fGrammarType; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ValidationContextImpl.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,156 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: ValidationContextImpl.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(VALIDATION_CONTEXTIMPL_HPP) +#define VALIDATION_CONTEXTIMPL_HPP + +#include <xercesc/framework/ValidationContext.hpp> + +XERCES_CPP_NAMESPACE_BEGIN +class ElemStack; + +class XMLPARSER_EXPORT ValidationContextImpl : public ValidationContext +{ +public : + // ----------------------------------------------------------------------- + /** @name Virtual destructor for derived classes */ + // ----------------------------------------------------------------------- + //@{ + + /** + * virtual destructor + * + */ + virtual ~ValidationContextImpl(); + + ValidationContextImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager); + + //@} + + // ----------------------------------------------------------------------- + /** @name The ValidationContextImpl Interface */ + // ----------------------------------------------------------------------- + //@{ + + /** + * IDRefList + * + */ + virtual RefHashTableOf<XMLRefInfo>* getIdRefList() const; + + virtual void setIdRefList(RefHashTableOf<XMLRefInfo>* const); + + virtual void clearIdRefList(); + + virtual void addId(const XMLCh * const ); + + virtual void addIdRef(const XMLCh * const ); + + virtual void toCheckIdRefList(bool); + + /** + * EntityDeclPool + * + */ + virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const; + + virtual const NameIdPool<DTDEntityDecl>* setEntityDeclPool(const NameIdPool<DTDEntityDecl>* const); + + virtual void checkEntity(const XMLCh * const ) const; + + + /** + * Union datatype handling + * + */ + + virtual DatatypeValidator * getValidatingMemberType() const; + virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) ; + + /** + * QName datatype handling + * Create default implementations for source code compatibility + */ + virtual bool isPrefixUnknown(XMLCh* prefix); + virtual void setElemStack(ElemStack* elemStack); + + //@} + +private: + // ----------------------------------------------------------------------- + /** name Unimplemented copy constructor and operator= */ + // ----------------------------------------------------------------------- + //@{ + ValidationContextImpl(const ValidationContextImpl& ); + ValidationContextImpl& operator=(const ValidationContextImpl& ); + //@} + + // ----------------------------------------------------------------------- + // Data members + // + // fIDRefList: owned/adopted + // This is a list of XMLRefInfo objects. This member lets us do all + // needed ID-IDREF balancing checks. + // + // fEntityDeclPool: referenced only + // This is a pool of EntityDecl objects, which contains all of the + // general entities that are declared in the DTD subsets, plus the + // default entities (such as > < ...) defined by the XML Standard. + // + // fToAddToList + // fValidatingMemberType + // The member type in a union that actually + // validated some text. Note that the validationContext does not + // own this object, and the value of getValidatingMemberType + // will not be accurate unless the type of the most recently-validated + // element/attribute is in fact a union datatype. + // fElemStack + // Need access to elemstack to look up URI's that are inscope. + // ----------------------------------------------------------------------- + + RefHashTableOf<XMLRefInfo>* fIdRefList; + const NameIdPool<DTDEntityDecl>* fEntityDeclPool; + bool fToCheckIdRefList; + DatatypeValidator * fValidatingMemberType; + ElemStack* fElemStack; + +}; + + + +inline DatatypeValidator * ValidationContextImpl::getValidatingMemberType() const +{ + return fValidatingMemberType; +} + +inline void ValidationContextImpl::setValidatingMemberType(DatatypeValidator * validatingMemberType) +{ + fValidatingMemberType = validatingMemberType; +} + +inline void ValidationContextImpl::setElemStack(ElemStack* elemStack) { + fElemStack = elemStack; +} + +XERCES_CPP_NAMESPACE_END + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttrListImpl.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,97 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: VecAttrListImpl.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(VECATTRLISTIMPL_HPP) +#define VECATTRLISTIMPL_HPP + +#include <xercesc/sax/AttributeList.hpp> +#include <xercesc/framework/XMLAttr.hpp> +#include <xercesc/util/RefVectorOf.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLPARSER_EXPORT VecAttrListImpl : public XMemory, public AttributeList +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + VecAttrListImpl(); + ~VecAttrListImpl(); + + + // ----------------------------------------------------------------------- + // Implementation of the attribute list interface + // ----------------------------------------------------------------------- + virtual unsigned int getLength() const; + virtual const XMLCh* getName(const unsigned int index) const; + virtual const XMLCh* getType(const unsigned int index) const; + virtual const XMLCh* getValue(const unsigned int index) const; + virtual const XMLCh* getType(const XMLCh* const name) const; + virtual const XMLCh* getValue(const XMLCh* const name) const; + virtual const XMLCh* getValue(const char* const name) const; + + + // ----------------------------------------------------------------------- + // Setter methods + // ----------------------------------------------------------------------- + void setVector + ( + const RefVectorOf<XMLAttr>* const srcVec + , const unsigned int count + , const bool adopt = false + ); + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + VecAttrListImpl(const VecAttrListImpl&); + VecAttrListImpl& operator=(const VecAttrListImpl&); + + + // ----------------------------------------------------------------------- + // Private data members + // + // fAdopt + // Indicates whether the passed vector is to be adopted or not. If + // so, we destroy it when we are destroyed (and when a new vector is + // set!) + // + // fCount + // The count of elements in the vector that should be considered + // valid. This is an optimization to allow vector elements to be + // reused over and over but a different count of them be valid for + // each use. + // + // fVector + // The vector that provides the backing for the list. + // ----------------------------------------------------------------------- + bool fAdopt; + unsigned int fCount; + const RefVectorOf<XMLAttr>* fVector; +}; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttributesImpl.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,117 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: VecAttributesImpl.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(VECATTRIBUTESIMPL_HPP) +#define VECATTRIBUTESIMPL_HPP + +#include <xercesc/sax2/Attributes.hpp> +#include <xercesc/framework/XMLAttr.hpp> +#include <xercesc/util/RefVectorOf.hpp> +#include <xercesc/internal/XMLScanner.hpp> +#include <xercesc/framework/XMLBuffer.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLPARSER_EXPORT VecAttributesImpl : public Attributes +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + VecAttributesImpl(); + ~VecAttributesImpl(); + + + // ----------------------------------------------------------------------- + // Implementation of the attributes interface + // ----------------------------------------------------------------------- + virtual unsigned int getLength() const ; + + virtual const XMLCh* getURI(const unsigned int index) const; + virtual const XMLCh* getLocalName(const unsigned int index) const ; + virtual const XMLCh* getQName(const unsigned int index) const ; + virtual const XMLCh* getType(const unsigned int index) const ; + virtual const XMLCh* getValue(const unsigned int index) const ; + + virtual int getIndex(const XMLCh* const uri, const XMLCh* const localPart ) const ; + virtual int getIndex(const XMLCh* const qName ) const ; + + virtual const XMLCh* getType(const XMLCh* const uri, const XMLCh* const localPart ) const ; + virtual const XMLCh* getType(const XMLCh* const qName) const ; + + virtual const XMLCh* getValue(const XMLCh* const qName) const; + virtual const XMLCh* getValue(const XMLCh* const uri, const XMLCh* const localPart ) const ; + + + // ----------------------------------------------------------------------- + // Setter methods + // ----------------------------------------------------------------------- + void setVector + ( + const RefVectorOf<XMLAttr>* const srcVec + , const unsigned int count + , const XMLScanner * const scanner + , const bool adopt = false + ); + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + VecAttributesImpl(const VecAttributesImpl&); + VecAttributesImpl& operator=(const VecAttributesImpl&); + + + // ----------------------------------------------------------------------- + // Private data members + // + // fAdopt + // Indicates whether the passed vector is to be adopted or not. If + // so, we destroy it when we are destroyed (and when a new vector is + // set!) + // + // fCount + // The count of elements in the vector that should be considered + // valid. This is an optimization to allow vector elements to be + // reused over and over but a different count of them be valid for + // each use. + // + // fVector + // The vector that provides the backing for the list. + // + // fScanner + // This is a pointer to the in use Scanner, so that we can resolve + // namespace URIs from UriIds + // + // fURIBuffer + // A temporary buffer which is re-used when getting namespace URI's + // ----------------------------------------------------------------------- + bool fAdopt; + unsigned int fCount; + const RefVectorOf<XMLAttr>* fVector; + const XMLScanner * fScanner ; + //XMLBuffer fURIBuffer ; +}; + +XERCES_CPP_NAMESPACE_END + +#endif // ! VECATTRIBUTESIMPL_HPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,166 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: WFXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(WFXMLSCANNER_HPP) +#define WFXMLSCANNER_HPP + +#include <xercesc/internal/XMLScanner.hpp> +#include <xercesc/util/ValueHashTableOf.hpp> +#include <xercesc/util/ValueVectorOf.hpp> +#include <xercesc/validators/DTD/DTDElementDecl.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + + +// This is a a non-validating scanner. No DOCTYPE or XML Schema processing +// will take place. +class XMLPARSER_EXPORT WFXMLScanner : public XMLScanner +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + WFXMLScanner + ( + XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + WFXMLScanner + ( + XMLDocumentHandler* const docHandler + , DocTypeHandler* const docTypeHandler + , XMLEntityHandler* const entityHandler + , XMLErrorReporter* const errReporter + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + virtual ~WFXMLScanner(); + + // ----------------------------------------------------------------------- + // XMLScanner public virtual methods + // ----------------------------------------------------------------------- + virtual const XMLCh* getName() const; + virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool(); + virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const; + virtual unsigned int resolveQName + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , int& prefixColonPos + ); + virtual void scanDocument + ( + const InputSource& src + ); + virtual bool scanNext(XMLPScanToken& toFill); + virtual Grammar* loadGrammar + ( + const InputSource& src + , const short grammarType + , const bool toCache = false + ); + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + WFXMLScanner(); + WFXMLScanner(const WFXMLScanner&); + WFXMLScanner& operator=(const WFXMLScanner&); + + // ----------------------------------------------------------------------- + // XMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual void scanCDSection(); + virtual void scanCharData(XMLBuffer& toToUse); + virtual EntityExpRes scanEntityRef + ( + const bool inAttVal + , XMLCh& firstCh + , XMLCh& secondCh + , bool& escaped + ); + virtual void scanDocTypeDecl(); + virtual void scanReset(const InputSource& src); + virtual void sendCharData(XMLBuffer& toSend); + virtual InputSource* resolveSystemId(const XMLCh* const sysId + ,const XMLCh* const pubId); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void commonInit(); + void cleanUp(); + unsigned int resolvePrefix + ( + const XMLCh* const prefix + , const ElemStack::MapModes mode + ); + + // ----------------------------------------------------------------------- + // Private scanning methods + // ----------------------------------------------------------------------- + bool scanAttValue + ( + const XMLCh* const attrName + , XMLBuffer& toFill + ); + bool scanContent(); + void scanEndTag(bool& gotData); + bool scanStartTag(bool& gotData); + bool scanStartTagNS(bool& gotData); + + // ----------------------------------------------------------------------- + // Data members + // + // fEntityTable + // This the table that contains the default entity entries. + // + // fAttrNameHashList + // This contains the hash value for attribute names. It's used when + // checking for duplicate attributes. + // + // fAttrNSList + // This contains XMLAttr objects that we need to map their prefixes + // to URIs when namespace is enabled. + // + // ----------------------------------------------------------------------- + unsigned int fElementIndex; + RefVectorOf<XMLElementDecl>* fElements; + ValueHashTableOf<XMLCh>* fEntityTable; + ValueVectorOf<unsigned int>* fAttrNameHashList; + ValueVectorOf<XMLAttr*>* fAttrNSList; + RefHashTableOf<XMLElementDecl>* fElementLookup; +}; + +inline const XMLCh* WFXMLScanner::getName() const +{ + return XMLUni::fgWFXMLScanner; +} + + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,303 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XMLGrammarPoolImpl.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XMLGrammarPoolImplIMPL_HPP) +#define XMLGrammarPoolImplIMPL_HPP + +#include <xercesc/framework/XMLGrammarPool.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLSynchronizedStringPool; + +class XMLUTIL_EXPORT XMLGrammarPoolImpl : public XMLGrammarPool +{ +public : + // ----------------------------------------------------------------------- + /** @name constructor and destructor */ + // ----------------------------------------------------------------------- + //@{ + + XMLGrammarPoolImpl(MemoryManager* const memMgr); + + ~XMLGrammarPoolImpl(); + //@} + + // ----------------------------------------------------------------------- + /** @name Implementation of Grammar Pool Interface */ + // ----------------------------------------------------------------------- + //@{ + + /** + * cacheGrammar + * + * Provide the grammar pool with an opportunity + * to cache the given grammar. If the pool does not choose to do so, + * it should return false; otherwise, it should return true, so that + * the caller knows whether the grammar has been adopted. + * + * @param gramToCache: the Grammar to be cached in the grammar pool + * @return true if the grammar pool has elected to cache the grammar (in which case + * it is assumed to have adopted it); false if it does not cache it + * + */ + virtual bool cacheGrammar(Grammar* const gramToCache); + + + /** + * retrieveGrammar + * + * @param gramDesc: the Grammar Description used to search for grammar + * cached in the grammar pool + * + */ + virtual Grammar* retrieveGrammar(XMLGrammarDescription* const gramDesc); + + + /** + * orphanGrammar + * + * grammar removed from the grammar pool and owned by the caller + * + * @param nameSpaceKey: Key used to search for grammar in the grammar pool + * + */ + virtual Grammar* orphanGrammar(const XMLCh* const nameSpaceKey); + + + /** + * Get an enumeration of the cached Grammars in the Grammar pool + * + * @return enumeration of the cached Grammars in Grammar pool + */ + virtual RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const; + + /** + * clear + * + * all grammars are removed from the grammar pool and deleted. + * @return true if the grammar pool was cleared. false if it did not. + */ + virtual bool clear(); + + /** + * lockPool + * + * When this method is called by the application, the + * grammar pool should stop adding new grammars to the cache. + */ + virtual void lockPool(); + + /** + * unlockPool + * + * After this method has been called, the grammar pool implementation + * should return to its default behaviour when cacheGrammars(...) is called. + * + * For PSVI support any previous XSModel that was produced will be deleted. + */ + virtual void unlockPool(); + + //@} + + // ----------------------------------------------------------------------- + /** @name Implementation of Factory interface */ + // ----------------------------------------------------------------------- + //@{ + + /** + * createDTDGrammar + * + */ + virtual DTDGrammar* createDTDGrammar(); + + /** + * createSchemaGrammar + * + */ + virtual SchemaGrammar* createSchemaGrammar(); + + /** + * createDTDDescription + * + */ + virtual XMLDTDDescription* createDTDDescription(const XMLCh* const systemId); + /** + * createSchemaDescription + * + */ + virtual XMLSchemaDescription* createSchemaDescription(const XMLCh* const targetNamespace); + //@} + + // ----------------------------------------------------------------------- + /** @name schema component model support */ + // ----------------------------------------------------------------------- + //@{ + + /*** + * Return an XSModel derived from the components of all SchemaGrammars + * in the grammar pool. If the pool is locked, this should + * be a thread-safe operation. It should return null if and only if + * the pool is empty. + * + * Calling getXSModel() on an unlocked grammar pool may result in the + * creation of a new XSModel with the old XSModel being deleted. The + * function will return a different address for the XSModel if it has + * changed. + * + * In this implementation, when the pool is not locked a new XSModel will be + * computed each this time the pool is called if the pool has changed (and the + * previous one will be destroyed at that time). When the lockPool() + * method is called, an XSModel will be generated and returned whenever this method is called + * while the pool is in the locked state. This will be destroyed if the unlockPool() + * operation is called. The XSModel will not be serialized, + * but will be recreated if a deserialized pool is in the + * locked state. + * + * @deprecated (shouldn't use address to determine if XSModel changed) + */ + virtual XSModel *getXSModel(); + + /*** + * Return an XSModel derived from the components of all SchemaGrammars + * in the grammar pool. If the pool is locked, this should + * be a thread-safe operation. + * + * NOTE: The function should NEVER return NULL. If there are no grammars in + * the pool it should return an XSModel containing the Schema for Schema. + * + * Calling getXSModel() on an unlocked grammar pool may result in the + * creation of a new XSModel with the old XSModel being deleted. + * The bool parameter will indicate if the XSModel was changed. + * + * In this implementation, when the pool is not locked a new XSModel will be + * computed each this time the pool is called if the pool has changed (and the + * previous one will be destroyed at that time). When the lockPool() + * method is called, an XSModel will be generated and returned whenever this method is called + * while the pool is in the locked state. This will be destroyed if the unlockPool() + * operation is called. The XSModel will not be serialized, + * but will be recreated if a deserialized pool is in the + * locked state. + * + */ + virtual XSModel *getXSModel(bool& XSModelWasChanged); + + // @} + // ----------------------------------------------------------------------- + /** @name Getter */ + // ----------------------------------------------------------------------- + //@{ + + /** + * Return an XMLStringPool for use by validation routines. + * Implementations should not create a string pool on each call to this + * method, but should maintain one string pool for all grammars + * for which this pool is responsible. + */ + virtual XMLStringPool *getURIStringPool(); + + // @} + + // ----------------------------------------------------------------------- + // serialization and deserialization support + // ----------------------------------------------------------------------- + + /*** + * + * Multiple serializations + * + * For multiple serializations, if the same file name is given, then the + * last result will be in the file (overwriting mode), if different file + * names are given, then there are multiple data stores for each serialization. + * + * Multiple deserializations + * + * Not supported + * + * Versioning + * + * Only binary data serialized with the current XercesC Version and + * SerializationLevel is supported. + * + * Clean up + * + * In the event of an exception thrown due to a corrupted data store during + * deserialization, this implementation may not be able to clean up all resources + * allocated, and therefore it is the client application's responsibility to + * clean up those unreleased resources. + * + * Coupling of Grammars and StringPool + * + * This implementation assumes that StringPool shall always be + * serialized/deserialized together with the grammars. In the case that such a + * coupling is not desired, client application can modify this behaviour by + * either derivate from this imlementation and overwrite the serializeGrammars() + * and/or deserializeGrammars() to decouple grammars and string pool, or + * Once deserializeGrammars() is done, insert another StringPool through + * setStringPool(). + * + * Client application shall be aware of the unpredicatable/undefined consequence + * of this decoupling. + */ + + virtual void serializeGrammars(BinOutputStream* const); + virtual void deserializeGrammars(BinInputStream* const); + +private: + + virtual void createXSModel(); + + void + cleanUp(); + + // ----------------------------------------------------------------------- + /** name Unimplemented copy constructor and operator= */ + // ----------------------------------------------------------------------- + //@{ + XMLGrammarPoolImpl(const XMLGrammarPoolImpl& ); + XMLGrammarPoolImpl& operator=(const XMLGrammarPoolImpl& ); + //@} + + // ----------------------------------------------------------------------- + // + // fGrammarRegistry: + // + // container + // fStringPool + // grammars need a string pool for URI -> int mappings + // fSynchronizedStringPool + // When the grammar pool is locked, provide a string pool + // that can be updated in a thread-safe manner. + // fLocked + // whether the pool has been locked + // + // ----------------------------------------------------------------------- + RefHashTableOf<Grammar>* fGrammarRegistry; + XMLStringPool* fStringPool; + XMLSynchronizedStringPool* fSynchronizedStringPool; + XSModel* fXSModel; + bool fLocked; + bool fXSModelIsValid; +}; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLInternalErrorHandler.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,139 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XMLInternalErrorHandler.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XMLINTERNALERRORHANDLER_HPP) +#define XMLINTERNALERRORHANDLER_HPP + +#include <xercesc/util/XercesDefs.hpp> +#include <xercesc/sax/ErrorHandler.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLInternalErrorHandler : public ErrorHandler +{ +public: + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + XMLInternalErrorHandler(ErrorHandler* userHandler = 0) : + fSawWarning(false), + fSawError(false), + fSawFatal(false), + fUserErrorHandler(userHandler) + { + } + + ~XMLInternalErrorHandler() + { + } + + // ----------------------------------------------------------------------- + // Implementation of the error handler interface + // ----------------------------------------------------------------------- + void warning(const SAXParseException& toCatch); + void error(const SAXParseException& toCatch); + void fatalError(const SAXParseException& toCatch); + void resetErrors(); + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + bool getSawWarning() const; + bool getSawError() const; + bool getSawFatal() const; + + // ----------------------------------------------------------------------- + // Private data members + // + // fSawWarning + // This is set if we get any warning, and is queryable via a getter + // method. + // + // fSawError + // This is set if we get any errors, and is queryable via a getter + // method. + // + // fSawFatal + // This is set if we get any fatal, and is queryable via a getter + // method. + // + // fUserErrorHandler + // This is the error handler from user + // ----------------------------------------------------------------------- + bool fSawWarning; + bool fSawError; + bool fSawFatal; + ErrorHandler* fUserErrorHandler; + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + XMLInternalErrorHandler(const XMLInternalErrorHandler&); + XMLInternalErrorHandler& operator=(const XMLInternalErrorHandler&); +}; + +inline bool XMLInternalErrorHandler::getSawWarning() const +{ + return fSawWarning; +} + +inline bool XMLInternalErrorHandler::getSawError() const +{ + return fSawError; +} + +inline bool XMLInternalErrorHandler::getSawFatal() const +{ + return fSawFatal; +} + +inline void XMLInternalErrorHandler::warning(const SAXParseException& toCatch) +{ + fSawWarning = true; + if (fUserErrorHandler) + fUserErrorHandler->warning(toCatch); +} + +inline void XMLInternalErrorHandler::error(const SAXParseException& toCatch) +{ + fSawError = true; + if (fUserErrorHandler) + fUserErrorHandler->error(toCatch); +} + +inline void XMLInternalErrorHandler::fatalError(const SAXParseException& toCatch) +{ + fSawFatal = true; + if (fUserErrorHandler) + fUserErrorHandler->fatalError(toCatch); +} + +inline void XMLInternalErrorHandler::resetErrors() +{ + fSawWarning = false; + fSawError = false; + fSawFatal = false; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLReader.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,783 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XMLReader.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XMLREADER_HPP) +#define XMLREADER_HPP + +#include <xercesc/util/XMLChar.hpp> +#include <xercesc/framework/XMLRecognizer.hpp> +#include <xercesc/framework/XMLBuffer.hpp> +#include <xercesc/util/TranscodingException.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class InputSource; +class BinInputStream; +class ReaderMgr; +class XMLScanner; +class XMLTranscoder; + + +// --------------------------------------------------------------------------- +// Instances of this class are used to manage the content of entities. The +// scanner maintains a stack of these, one for each entity (this means entity +// in the sense of any parsed file or internal entity) currently being +// scanned. This class, given a binary input stream will handle reading in +// the data and decoding it from its external decoding into the internal +// Unicode format. Once internallized, this class provides the access +// methods to read in the data in various ways, maintains line and column +// information, and provides high performance character attribute checking +// methods. +// +// This is NOT to be derived from. +// +// --------------------------------------------------------------------------- +class XMLPARSER_EXPORT XMLReader : public XMemory +{ +public: + // ----------------------------------------------------------------------- + // Public types + // ----------------------------------------------------------------------- + enum Types + { + Type_PE + , Type_General + }; + + enum Sources + { + Source_Internal + , Source_External + }; + + enum RefFrom + { + RefFrom_Literal + , RefFrom_NonLiteral + }; + + enum XMLVersion + { + XMLV1_0 + , XMLV1_1 + , XMLV_Unknown + }; + + + // ----------------------------------------------------------------------- + // Public, query methods + // ----------------------------------------------------------------------- + bool isAllSpaces + ( + const XMLCh* const toCheck + , const unsigned int count + ) const; + + bool containsWhiteSpace + ( + const XMLCh* const toCheck + , const unsigned int count + ) const; + + + bool isXMLLetter(const XMLCh toCheck) const; + bool isFirstNameChar(const XMLCh toCheck) const; + bool isNameChar(const XMLCh toCheck) const; + bool isPlainContentChar(const XMLCh toCheck) const; + bool isSpecialStartTagChar(const XMLCh toCheck) const; + bool isXMLChar(const XMLCh toCheck) const; + bool isWhitespace(const XMLCh toCheck) const; + bool isControlChar(const XMLCh toCheck) const; + bool isPublicIdChar(const XMLCh toCheck) const; + bool isFirstNCNameChar(const XMLCh toCheck) const; + bool isNCNameChar(const XMLCh toCheck) const; + + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + XMLReader + ( + const XMLCh* const pubId + , const XMLCh* const sysId + , BinInputStream* const streamToAdopt + , const RefFrom from + , const Types type + , const Sources source + , const bool throwAtEnd = false + , const bool calculateSrcOfs = true + , const XMLVersion xmlVersion = XMLV1_0 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + XMLReader + ( + const XMLCh* const pubId + , const XMLCh* const sysId + , BinInputStream* const streamToAdopt + , const XMLCh* const encodingStr + , const RefFrom from + , const Types type + , const Sources source + , const bool throwAtEnd = false + , const bool calculateSrcOfs = true + , const XMLVersion xmlVersion = XMLV1_0 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + XMLReader + ( + const XMLCh* const pubId + , const XMLCh* const sysId + , BinInputStream* const streamToAdopt + , XMLRecognizer::Encodings encodingEnum + , const RefFrom from + , const Types type + , const Sources source + , const bool throwAtEnd = false + , const bool calculateSrcOfs = true + , const XMLVersion xmlVersion = XMLV1_0 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + ~XMLReader(); + + + // ----------------------------------------------------------------------- + // Character buffer management methods + // ----------------------------------------------------------------------- + unsigned long charsLeftInBuffer() const; + bool refreshCharBuffer(); + + + // ----------------------------------------------------------------------- + // Scanning methods + // ----------------------------------------------------------------------- + bool getName(XMLBuffer& toFill, const bool token); + bool getQName(XMLBuffer& toFill, int* colonPosition); + bool getNextChar(XMLCh& chGotten); + bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten); + void movePlainContentChars(XMLBuffer &dest); + bool getSpaces(XMLBuffer& toFill); + bool getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck); + bool peekNextChar(XMLCh& chGotten); + bool skipIfQuote(XMLCh& chGotten); + bool skipSpaces(bool& skippedSomething, bool inDecl = false); + bool skippedChar(const XMLCh toSkip); + bool skippedSpace(); + bool skippedString(const XMLCh* const toSkip); + bool peekString(const XMLCh* const toPeek); + + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + XMLSSize_t getColumnNumber() const; + const XMLCh* getEncodingStr() const; + XMLSSize_t getLineNumber() const; + bool getNoMoreFlag() const; + const XMLCh* getPublicId() const; + unsigned int getReaderNum() const; + RefFrom getRefFrom() const; + Sources getSource() const; + unsigned int getSrcOffset() const; + const XMLCh* getSystemId() const; + bool getThrowAtEnd() const; + Types getType() const; + + + // ----------------------------------------------------------------------- + // Setter methods + // ----------------------------------------------------------------------- + bool setEncoding + ( + const XMLCh* const newEncoding + ); + void setReaderNum(const unsigned int newNum); + void setThrowAtEnd(const bool newValue); + void setXMLVersion(const XMLVersion version); + + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + XMLReader(const XMLReader&); + XMLReader& operator=(const XMLReader&); + + // --------------------------------------------------------------------------- + // Class Constants + // + // kCharBufSize + // The size of the character spool buffer that we use. Its not terribly + // large because its just getting filled with data from a raw byte + // buffer as we go along. We don't want to decode all the text at + // once before we find out that there is an error. + // + // NOTE: This is a size in characters, not bytes. + // + // kRawBufSize + // The size of the raw buffer from which raw bytes are spooled out + // as we transcode chunks of data. As it is emptied, it is filled back + // in again from the source stream. + // --------------------------------------------------------------------------- + enum Constants + { + kCharBufSize = 16 * 1024 + , kRawBufSize = 48 * 1024 + }; + + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void checkForSwapped(); + + void doInitCharSizeChecks(); + + void doInitDecode(); + + XMLByte getNextRawByte + ( + const bool eoiOk + ); + + void refreshRawBuffer(); + + void setTranscoder + ( + const XMLCh* const newEncoding + ); + + unsigned int xcodeMoreChars + ( + XMLCh* const bufToFill + , unsigned char* const charSizes + , const unsigned int maxChars + ); + + void handleEOL + ( + XMLCh& curCh + , bool inDecl = false + ); + + // ----------------------------------------------------------------------- + // Data members + // + // fCharIndex + // The index into the character buffer. When this hits fCharsAvail + // then its time to refill. + // + // fCharBuf + // A buffer that the reader manager fills up with transcoded + // characters a small amount at a time. + // + // fCharsAvail + // The characters currently available in the character buffer. + // + // fCharSizeBuf + // This buffer is an array that contains the number of source chars + // eaten to create each char in the fCharBuf buffer. So the entry + // fCharSizeBuf[x] is the number of source chars that were eaten + // to make the internalized char fCharBuf[x]. This only contains + // useful data if fSrcOfsSupported is true. + // + // fCharOfsBuf + // This buffer is an array that contains the offset in the + // fRawByteBuf buffer of each char in the fCharBuf buffer. It + // only contains useful data if fSrcOfsSupported is true. + // + // fCurCol + // fCurLine + // The current line and column that we are in within this reader's + // text. + // + // fEncoding + // This is the rough encoding setting. This enum is set during + // construction and just tells us the rough family of encoding that + // we are doing. + // + // fEncodingStr + // This is the name of the encoding we are using. It will be + // provisionally set during construction, from the auto-sensed + // encoding. But it might be overridden when the XMLDecl is finally + // seen by the scanner. It can also be forced to a particular + // encoding, in which case fForcedEncoding is set. + // + // fForcedEncoding + // If the encoding if forced then this is set and all other + // information will be ignored. This encoding will be taken as + // gospel. This is done by calling an alternate constructor. + // + // fNoMore + // This is set when the source text is exhausted. It lets us know + // quickly that no more text is available. + // + // fRawBufIndex + // The current index into the raw byte buffer. When its equal to + // fRawBytesAvail then we need to read another buffer. + // + // fRawByteBuf + // This is the raw byte buffer that is used to spool out bytes + // from into the fCharBuf buffer, as we transcode in blocks. + // + // fRawBytesAvail + // The number of bytes currently available in the raw buffer. This + // helps deal with the last buffer's worth, which will usually not + // be a full one. + // + // fReaderNum + // Each reader from a particular reader manager (which means from a + // particular document) is given a unique number. The reader manager + // sets these numbers. They are used to catch things like partial + // markup errors. + // + // fRefFrom + // This flag is provided in the ctor, and tells us if we represent + // some entity being expanded inside a literal. Sometimes things + // happen differently inside and outside literals. + // + // fPublicId + // fSystemId + // These are the system and public ids of the source that this + // reader is reading. + // + // fSentTrailingSpace + // If we are a PE entity being read and we not referenced from a + // literal, then a leading and trailing space must be faked into the + // data. This lets us know we've done the trailing space already (so + // we don't just keep doing it again and again.) + // + // fSource + // Indicates whether the content this reader is spooling as already + // been internalized. This will prevent multiple processing of + // whitespace when an already internalized entity is being spooled + // out. + // + // fSpareChar + // Some encodings can create two chars in an atomic way, e.g. + // surrogate pairs. We might not be able to store both, so we store + // it here until the next buffer transcoding operation. + // + // fSrcOfsBase + // This is the base offset within the source of this entity. Values + // in the curent fCharSizeBuf array are relative to this value. + // + // fSrcOfsSupported + // This flag is set to indicate whether source byte offset info + // is supported. For intrinsic encodings, its always set since we + // can always support it. For transcoder based encodings, we ask + // the transcoder if it supports it or not. + // + // fStream + // This is the input stream that provides the data for the reader. + // Its always treated as a raw byte stream. The derived class will + // ask for buffers of text from it and will handle making some + // sense of it. + // + // fSwapped + // If the encoding is one of the ones we do intrinsically, and its + // in a different byte order from our native order, then this is + // set to remind us to byte swap it during transcoding. + // + // fThrowAtEnd + // Indicates whether the reader manager should throw an end of entity + // exception at the end of this reader instance. This is usually + // set for top level external entity references. It overrides the + // reader manager's global flag that controls throwing at the end + // of entities. Defaults to false. + // + // fTranscoder + // If the encoding is not one that we handle intrinsically, then + // we use an an external transcoder to do it. This class is an + // abstraction that allows us to use pluggable external transcoding + // services (via XMLTransService in util.) + // + // fType + // Indicates whether this reader represents a PE or not. If this + // flag is true and the fInLiteral flag is false, then we will put + // out an extra space at the end. + // + // fgCharCharsTable; + // Pointer to XMLChar table, depends on XML version + // + // fNEL + // Boolean indicates if NEL and LSEP should be recognized as NEL + // + // fXMLVersion + // Enum to indicate if this Reader is conforming to XML 1.0 or XML 1.1 + // ----------------------------------------------------------------------- + unsigned int fCharIndex; + XMLCh fCharBuf[kCharBufSize]; + unsigned int fCharsAvail; + unsigned char fCharSizeBuf[kCharBufSize]; + unsigned int fCharOfsBuf[kCharBufSize]; + XMLSSize_t fCurCol; + XMLSSize_t fCurLine; + XMLRecognizer::Encodings fEncoding; + XMLCh* fEncodingStr; + bool fForcedEncoding; + bool fNoMore; + XMLCh* fPublicId; + unsigned int fRawBufIndex; + XMLByte fRawByteBuf[kRawBufSize]; + unsigned int fRawBytesAvail; + unsigned int fReaderNum; + RefFrom fRefFrom; + bool fSentTrailingSpace; + Sources fSource; + unsigned int fSrcOfsBase; + bool fSrcOfsSupported; + bool fCalculateSrcOfs; + XMLCh* fSystemId; + BinInputStream* fStream; + bool fSwapped; + bool fThrowAtEnd; + XMLTranscoder* fTranscoder; + Types fType; + XMLByte* fgCharCharsTable; + bool fNEL; + XMLVersion fXMLVersion; + MemoryManager* fMemoryManager; +}; + + +// --------------------------------------------------------------------------- +// XMLReader: Public, query methods +// --------------------------------------------------------------------------- +inline bool XMLReader::isNameChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gNameCharMask) != 0); +} + +inline bool XMLReader::isNCNameChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gNCNameCharMask) != 0); +} + +inline bool XMLReader::isPlainContentChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gPlainContentCharMask) != 0); +} + + +inline bool XMLReader::isFirstNameChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0); +} + +inline bool XMLReader::isFirstNCNameChar(const XMLCh toCheck) const +{ + return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0) + && (toCheck != chColon)); +} + +inline bool XMLReader::isSpecialStartTagChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gSpecialStartTagCharMask) != 0); +} + +inline bool XMLReader::isXMLChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gXMLCharMask) != 0); +} + +inline bool XMLReader::isXMLLetter(const XMLCh toCheck) const +{ + return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0) + && (toCheck != chColon) && (toCheck != chUnderscore)); +} + +inline bool XMLReader::isWhitespace(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gWhitespaceCharMask) != 0); +} + +inline bool XMLReader::isControlChar(const XMLCh toCheck) const +{ + return ((fgCharCharsTable[toCheck] & gControlCharMask) != 0); +} + +// --------------------------------------------------------------------------- +// XMLReader: Buffer management methods +// --------------------------------------------------------------------------- +inline unsigned long XMLReader::charsLeftInBuffer() const +{ + return fCharsAvail - fCharIndex; +} + + +// --------------------------------------------------------------------------- +// XMLReader: Getter methods +// --------------------------------------------------------------------------- +inline XMLSSize_t XMLReader::getColumnNumber() const +{ + return fCurCol; +} + +inline const XMLCh* XMLReader::getEncodingStr() const +{ + return fEncodingStr; +} + +inline XMLSSize_t XMLReader::getLineNumber() const +{ + return fCurLine; +} + +inline bool XMLReader::getNoMoreFlag() const +{ + return fNoMore; +} + +inline const XMLCh* XMLReader::getPublicId() const +{ + return fPublicId; +} + +inline unsigned int XMLReader::getReaderNum() const +{ + return fReaderNum; +} + +inline XMLReader::RefFrom XMLReader::getRefFrom() const +{ + return fRefFrom; +} + +inline XMLReader::Sources XMLReader::getSource() const +{ + return fSource; +} + +inline const XMLCh* XMLReader::getSystemId() const +{ + return fSystemId; +} + +inline bool XMLReader::getThrowAtEnd() const +{ + return fThrowAtEnd; +} + +inline XMLReader::Types XMLReader::getType() const +{ + return fType; +} + +// --------------------------------------------------------------------------- +// XMLReader: Setter methods +// --------------------------------------------------------------------------- +inline void XMLReader::setReaderNum(const unsigned int newNum) +{ + fReaderNum = newNum; +} + +inline void XMLReader::setThrowAtEnd(const bool newValue) +{ + fThrowAtEnd = newValue; +} + +inline void XMLReader::setXMLVersion(const XMLVersion version) +{ + fXMLVersion = version; + if (version == XMLV1_1) { + fNEL = true; + fgCharCharsTable = XMLChar1_1::fgCharCharsTable1_1; + } + else { + fNEL = XMLChar1_0::enableNEL; + fgCharCharsTable = XMLChar1_0::fgCharCharsTable1_0; + } + +} + + + +// --------------------------------------------------------------------------- +// +// XMLReader: movePlainContentChars() +// +// Move as many plain (no special handling of any sort required) content +// characters as possible from this reader to the supplied destination buffer. +// +// This is THE hottest performance spot in the parser. +// +// --------------------------------------------------------------------------- +inline void XMLReader::movePlainContentChars(XMLBuffer &dest) +{ + unsigned int count = fCharIndex; + + while (fCharIndex < fCharsAvail) + { + if (!isPlainContentChar(fCharBuf[fCharIndex])) + break; + fCharIndex++; + } + + if (count != fCharIndex) + { + fCurCol += (fCharIndex - count); + dest.append(&fCharBuf[count], fCharIndex - count); + } +} + + +// --------------------------------------------------------------------------- +// XMLReader: getNextCharIfNot() method inlined for speed +// --------------------------------------------------------------------------- +inline bool XMLReader::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten) +{ + // + // See if there is at least a char in the buffer. Else, do the buffer + // reload logic. + // + if (fCharIndex >= fCharsAvail) + { + // If fNoMore is set, then we have nothing else to give + if (fNoMore) + return false; + + // Try to refresh + if (!refreshCharBuffer()) + return false; + } + + // Check the next char + if (fCharBuf[fCharIndex] == chNotToGet) + return false; + + // Its not the one we want to skip so bump the index + chGotten = fCharBuf[fCharIndex++]; + + // Handle end of line normalization and line/col member maintenance. + // + // we can have end-of-line combinations with a leading + // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028) + // + // 0000000000001101 chCR + // 0000000000001010 chLF + // 0000000010000101 chNEL + // 0010000000101000 chLineSeparator + // ----------------------- + // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator) + // + // if the result of the logical-& operation is + // true : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator + // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator + // + if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) ) + { + fCurCol++; + } else + { + handleEOL(chGotten, false); + } + + return true; +} + +// --------------------------------------------------------------------------- +// XMLReader: getNextChar() method inlined for speed +// --------------------------------------------------------------------------- +inline bool XMLReader::getNextChar(XMLCh& chGotten) +{ + // + // See if there is at least a char in the buffer. Else, do the buffer + // reload logic. + // + if (fCharIndex >= fCharsAvail) + { + // If fNoMore is set, then we have nothing else to give + if (fNoMore) + return false; + + // Try to refresh + if (!refreshCharBuffer()) + return false; + } + + chGotten = fCharBuf[fCharIndex++]; + + // Handle end of line normalization and line/col member maintenance. + // + // we can have end-of-line combinations with a leading + // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028) + // + // 0000000000001101 chCR + // 0000000000001010 chLF + // 0000000010000101 chNEL + // 0010000000101000 chLineSeparator + // ----------------------- + // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator) + // + // if the result of the logical-& operation is + // true : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator + // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator + // + if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) ) + { + fCurCol++; + } else + { + handleEOL(chGotten, false); + } + + return true; +} + + +// --------------------------------------------------------------------------- +// XMLReader: peekNextChar() method inlined for speed +// --------------------------------------------------------------------------- +inline bool XMLReader::peekNextChar(XMLCh& chGotten) +{ + // + // If there is something still in the buffer, get it. Else do the reload + // scenario. + // + if (fCharIndex >= fCharsAvail) + { + // Try to refresh the buffer + if (!refreshCharBuffer()) + { + chGotten = chNull; + return false; + } + } + + chGotten = fCharBuf[fCharIndex]; + + // + // Even though we are only peeking, we have to act the same as the + // normal char get method in regards to newline normalization, though + // its not as complicated as the actual character getting method's. + // + if ((chGotten == chCR || (fNEL && (chGotten == chNEL || chGotten == chLineSeparator))) + && (fSource == Source_External)) + chGotten = chLF; + + return true; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,1388 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XMLSCANNER_HPP) +#define XMLSCANNER_HPP + +#include <xercesc/framework/XMLBufferMgr.hpp> +#include <xercesc/framework/XMLErrorCodes.hpp> +#include <xercesc/framework/XMLRefInfo.hpp> +#include <xercesc/util/PlatformUtils.hpp> +#include <xercesc/util/NameIdPool.hpp> +#include <xercesc/util/RefHashTableOf.hpp> +#include <xercesc/util/SecurityManager.hpp> +#include <xercesc/internal/ReaderMgr.hpp> +#include <xercesc/internal/ElemStack.hpp> +#include <xercesc/validators/DTD/DTDEntityDecl.hpp> +#include <xercesc/framework/XMLAttr.hpp> +#include <xercesc/framework/ValidationContext.hpp> +#include <xercesc/validators/common/GrammarResolver.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class InputSource; +class XMLDocumentHandler; +class XMLEntityHandler; +class ErrorHandler; +class DocTypeHandler; +class XMLPScanToken; +class XMLStringPool; +class Grammar; +class XMLValidator; +class MemoryManager; +class PSVIHandler; + + +struct PSVIElemContext +{ + bool fIsSpecified; + bool fErrorOccurred; + int fElemDepth; + int fFullValidationDepth; + int fNoneValidationDepth; + DatatypeValidator* fCurrentDV; + ComplexTypeInfo* fCurrentTypeInfo; + const XMLCh* fNormalizedValue; +}; + +// This is the mondo scanner class, which does the vast majority of the +// work of parsing. It handles reading in input and spitting out events +// to installed handlers. +class XMLPARSER_EXPORT XMLScanner : public XMemory, public XMLBufferFullHandler +{ +public : + // ----------------------------------------------------------------------- + // Public class types + // + // NOTE: These should really be private, but some of the compilers we + // have to deal with are too stupid to understand this. + // + // DeclTypes + // Used by scanXMLDecl() to know what type of decl it should scan. + // Text decls have slightly different rules from XMLDecls. + // + // EntityExpRes + // These are the values returned from the entity expansion method, + // to indicate how it went. + // + // XMLTokens + // These represent the possible types of input we can get while + // scanning content. + // + // ValScheme + // This indicates what the scanner should do in terms of validation. + // 'Auto' means if there is any int/ext subset, then validate. Else, + // don't. + // ----------------------------------------------------------------------- + enum DeclTypes + { + Decl_Text + , Decl_XML + }; + + enum EntityExpRes + { + EntityExp_Pushed + , EntityExp_Returned + , EntityExp_Failed + }; + + enum XMLTokens + { + Token_CData + , Token_CharData + , Token_Comment + , Token_EndTag + , Token_EOF + , Token_PI + , Token_StartTag + , Token_Unknown + }; + + enum ValSchemes + { + Val_Never + , Val_Always + , Val_Auto + }; + + + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + XMLScanner + ( + XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + XMLScanner + ( + XMLDocumentHandler* const docHandler + , DocTypeHandler* const docTypeHandler + , XMLEntityHandler* const entityHandler + , XMLErrorReporter* const errReporter + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + virtual ~XMLScanner(); + + + // ----------------------------------------------------------------------- + // Error emitter methods + // ----------------------------------------------------------------------- + bool emitErrorWillThrowException(const XMLErrs::Codes toEmit); + void emitError(const XMLErrs::Codes toEmit); + void emitError + ( + const XMLErrs::Codes toEmit + , const XMLCh* const text1 + , const XMLCh* const text2 = 0 + , const XMLCh* const text3 = 0 + , const XMLCh* const text4 = 0 + ); + void emitError + ( + const XMLErrs::Codes toEmit + , const char* const text1 + , const char* const text2 = 0 + , const char* const text3 = 0 + , const char* const text4 = 0 + ); + void emitError + ( + const XMLErrs::Codes toEmit + , const XMLExcepts::Codes originalErrorCode + , const XMLCh* const text1 = 0 + , const XMLCh* const text2 = 0 + , const XMLCh* const text3 = 0 + , const XMLCh* const text4 = 0 + ); + + // ----------------------------------------------------------------------- + // Implementation of XMLBufferFullHandler interface + // ----------------------------------------------------------------------- + + virtual bool bufferFull(XMLBuffer& toSend) + { + sendCharData(toSend); + return true; + } + + virtual Grammar::GrammarType getCurrentGrammarType() const; + + // ----------------------------------------------------------------------- + // Public pure virtual methods + // ----------------------------------------------------------------------- + virtual const XMLCh* getName() const = 0; + virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool() = 0; + virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const = 0; + virtual unsigned int resolveQName + ( + const XMLCh* const qName + , XMLBuffer& prefixBufToFill + , const short mode + , int& prefixColonPos + ) = 0; + virtual void scanDocument + ( + const InputSource& src + ) = 0; + virtual bool scanNext(XMLPScanToken& toFill) = 0; + virtual Grammar* loadGrammar + ( + const InputSource& src + , const short grammarType + , const bool toCache = false + ) = 0; + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + const XMLDocumentHandler* getDocHandler() const; + XMLDocumentHandler* getDocHandler(); + const DocTypeHandler* getDocTypeHandler() const; + DocTypeHandler* getDocTypeHandler(); + bool getDoNamespaces() const; + ValSchemes getValidationScheme() const; + bool getDoSchema() const; + bool getValidationSchemaFullChecking() const; + bool getIdentityConstraintChecking() const; + const XMLEntityHandler* getEntityHandler() const; + XMLEntityHandler* getEntityHandler(); + const XMLErrorReporter* getErrorReporter() const; + XMLErrorReporter* getErrorReporter(); + const ErrorHandler* getErrorHandler() const; + ErrorHandler* getErrorHandler(); + const PSVIHandler* getPSVIHandler() const; + PSVIHandler* getPSVIHandler(); + bool getExitOnFirstFatal() const; + bool getValidationConstraintFatal() const; + RefHashTableOf<XMLRefInfo>* getIDRefList(); + const RefHashTableOf<XMLRefInfo>* getIDRefList() const; + + ValidationContext* getValidationContext(); + + bool getInException() const; + /*bool getLastExtLocation + ( + XMLCh* const sysIdToFill + , const unsigned int maxSysIdChars + , XMLCh* const pubIdToFill + , const unsigned int maxPubIdChars + , XMLSSize_t& lineToFill + , XMLSSize_t& colToFill + ) const;*/ + const Locator* getLocator() const; + const ReaderMgr* getReaderMgr() const; + unsigned int getSrcOffset() const; + bool getStandalone() const; + const XMLValidator* getValidator() const; + XMLValidator* getValidator(); + int getErrorCount(); + const XMLStringPool* getURIStringPool() const; + XMLStringPool* getURIStringPool(); + bool getHasNoDTD() const; + XMLCh* getExternalSchemaLocation() const; + XMLCh* getExternalNoNamespaceSchemaLocation() const; + SecurityManager* getSecurityManager() const; + bool getLoadExternalDTD() const; + bool getNormalizeData() const; + bool isCachingGrammarFromParse() const; + bool isUsingCachedGrammarInParse() const; + bool getCalculateSrcOfs() const; + Grammar* getRootGrammar() const; + XMLReader::XMLVersion getXMLVersion() const; + MemoryManager* getMemoryManager() const; + ValueVectorOf<PrefMapElem*>* getNamespaceContext() const; + unsigned int getPrefixId(const XMLCh* const prefix) const; + const XMLCh* getPrefixForId(unsigned int prefId) const; + + bool getGenerateSyntheticAnnotations() const; + bool getValidateAnnotations() const; + bool getIgnoreCachedDTD() const; + bool getIgnoreAnnotations() const; + bool getDisableDefaultEntityResolution() const; + bool getSkipDTDValidation() const; + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + /** + * When an attribute name has no prefix, unlike elements, it is not mapped + * to the global namespace. So, in order to have something to map it to + * for practical purposes, a id for an empty URL is created and used for + * such names. + * + * @return The URL pool id of the URL for an empty URL "". + */ + unsigned int getEmptyNamespaceId() const; + + /** + * When a prefix is found that has not been mapped, an error is issued. + * However, if the parser has been instructed not to stop on the first + * fatal error, it needs to be able to continue. To do so, it will map + * that prefix tot his magic unknown namespace id. + * + * @return The URL pool id of the URL for the unknown prefix + * namespace. + */ + unsigned int getUnknownNamespaceId() const; + + /** + * The prefix 'xml' is a magic prefix, defined by the XML spec and + * requiring no prior definition. This method returns the id for the + * intrinsically defined URL for this prefix. + * + * @return The URL pool id of the URL for the 'xml' prefix. + */ + unsigned int getXMLNamespaceId() const; + + /** + * The prefix 'xmlns' is a magic prefix, defined by the namespace spec + * and requiring no prior definition. This method returns the id for the + * intrinsically defined URL for this prefix. + * + * @return The URL pool id of the URL for the 'xmlns' prefix. + */ + unsigned int getXMLNSNamespaceId() const; + + /** + * This method find the passed URI id in its URI pool and + * copy the text of that URI into the passed buffer. + */ + bool getURIText + ( + const unsigned int uriId + , XMLBuffer& uriBufToFill + ) const; + + const XMLCh* getURIText(const unsigned int uriId) const; + + /* tell if the validator comes from user */ + bool isValidatorFromUser(); + + /* tell if standard URI are forced */ + bool getStandardUriConformant() const; + + // ----------------------------------------------------------------------- + // Setter methods + // ----------------------------------------------------------------------- + void setDocHandler(XMLDocumentHandler* const docHandler); + void setDocTypeHandler(DocTypeHandler* const docTypeHandler); + void setDoNamespaces(const bool doNamespaces); + void setEntityHandler(XMLEntityHandler* const docTypeHandler); + void setErrorReporter(XMLErrorReporter* const errHandler); + void setErrorHandler(ErrorHandler* const handler); + void setPSVIHandler(PSVIHandler* const handler); + void setURIStringPool(XMLStringPool* const stringPool); + void setExitOnFirstFatal(const bool newValue); + void setValidationConstraintFatal(const bool newValue); + void setValidationScheme(const ValSchemes newScheme); + void setValidator(XMLValidator* const valToAdopt); + void setDoSchema(const bool doSchema); + void setValidationSchemaFullChecking(const bool schemaFullChecking); + void setIdentityConstraintChecking(const bool identityConstraintChecking); + void setHasNoDTD(const bool hasNoDTD); + void cacheGrammarFromParse(const bool newValue); + void useCachedGrammarInParse(const bool newValue); + void setRootElemName(XMLCh* rootElemName); + void setExternalSchemaLocation(const XMLCh* const schemaLocation); + void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation); + void setExternalSchemaLocation(const char* const schemaLocation); + void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation); + void setSecurityManager(SecurityManager* const securityManager); + void setLoadExternalDTD(const bool loadDTD); + void setNormalizeData(const bool normalizeData); + void setCalculateSrcOfs(const bool newValue); + void setParseSettings(XMLScanner* const refScanner); + void setStandardUriConformant(const bool newValue); + void setInputBufferSize(const size_t bufferSize); + + void setGenerateSyntheticAnnotations(const bool newValue); + void setValidateAnnotations(const bool newValue); + void setIgnoredCachedDTD(const bool newValue); + void setIgnoreAnnotations(const bool newValue); + void setDisableDefaultEntityResolution(const bool newValue); + void setSkipDTDValidation(const bool newValue); + + // ----------------------------------------------------------------------- + // Mutator methods + // ----------------------------------------------------------------------- + void incrementErrorCount(void); // For use by XMLValidator + + // ----------------------------------------------------------------------- + // Deprecated methods as of 3.2.0. Use getValidationScheme() and + // setValidationScheme() instead. + // ----------------------------------------------------------------------- + bool getDoValidation() const; + void setDoValidation(const bool validate); + + // ----------------------------------------------------------------------- + // Document scanning methods + // + // scanDocument() does the entire source document. scanFirst(), + // scanNext(), and scanReset() support a progressive parse. + // ----------------------------------------------------------------------- + void scanDocument + ( + const XMLCh* const systemId + ); + void scanDocument + ( + const char* const systemId + ); + + bool scanFirst + ( + const InputSource& src + , XMLPScanToken& toFill + ); + bool scanFirst + ( + const XMLCh* const systemId + , XMLPScanToken& toFill + ); + bool scanFirst + ( + const char* const systemId + , XMLPScanToken& toFill + ); + + void scanReset(XMLPScanToken& toFill); + + bool checkXMLDecl(bool startWithAngle); + + // ----------------------------------------------------------------------- + // Grammar preparsing methods + // ----------------------------------------------------------------------- + Grammar* loadGrammar + ( + const XMLCh* const systemId + , const short grammarType + , const bool toCache = false + ); + Grammar* loadGrammar + ( + const char* const systemId + , const short grammarType + , const bool toCache = false + ); + + // ----------------------------------------------------------------------- + // Notification that lazy data has been deleted + // ----------------------------------------------------------------------- + static void reinitScannerMutex(); + static void reinitMsgLoader(); + +protected: + // ----------------------------------------------------------------------- + // Protected pure virtual methods + // ----------------------------------------------------------------------- + virtual void scanCDSection() = 0; + virtual void scanCharData(XMLBuffer& toToUse) = 0; + virtual EntityExpRes scanEntityRef + ( + const bool inAttVal + , XMLCh& firstCh + , XMLCh& secondCh + , bool& escaped + ) = 0; + virtual void scanDocTypeDecl() = 0; + virtual void scanReset(const InputSource& src) = 0; + virtual void sendCharData(XMLBuffer& toSend) = 0; + + //return owned by the caller + virtual InputSource* resolveSystemId(const XMLCh* const /*sysId*/ + ,const XMLCh* const /*pubId*/) {return 0;}; + + // ----------------------------------------------------------------------- + // Protected scanning methods + // ----------------------------------------------------------------------- + bool scanCharRef(XMLCh& toFill, XMLCh& second); + void scanComment(); + bool scanEq(bool inDecl = false); + void scanMiscellaneous(); + void scanPI(); + void scanProlog(); + void scanXMLDecl(const DeclTypes type); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void checkInternalDTD(bool hasExtSubset, const XMLCh* const sysId, const XMLCh* const pubId); + void checkIDRefs(); + bool isLegalToken(const XMLPScanToken& toCheck); + XMLTokens senseNextToken(unsigned int& orgReader); + void initValidator(XMLValidator* theValidator); + inline void resetValidationContext(); + unsigned int *getNewUIntPtr(); + void resetUIntPool(); + void recreateUIntPool(); + + inline + void setAttrDupChkRegistry + ( + const unsigned int &attrNumber + , bool &toUseHashTable + ); + + // ----------------------------------------------------------------------- + // Data members + // + // fBufferSize + // Maximum input buffer size + // + // fAttrList + // Every time we get a new element start tag, we have to pass to + // the document handler the attributes found. To make it more + // efficient we keep this ref vector of XMLAttr objects around. We + // just reuse it over and over, allowing it to grow to meet the + // peak need. + // + // fBufMgr + // This is a manager for temporary buffers used during scanning. + // For efficiency we must use a set of static buffers, but we have + // to insure that they are not incorrectly reused. So this manager + // provides the smarts to hand out buffers as required. + // + // fDocHandler + // The client code's document handler. If zero, then no document + // handler callouts are done. We don't adopt it. + // + // fDocTypeHandler + // The client code's document type handler (used by DTD Validator). + // + // fDoNamespaces + // This flag indicates whether the client code wants us to do + // namespaces or not. If the installed validator indicates that it + // has to do namespaces, then this is ignored. + // + // fEntityHandler + // The client code's entity handler. If zero, then no entity handler + // callouts are done. We don't adopt it. + // + // fErrorReporter + // The client code's error reporter. If zero, then no error reporter + // callouts are done. We don't adopt it. + // + // fErrorHandler + // The client code's error handler. Need to store this info for + // Schema parse error handling. + // + // fPSVIHandler + // The client code's PSVI handler. + // + // fExitOnFirstFatal + // This indicates whether we bail out on the first fatal XML error + // or not. It defaults to true, which is the strict XML way, but it + // can be changed. + // + // fValidationConstraintFatal + // This indicates whether we treat validation constraint errors as + // fatal errors or not. It defaults to false, but it can be changed. + // + // fIDRefList + // This is a list of XMLRefInfo objects. This member lets us do all + // needed ID-IDREF balancing checks. + // + // fInException + // To avoid a circular freakout when we catch an exception and emit + // it, which would normally throw again if the 'fail on first error' + // flag is one. + // + // fReaderMgr + // This is the reader manager, from which we get characters. It + // manages the reader stack for us, and provides a lot of convenience + // methods to do specialized checking for chars, sequences of chars, + // skipping chars, etc... + // + // fScannerId + // fSequenceId + // These are used for progressive parsing, to make sure that the + // client code does the right thing at the right time. + // + // fStandalone + // Indicates whether the document is standalone or not. Defaults to + // no, but can be overridden in the XMLDecl. + // + // fHasNoDTD + // Indicates the document has no DTD or has only an internal DTD subset + // which contains no parameter entity references. + // + // fValidate + // Indicates whether any validation should be done. This is defined + // by the existence of a Grammar together with fValScheme. + // + // fValidator + // The installed validator. We look at them via the abstract + // validator interface, and don't know what it actual is. + // Either point to user's installed validator, or fDTDValidator + // or fSchemaValidator. + // + // fValidatorFromUser + // This flag indicates whether the validator was installed from + // user. If false, then the validator was created by the Scanner. + // + // fValScheme + // This is the currently set validation scheme. It defaults to + // 'never', but can be set by the client. + // + // fErrorCount + // The number of errors we've encountered. + // + // fDoSchema + // This flag indicates whether the client code wants Schema to + // be processed or not. + // + // fSchemaFullChecking + // This flag indicates whether the client code wants full Schema + // constraint checking. + // + // fIdentityConstraintChecking + // This flag indicates whether the client code wants Identity + // Constraint checking, defaulted to true to maintain backward + // compatibility (to minimize supprise) + // + // fAttName + // fAttValue + // fCDataBuf + // fNameBuf + // fQNameBuf + // fPrefixBuf + // For the most part, buffers are obtained from the fBufMgr object + // on the fly. However, for the start tag scan, we have a set of + // fixed buffers for performance reasons. These are used a lot and + // there are a number of them, so asking the buffer manager each + // time for new buffers is a bit too much overhead. + // + // fEmptyNamespaceId + // This is the id of the empty namespace URI. This is a special one + // because of the xmlns="" type of deal. We have to quickly sense + // that its the empty namespace. + // + // fUnknownNamespaceId + // This is the id of the namespace URI which is assigned to the + // global namespace. Its for debug purposes only, since there is no + // real global namespace URI. Its set by the derived class. + // + // fXMLNamespaceId + // fXMLNSNamespaceId + // These are the ids of the namespace URIs which are assigned to the + // 'xml' and 'xmlns' special prefixes. The former is officially + // defined but the latter is not, so we just provide one for debug + // purposes. + // + // fSchemaNamespaceId + // This is the id of the schema namespace URI. + // + // fGrammarResolver + // Grammar Pool that stores all the grammars. Key is namespace for + // schema and system id for external DTD. When caching a grammar, if + // a grammar is already in the pool, it will be replaced with the + // new parsed one. + // + // fGrammar + // Current Grammar used by the Scanner and Validator + // + // fRootGrammar + // The grammar where the root element is declared. + // + // fGrammarType + // Current Grammar Type. Store this value instead of calling getGrammarType + // all the time for faster performance. + // + // fURIStringPool + // This is a pool for URIs with unique ids assigned. We use a standard + // string pool class. This pool is going to be shared by all Grammar. + // Use only if namespace is turned on. + // + // fRootElemName + // No matter we are using DTD or Schema Grammar, if a DOCTYPE exists, + // we need to verify the root element name. So store the rootElement + // that is used in the DOCTYPE in the Scanner instead of in the DTDGrammar + // where it used to + // + // fExternalSchemaLocation + // The list of Namespace/SchemaLocation that was specified externally + // using setExternalSchemaLocation. + // + // fExternalNoNamespaceSchemaLocation + // The no target namespace XML Schema Location that was specified + // externally using setExternalNoNamespaceSchemaLocation. + // + // fSecurityManager + // The SecurityManager instance; as and when set by the application. + // + // fEntityExpansionLimit + // The number of entity expansions to be permitted while processing this document + // Only meaningful when fSecurityManager != 0 + // + // fEntityExpansionCount + // The number of general entities expanded so far in this document. + // Only meaningful when fSecurityManager != null + // + // fLoadExternalDTD + // This flag indicates whether the external DTD be loaded or not + // + // fNormalizeData + // This flag indicates whether the parser should perform datatype + // normalization that is defined in the schema. + // + // fCalculateSrcOfs + // This flag indicates the parser should calculate the source offset. + // Turning this on may impact performance. + // + // fStandardUriConformant + // This flag controls whether we force conformant URI + // + // fXMLVersion + // Enum to indicate if the main doc is XML 1.1 or XML 1.0 conformant + // fUIntPool + // pool of unsigned integers to help with duplicate attribute + // detection and filling in default/fixed attributes + // fUIntPoolRow + // current row in fUIntPool + // fUIntPoolCol + // current column i row + // fUIntPoolRowTotal + // total number of rows in table + // + // fMemoryManager + // Pluggable memory manager for dynamic allocation/deallocation. + // + // ----------------------------------------------------------------------- + size_t fBufferSize; + bool fStandardUriConformant; + bool fCalculateSrcOfs; + bool fDoNamespaces; + bool fExitOnFirstFatal; + bool fValidationConstraintFatal; + bool fInException; + bool fStandalone; + bool fHasNoDTD; + bool fValidate; + bool fValidatorFromUser; + bool fDoSchema; + bool fSchemaFullChecking; + bool fIdentityConstraintChecking; + bool fToCacheGrammar; + bool fUseCachedGrammar; + bool fLoadExternalDTD; + bool fNormalizeData; + bool fGenerateSyntheticAnnotations; + bool fValidateAnnotations; + bool fIgnoreCachedDTD; + bool fIgnoreAnnotations; + bool fDisableDefaultEntityResolution; + bool fSkipDTDValidation; + int fErrorCount; + unsigned int fEntityExpansionLimit; + unsigned int fEntityExpansionCount; + unsigned int fEmptyNamespaceId; + unsigned int fUnknownNamespaceId; + unsigned int fXMLNamespaceId; + unsigned int fXMLNSNamespaceId; + unsigned int fSchemaNamespaceId; + unsigned int ** fUIntPool; + unsigned int fUIntPoolRow; + unsigned int fUIntPoolCol; + unsigned int fUIntPoolRowTotal; + XMLUInt32 fScannerId; + XMLUInt32 fSequenceId; + RefVectorOf<XMLAttr>* fAttrList; + RefHash2KeysTableOf<XMLAttr>* fAttrDupChkRegistry; + XMLDocumentHandler* fDocHandler; + DocTypeHandler* fDocTypeHandler; + XMLEntityHandler* fEntityHandler; + XMLErrorReporter* fErrorReporter; + ErrorHandler* fErrorHandler; + PSVIHandler* fPSVIHandler; + ValidationContext *fValidationContext; + bool fEntityDeclPoolRetrieved; + ReaderMgr fReaderMgr; + XMLValidator* fValidator; + ValSchemes fValScheme; + GrammarResolver* const fGrammarResolver; + MemoryManager* const fGrammarPoolMemoryManager; + Grammar* fGrammar; + Grammar* fRootGrammar; + XMLStringPool* fURIStringPool; + XMLCh* fRootElemName; + XMLCh* fExternalSchemaLocation; + XMLCh* fExternalNoNamespaceSchemaLocation; + SecurityManager* fSecurityManager; + XMLReader::XMLVersion fXMLVersion; + MemoryManager* fMemoryManager; + XMLBufferMgr fBufMgr; + XMLBuffer fAttNameBuf; + XMLBuffer fAttValueBuf; + XMLBuffer fCDataBuf; + XMLBuffer fQNameBuf; + XMLBuffer fPrefixBuf; + XMLBuffer fURIBuf; + XMLBuffer fWSNormalizeBuf; + ElemStack fElemStack; + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + XMLScanner(); + XMLScanner(const XMLScanner&); + XMLScanner& operator=(const XMLScanner&); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void commonInit(); + void cleanUp(); + + // ----------------------------------------------------------------------- + // Private scanning methods + // ----------------------------------------------------------------------- + bool getQuotedString(XMLBuffer& toFill); + unsigned int scanUpToWSOr + ( + XMLBuffer& toFill + , const XMLCh chEndChar + ); +}; + +// --------------------------------------------------------------------------- +// XMLScanner: Getter methods +// --------------------------------------------------------------------------- +inline const XMLDocumentHandler* XMLScanner::getDocHandler() const +{ + return fDocHandler; +} + +inline XMLDocumentHandler* XMLScanner::getDocHandler() +{ + return fDocHandler; +} + +inline const DocTypeHandler* XMLScanner::getDocTypeHandler() const +{ + return fDocTypeHandler; +} + +inline DocTypeHandler* XMLScanner::getDocTypeHandler() +{ + return fDocTypeHandler; +} + +inline bool XMLScanner::getDoNamespaces() const +{ + return fDoNamespaces; +} + +inline const XMLEntityHandler* XMLScanner::getEntityHandler() const +{ + return fEntityHandler; +} + +inline XMLEntityHandler* XMLScanner::getEntityHandler() +{ + return fEntityHandler; +} + +inline const XMLErrorReporter* XMLScanner::getErrorReporter() const +{ + return fErrorReporter; +} + +inline XMLErrorReporter* XMLScanner::getErrorReporter() +{ + return fErrorReporter; +} + +inline const ErrorHandler* XMLScanner::getErrorHandler() const +{ + return fErrorHandler; +} + +inline ErrorHandler* XMLScanner::getErrorHandler() +{ + return fErrorHandler; +} + +inline const PSVIHandler* XMLScanner::getPSVIHandler() const +{ + return fPSVIHandler; +} + +inline PSVIHandler* XMLScanner::getPSVIHandler() +{ + return fPSVIHandler; +} + +inline bool XMLScanner::getExitOnFirstFatal() const +{ + return fExitOnFirstFatal; +} + +inline bool XMLScanner::getValidationConstraintFatal() const +{ + return fValidationConstraintFatal; +} + +inline bool XMLScanner::getInException() const +{ + return fInException; +} + +inline RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList() +{ + return fValidationContext->getIdRefList(); +} + +inline const RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList() const +{ + return fValidationContext->getIdRefList(); +} + +inline ValidationContext* XMLScanner::getValidationContext() +{ + if (!fEntityDeclPoolRetrieved) + { + fValidationContext->setEntityDeclPool(getEntityDeclPool()); + fEntityDeclPoolRetrieved = true; + } + + return fValidationContext; +} + +inline const Locator* XMLScanner::getLocator() const +{ + return &fReaderMgr; +} + +inline const ReaderMgr* XMLScanner::getReaderMgr() const +{ + return &fReaderMgr; +} + +inline unsigned int XMLScanner::getSrcOffset() const +{ + return fReaderMgr.getSrcOffset(); +} + +inline bool XMLScanner::getStandalone() const +{ + return fStandalone; +} + +inline XMLScanner::ValSchemes XMLScanner::getValidationScheme() const +{ + return fValScheme; +} + +inline const XMLValidator* XMLScanner::getValidator() const +{ + return fValidator; +} + +inline XMLValidator* XMLScanner::getValidator() +{ + return fValidator; +} + +inline bool XMLScanner::getDoSchema() const +{ + return fDoSchema; +} + +inline bool XMLScanner::getValidationSchemaFullChecking() const +{ + return fSchemaFullChecking; +} + +inline bool XMLScanner::getIdentityConstraintChecking() const +{ + return fIdentityConstraintChecking; +} + +inline int XMLScanner::getErrorCount() +{ + return fErrorCount; +} + +inline bool XMLScanner::isValidatorFromUser() +{ + return fValidatorFromUser; +} + +inline unsigned int XMLScanner::getEmptyNamespaceId() const +{ + return fEmptyNamespaceId; +} + +inline unsigned int XMLScanner::getUnknownNamespaceId() const +{ + return fUnknownNamespaceId; +} + +inline unsigned int XMLScanner::getXMLNamespaceId() const +{ + return fXMLNamespaceId; +} + +inline unsigned int XMLScanner::getXMLNSNamespaceId() const +{ + return fXMLNSNamespaceId; +} + +inline const XMLStringPool* XMLScanner::getURIStringPool() const +{ + return fURIStringPool; +} + +inline XMLStringPool* XMLScanner::getURIStringPool() +{ + return fURIStringPool; +} + +inline bool XMLScanner::getHasNoDTD() const +{ + return fHasNoDTD; +} + +inline XMLCh* XMLScanner::getExternalSchemaLocation() const +{ + return fExternalSchemaLocation; +} + +inline XMLCh* XMLScanner::getExternalNoNamespaceSchemaLocation() const +{ + return fExternalNoNamespaceSchemaLocation; +} + +inline SecurityManager* XMLScanner::getSecurityManager() const +{ + return fSecurityManager; +} + +inline bool XMLScanner::getLoadExternalDTD() const +{ + return fLoadExternalDTD; +} + +inline bool XMLScanner::getNormalizeData() const +{ + return fNormalizeData; +} + +inline bool XMLScanner::isCachingGrammarFromParse() const +{ + return fToCacheGrammar; +} + +inline bool XMLScanner::isUsingCachedGrammarInParse() const +{ + return fUseCachedGrammar; +} + +inline bool XMLScanner::getCalculateSrcOfs() const +{ + return fCalculateSrcOfs; +} + +inline Grammar* XMLScanner::getRootGrammar() const +{ + return fRootGrammar; +} + +inline bool XMLScanner::getStandardUriConformant() const +{ + return fStandardUriConformant; +} + +inline XMLReader::XMLVersion XMLScanner::getXMLVersion() const +{ + return fXMLVersion; +} + +inline MemoryManager* XMLScanner::getMemoryManager() const +{ + return fMemoryManager; +} + +inline ValueVectorOf<PrefMapElem*>* XMLScanner::getNamespaceContext() const +{ + return fElemStack.getNamespaceMap(); +} + +inline unsigned int XMLScanner::getPrefixId(const XMLCh* const prefix) const +{ + return fElemStack.getPrefixId(prefix); +} + +inline const XMLCh* XMLScanner::getPrefixForId(unsigned int prefId) const +{ + return fElemStack.getPrefixForId(prefId); +} + +inline bool XMLScanner::getGenerateSyntheticAnnotations() const +{ + return fGenerateSyntheticAnnotations; +} + +inline bool XMLScanner::getValidateAnnotations() const +{ + return fValidateAnnotations; +} + +inline bool XMLScanner::getIgnoreCachedDTD() const +{ + return fIgnoreCachedDTD; +} + +inline bool XMLScanner::getIgnoreAnnotations() const +{ + return fIgnoreAnnotations; +} + +inline bool XMLScanner::getDisableDefaultEntityResolution() const +{ + return fDisableDefaultEntityResolution; +} + +inline bool XMLScanner::getSkipDTDValidation() const +{ + return fSkipDTDValidation; +} + +// --------------------------------------------------------------------------- +// XMLScanner: Setter methods +// --------------------------------------------------------------------------- +inline void XMLScanner::setDocHandler(XMLDocumentHandler* const docHandler) +{ + fDocHandler = docHandler; +} + +inline void XMLScanner::setDocTypeHandler(DocTypeHandler* const docTypeHandler) +{ + fDocTypeHandler = docTypeHandler; +} + +inline void XMLScanner::setErrorHandler(ErrorHandler* const handler) +{ + fErrorHandler = handler; +} + +inline void XMLScanner::setPSVIHandler(PSVIHandler* const handler) +{ + fPSVIHandler = handler; +} + +inline void XMLScanner::setEntityHandler(XMLEntityHandler* const entityHandler) +{ + fEntityHandler = entityHandler; + fReaderMgr.setEntityHandler(entityHandler); +} + +inline void XMLScanner::setErrorReporter(XMLErrorReporter* const errHandler) +{ + fErrorReporter = errHandler; +} + +inline void XMLScanner::setExitOnFirstFatal(const bool newValue) +{ + fExitOnFirstFatal = newValue; +} + + +inline void XMLScanner::setValidationConstraintFatal(const bool newValue) +{ + fValidationConstraintFatal = newValue; +} + +inline void XMLScanner::setValidationScheme(const ValSchemes newScheme) +{ + fValScheme = newScheme; + + // validation flag for Val_Auto is set to false by default, + // and will be turned to true if a grammar is seen + if (fValScheme == Val_Always) + fValidate = true; + else + fValidate = false; +} + +inline void XMLScanner::setDoSchema(const bool doSchema) +{ + fDoSchema = doSchema; +} + +inline void XMLScanner::setDoNamespaces(const bool doNamespaces) +{ + fDoNamespaces = doNamespaces; +} + +inline void XMLScanner::setValidationSchemaFullChecking(const bool schemaFullChecking) +{ + fSchemaFullChecking = schemaFullChecking; +} + +inline void XMLScanner::setIdentityConstraintChecking(const bool identityConstraintChecking) +{ + fIdentityConstraintChecking = identityConstraintChecking; +} + +inline void XMLScanner::setHasNoDTD(const bool hasNoDTD) +{ + fHasNoDTD = hasNoDTD; +} + +inline void XMLScanner::setRootElemName(XMLCh* rootElemName) +{ + fMemoryManager->deallocate(fRootElemName);//delete [] fRootElemName; + fRootElemName = XMLString::replicate(rootElemName, fMemoryManager); +} + +inline void XMLScanner::setExternalSchemaLocation(const XMLCh* const schemaLocation) +{ + fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation; + fExternalSchemaLocation = XMLString::replicate(schemaLocation, fMemoryManager); +} + +inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation) +{ + fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation; + fExternalNoNamespaceSchemaLocation = XMLString::replicate(noNamespaceSchemaLocation, fMemoryManager); +} + +inline void XMLScanner::setExternalSchemaLocation(const char* const schemaLocation) +{ + fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation; + fExternalSchemaLocation = XMLString::transcode(schemaLocation, fMemoryManager); +} + +inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation) +{ + fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation; + fExternalNoNamespaceSchemaLocation = XMLString::transcode(noNamespaceSchemaLocation, fMemoryManager); +} + +inline void XMLScanner::setSecurityManager(SecurityManager* const securityManager) +{ + fSecurityManager = securityManager; + if(securityManager != 0) + { + fEntityExpansionLimit = securityManager->getEntityExpansionLimit(); + fEntityExpansionCount = 0; + } +} + +inline void XMLScanner::setLoadExternalDTD(const bool loadDTD) +{ + fLoadExternalDTD = loadDTD; +} + +inline void XMLScanner::setNormalizeData(const bool normalizeData) +{ + fNormalizeData = normalizeData; +} + +inline void XMLScanner::cacheGrammarFromParse(const bool newValue) +{ + fToCacheGrammar = newValue; +} + +inline void XMLScanner::useCachedGrammarInParse(const bool newValue) +{ + fUseCachedGrammar = newValue; +} + +inline void XMLScanner::setCalculateSrcOfs(const bool newValue) +{ + fCalculateSrcOfs = newValue; +} + +inline void XMLScanner::setStandardUriConformant(const bool newValue) +{ + fStandardUriConformant = newValue; + fReaderMgr.setStandardUriConformant(newValue); +} + +inline void XMLScanner::setGenerateSyntheticAnnotations(const bool newValue) +{ + fGenerateSyntheticAnnotations = newValue; +} + +inline void XMLScanner::setValidateAnnotations(const bool newValue) +{ + fValidateAnnotations = newValue; +} + +inline void XMLScanner::setInputBufferSize(const size_t bufferSize) +{ + fBufferSize = bufferSize; + fCDataBuf.setFullHandler(this, (unsigned int)fBufferSize); +} + +inline void XMLScanner::setIgnoredCachedDTD(const bool newValue) +{ + fIgnoreCachedDTD = newValue; +} + +inline void XMLScanner::setIgnoreAnnotations(const bool newValue) +{ + fIgnoreAnnotations = newValue; +} + +inline void XMLScanner::setDisableDefaultEntityResolution(const bool newValue) +{ + fDisableDefaultEntityResolution = newValue; +} + +inline void XMLScanner::setSkipDTDValidation(const bool newValue) +{ + fSkipDTDValidation = newValue; +} + +// --------------------------------------------------------------------------- +// XMLScanner: Mutator methods +// --------------------------------------------------------------------------- +inline void XMLScanner::incrementErrorCount() +{ + ++fErrorCount; +} + +// --------------------------------------------------------------------------- +// XMLScanner: Deprecated methods +// --------------------------------------------------------------------------- +inline bool XMLScanner::getDoValidation() const +{ + return fValidate; +} + +inline void XMLScanner::setDoValidation(const bool validate) +{ + fValidate = validate; + if (fValidate) + fValScheme = Val_Always; + else + fValScheme = Val_Never; +} + +inline void XMLScanner::resetValidationContext() +{ + fValidationContext->clearIdRefList(); + fValidationContext->setEntityDeclPool(0); + fEntityDeclPoolRetrieved = false; +} + +inline void XMLScanner::setAttrDupChkRegistry(const unsigned int &attrNumber + , bool &toUseHashTable) +{ + // once the attribute exceed 100, we use hash table to check duplication + if (attrNumber > 100) + { + toUseHashTable = true; + + if (!fAttrDupChkRegistry) + { + fAttrDupChkRegistry = new (fMemoryManager) RefHash2KeysTableOf<XMLAttr> + ( + 2*attrNumber+1, false, new (fMemoryManager)HashXMLCh(), fMemoryManager + ); + } + else + { + fAttrDupChkRegistry->removeAll(); + } + } + +} + +inline Grammar::GrammarType XMLScanner::getCurrentGrammarType() const +{ + return Grammar::UnKnown; +} + +XERCES_CPP_NAMESPACE_END + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScannerResolver.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XMLScannerResolver.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XMLSCANNERRESOLVER_HPP) +#define XMLSCANNERRESOLVER_HPP + +#include <xercesc/internal/XMLScanner.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLValidator; +class XMLDocumentHandler; +class XMLErrorReporter; +class DocTypeHandler; +class XMLEntityHandler; + +class XMLPARSER_EXPORT XMLScannerResolver +{ +public: + // ----------------------------------------------------------------------- + // Public class methods + // ----------------------------------------------------------------------- + static XMLScanner* resolveScanner + ( + const XMLCh* const scannerName + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + static XMLScanner* resolveScanner + ( + const XMLCh* const scannerName + , XMLDocumentHandler* const docHandler + , DocTypeHandler* const docTypeHandler + , XMLEntityHandler* const entityHandler + , XMLErrorReporter* const errReporter + , XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + static XMLScanner* getDefaultScanner + ( + XMLValidator* const valToAdopt + , GrammarResolver* const grammarResolver + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + +private : + + // ----------------------------------------------------------------------- + // Unimplemented constructor and destructor + // ----------------------------------------------------------------------- + XMLScannerResolver(); + ~XMLScannerResolver(); +}; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,94 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XProtoType.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(XPROTOTYPE_HPP) +#define XPROTOTYPE_HPP + +#include <xercesc/util/PlatformUtils.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XSerializeEngine; +class XSerializable; + +class XMLUTIL_EXPORT XProtoType +{ +public: + + void store(XSerializeEngine& serEng) const; + + static void load(XSerializeEngine& serEng + , XMLByte* const name + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + + // ------------------------------------------------------------------------------- + // data + // + // fClassName: + // name of the XSerializable derivatives + // + // fCreateObject: + // pointer to the factory method (createObject()) + // of the XSerializable derivatives + // + // ------------------------------------------------------------------------------- + + XMLByte* fClassName; + + XSerializable* (*fCreateObject)(MemoryManager*); + +}; + +#define DECL_XPROTOTYPE(class_name) \ +static XProtoType class##class_name; \ +static XSerializable* createObject(MemoryManager* manager); + +/*** + * For non-abstract class + ***/ +#define IMPL_XPROTOTYPE_TOCREATE(class_name) \ +IMPL_XPROTOTYPE_INSTANCE(class_name) \ +XSerializable* class_name::createObject(MemoryManager* manager) \ +{return new (manager) class_name(manager);} + +/*** +* For abstract class + ***/ +#define IMPL_XPROTOTYPE_NOCREATE(class_name) \ +IMPL_XPROTOTYPE_INSTANCE(class_name) \ +XSerializable* class_name::createObject(MemoryManager*) \ +{return 0;} + + +/*** + * Helper Macro + ***/ +#define XPROTOTYPE_CLASS(class_name) ((XProtoType*)(&class_name::class##class_name)) + +#define IMPL_XPROTOTYPE_INSTANCE(class_name) \ +XProtoType class_name::class##class_name = \ +{(XMLByte*) #class_name, class_name::createObject }; + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSAXMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XSAXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(XSAXMLSCANNER_HPP) +#define XSAXMLSCANNER_HPP + +#include <xercesc/internal/SGXMLScanner.hpp> + + +XERCES_CPP_NAMESPACE_BEGIN + +// +// This is a scanner class, which processes/validates contents of XML Schema +// Annotations. It's intended for internal use only. +// +class XMLPARSER_EXPORT XSAXMLScanner : public SGXMLScanner +{ +public : + // ----------------------------------------------------------------------- + // Destructor + // ----------------------------------------------------------------------- + virtual ~XSAXMLScanner(); + + // ----------------------------------------------------------------------- + // XMLScanner public virtual methods + // ----------------------------------------------------------------------- + virtual const XMLCh* getName() const; + +protected: + // ----------------------------------------------------------------------- + // Constructors + // ----------------------------------------------------------------------- + /** + * The grammar representing the XML Schema annotation (xsaGrammar) is + * passed in by the caller. The scanner will own it and is responsible + * for deleting it. + */ + XSAXMLScanner + ( + GrammarResolver* const grammarResolver + , XMLStringPool* const uriStringPool + , SchemaGrammar* const xsaGrammar + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + friend class TraverseSchema; + + // ----------------------------------------------------------------------- + // XMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual void scanReset(const InputSource& src); + + // ----------------------------------------------------------------------- + // SGXMLScanner virtual methods + // ----------------------------------------------------------------------- + virtual bool scanStartTag(bool& gotData); + virtual void scanEndTag(bool& gotData); + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + XSAXMLScanner(); + XSAXMLScanner(const XSAXMLScanner&); + XSAXMLScanner& operator=(const XSAXMLScanner&); + + // ----------------------------------------------------------------------- + // Private helper methods + // ----------------------------------------------------------------------- + void scanRawAttrListforNameSpaces(int attCount); + void switchGrammar(const XMLCh* const newGrammarNameSpace, bool laxValidate); +}; + +inline const XMLCh* XSAXMLScanner::getName() const +{ + return XMLUni::fgXSAXMLScanner; +} + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSObjectFactory.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,237 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XSObjectFactory.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XSOBJECTFACTORY_HPP) +#define XSOBJECTFACTORY_HPP + +#include <xercesc/framework/psvi/XSConstants.hpp> +#include <xercesc/util/RefHashTableOf.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XSObject; +class XSAttributeUse; +class XSAttributeDeclaration; +class XSModel; +class XSElementDeclaration; +class XSSimpleTypeDefinition; +class XSComplexTypeDefinition; +class XSModelGroupDefinition; +class XSAttributeGroupDefinition; +class XSWildcard; +class XSParticle; +class XSAnnotation; +class XSNamespaceItem; +class XSNotationDeclaration; +class SchemaAttDef; +class SchemaElementDecl; +class DatatypeValidator; +class ContentSpecNode; +class ComplexTypeInfo; +class XercesGroupInfo; +class XercesAttGroupInfo; +class XSIDCDefinition; +class IdentityConstraint; +class XMLNotationDecl; + +/** + * Factory class to create various XSObject(s) + * Used by XSModel + */ +class XMLPARSER_EXPORT XSObjectFactory : public XMemory +{ +public: + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + XSObjectFactory(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + ~XSObjectFactory(); + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and destructor + // ----------------------------------------------------------------------- + XSObjectFactory(const XSObjectFactory&); + XSObjectFactory& operator=(const XSObjectFactory&); + + // ----------------------------------------------------------------------- + // factory methods + // ----------------------------------------------------------------------- + XSParticle* createModelGroupParticle + ( + const ContentSpecNode* const node + , XSModel* const xsModel + ); + + XSAttributeDeclaration* addOrFind + ( + SchemaAttDef* const attDef + , XSModel* const xsModel + , XSComplexTypeDefinition* const enclosingTypeDef = 0 + ); + + XSSimpleTypeDefinition* addOrFind + ( + DatatypeValidator* const validator + , XSModel* const xsModel + , bool isAnySimpleType = false + ); + + XSElementDeclaration* addOrFind + ( + SchemaElementDecl* const elemDecl + , XSModel* const xsModel + , XSComplexTypeDefinition* const enclosingTypeDef = 0 + ); + + XSComplexTypeDefinition* addOrFind + ( + ComplexTypeInfo* const typeInfo + , XSModel* const xsModel + ); + + XSIDCDefinition* addOrFind + ( + IdentityConstraint* const ic + , XSModel* const xsModel + ); + + XSNotationDeclaration* addOrFind + ( + XMLNotationDecl* const notDecl + , XSModel* const xsModel + ); + + XSAttributeUse* createXSAttributeUse + ( + XSAttributeDeclaration* const xsAttDecl + , XSModel* const xsModel + ); + XSWildcard* createXSWildcard + ( + SchemaAttDef* const attDef + , XSModel* const xsModel + ); + + XSWildcard* createXSWildcard + ( + const ContentSpecNode* const rootNode + , XSModel* const xsModel + ); + + XSModelGroupDefinition* createXSModelGroupDefinition + ( + XercesGroupInfo* const groupInfo + , XSModel* const xsModel + ); + + XSAttributeGroupDefinition* createXSAttGroupDefinition + ( + XercesAttGroupInfo* const attGroupInfo + , XSModel* const xsModel + ); + + // ----------------------------------------------------------------------- + // Helper methods + // ----------------------------------------------------------------------- + // creates a particle corresponding to an element + XSParticle* createElementParticle + ( + const ContentSpecNode* const rootNode + , XSModel* const xsModel + ); + + // creates a particle corresponding to a wildcard + XSParticle* createWildcardParticle + ( + const ContentSpecNode* const rootNode + , XSModel* const xsModel + ); + + XSAnnotation* getAnnotationFromModel + ( + XSModel* const xsModel + , const void* const key + ); + + void buildAllParticles + ( + const ContentSpecNode* const rootNode + , XSParticleList* const particleList + , XSModel* const xsModel + ); + + void buildChoiceSequenceParticles + ( + const ContentSpecNode* const rootNode + , XSParticleList* const particleList + , XSModel* const xsModel + ); + + void putObjectInMap + ( + void* key + , XSObject* const object + ); + + XSObject* getObjectFromMap + ( + void* key + ); + + void processFacets + ( + DatatypeValidator* const dv + , XSModel* const xsModel + , XSSimpleTypeDefinition* const xsST + ); + + void processAttUse + ( + SchemaAttDef* const attDef + , XSAttributeUse* const xsAttUse + ); + + bool isMultiValueFacetDefined(DatatypeValidator* const dv); + + // make XSModel our friend + friend class XSModel; + + // ----------------------------------------------------------------------- + // Private Data Members + // + // fMemoryManager + // The memory manager used to create various XSObject(s). + // ----------------------------------------------------------------------- + MemoryManager* fMemoryManager; + RefHashTableOf<XSObject>* fXercesToXSMap; + RefVectorOf<XSObject>* fDeleteVector; +}; + +inline XSObject* XSObjectFactory::getObjectFromMap(void* key) +{ + return fXercesToXSMap->get(key); +} + + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializable.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,117 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XSerializable.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XSERIALIZABLE_HPP) +#define XSERIALIZABLE_HPP + +#include <xercesc/internal/XSerializeEngine.hpp> +#include <xercesc/internal/XProtoType.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLUTIL_EXPORT XSerializable +{ +public : + + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + virtual ~XSerializable() {} ; + + // ----------------------------------------------------------------------- + // Serialization Interface + // ----------------------------------------------------------------------- + virtual bool isSerializable() const = 0; + + virtual void serialize(XSerializeEngine& ) = 0; + + virtual XProtoType* getProtoType() const = 0; + +protected: + XSerializable() {} + XSerializable(const XSerializable& ) {} + +private: + // ----------------------------------------------------------------------- + // Unimplemented assignment operator + // ----------------------------------------------------------------------- + XSerializable& operator=(const XSerializable&); + +}; + +inline void XSerializable::serialize(XSerializeEngine& ) +{ +} + +/*** + * Macro to be included in XSerializable derivatives' + * declaration's public section + ***/ +#define DECL_XSERIALIZABLE(class_name) \ +public: \ +\ +DECL_XPROTOTYPE(class_name) \ +\ +virtual bool isSerializable() const ; \ +virtual XProtoType* getProtoType() const; \ +virtual void serialize(XSerializeEngine&); \ +\ +inline friend XSerializeEngine& operator>>(XSerializeEngine& serEng \ + , class_name*& objPtr) \ +{objPtr = (class_name*) serEng.read(XPROTOTYPE_CLASS(class_name)); \ + return serEng; \ +}; + +/*** + * Macro to be included in the implementation file + * of XSerializable derivatives' which is instantiable + ***/ +#define IMPL_XSERIALIZABLE_TOCREATE(class_name) \ +IMPL_XPROTOTYPE_TOCREATE(class_name) \ +IMPL_XSERIAL(class_name) + +/*** + * Macro to be included in the implementation file + * of XSerializable derivatives' which is UN-instantiable + ***/ +#define IMPL_XSERIALIZABLE_NOCREATE(class_name) \ +IMPL_XPROTOTYPE_NOCREATE(class_name) \ +IMPL_XSERIAL(class_name) + +/*** + * Helper Macro + ***/ +#define IMPL_XSERIAL(class_name) \ +bool class_name::isSerializable() const \ +{return true; } \ +XProtoType* class_name::getProtoType() const \ +{return XPROTOTYPE_CLASS(class_name); } + +#define IS_EQUIVALENT(lptr, rptr) \ + if (lptr == rptr) \ + return true; \ + if (( lptr && !rptr) || (!lptr && rptr)) \ + return false; + +XERCES_CPP_NAMESPACE_END + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializationException.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XSerializationException.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(XSERIALIZATION_EXCEPTION_HPP) +#define XSERIALIZATION_EXCEPTION_HPP + +#include <xercesc/util/XercesDefs.hpp> +#include <xercesc/util/XMLException.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +MakeXMLException(XSerializationException, XMLUTIL_EXPORT) + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializeEngine.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,873 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XSerializeEngine.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XSERIALIZE_ENGINE_HPP) +#define XSERIALIZE_ENGINE_HPP + +#include <xercesc/util/RefHashTableOf.hpp> +#include <xercesc/util/ValueVectorOf.hpp> +#include <xercesc/util/XMLExceptMsgs.hpp> + +#include <xercesc/internal/XSerializationException.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XSerializable; +class XProtoType; +class MemoryManager; +class XSerializedObjectId; +class BinOutputStream; +class BinInputStream; +class XMLGrammarPool; +class XMLGrammarPoolImpl; +class XMLStringPool; + +class XMLUTIL_EXPORT XSerializeEngine +{ +public: + + enum { mode_Store + , mode_Load + }; + + + static const bool toReadBufferLen; + + typedef unsigned int XSerializedObjectId_t; + + /*** + * + * Destructor + * + ***/ + ~XSerializeEngine(); + + /*** + * + * Constructor for de-serialization(loading) + * + * Application needs to make sure that the instance of + * BinInputStream, persists beyond the life of this + * SerializeEngine. + * + * Param + * inStream input stream + * gramPool Grammar Pool + * bufSize the size of the internal buffer + * + ***/ + XSerializeEngine(BinInputStream* inStream + , XMLGrammarPool* const gramPool + , unsigned long bufSize = 8192 ); + + + /*** + * + * Constructor for serialization(storing) + * + * Application needs to make sure that the instance of + * BinOutputStream, persists beyond the life of this + * SerializeEngine. + * + * Param + * outStream output stream + * gramPool Grammar Pool + * bufSize the size of the internal buffer + * + ***/ + XSerializeEngine(BinOutputStream* outStream + , XMLGrammarPool* const gramPool + , unsigned long bufSize = 8192 ); + + + /*** + * + * Deprecated + * + * Constructor for de-serialization(loading) + * + * Application needs to make sure that the instance of + * BinInputStream, persists beyond the life of this + * SerializeEngine. + * + * Param + * inStream input stream + * manager MemoryManager + * bufSize the size of the internal buffer + * + ***/ + XSerializeEngine(BinInputStream* inStream + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + , unsigned long bufSize = 8192 ); + + + /*** + * + * Deprecated + * + * Constructor for serialization(storing) + * + * Application needs to make sure that the instance of + * BinOutputStream, persists beyond the life of this + * SerializeEngine. + * + * Param + * outStream output stream + * manager MemoryManager + * bufSize the size of the internal buffer + * + ***/ + XSerializeEngine(BinOutputStream* outStream + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + , unsigned long bufSize = 8192 ); + + /*** + * + * When serialization, flush out the internal buffer + * + * Return: + * + ***/ + void flush(); + + /*** + * + * Checking if the serialize engine is doing serialization(storing) + * + * Return: true, if it is + * false, otherwise + * + ***/ + inline bool isStoring() const; + + /*** + * + * Checking if the serialize engine is doing de-serialization(loading) + * + * Return: true, if it is + * false, otherwise + * + ***/ + inline bool isLoading() const; + + /*** + * + * Get the GrammarPool + * + * Return: XMLGrammarPool + * + ***/ + XMLGrammarPool* getGrammarPool() const; + + /*** + * + * Get the StringPool + * + * Return: XMLStringPool + * + ***/ + XMLStringPool* getStringPool() const; + + /*** + * + * Get the embeded Memory Manager + * + * Return: MemoryManager + * + ***/ + MemoryManager* getMemoryManager() const; + + /*** + * + * Get the storer level (the level of the serialize engine + * which created the binary stream that this serialize engine + * is loading). + * + * The level returned is meaningful only when + * the engine isLoading. + * + * Return: level + * + ***/ + inline unsigned short getStorerLevel() const; + + /*** + * + * Write object to the internal buffer. + * + * Param + * objectToWrite: the object to be serialized + * + * Return: + * + ***/ + void write(XSerializable* const objectToWrite); + + /*** + * + * Write prototype info to the internal buffer. + * + * Param + * protoType: instance of prototype + * + * Return: + * + ***/ + void write(XProtoType* const protoType); + + /*** + * + * Write a stream of XMLByte to the internal buffer. + * + * Param + * toWrite: the stream of XMLByte to write + * writeLen: the length of the stream + * + * Return: + * + ***/ + void write(const XMLByte* const toWrite + , int writeLen); + + /*** + * + * Write a stream of XMLCh to the internal buffer. + * + * Param + * toWrite: the stream of XMLCh to write + * writeLen: the length of the stream + * + * Return: + * + ***/ + void write(const XMLCh* const toWrite + , int writeLen); + + /*** + * + * Write a stream of XMLCh to the internal buffer. + * + * Write the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toWrite: the stream of XMLCh to write + * bufferLen: the maximum size of the buffer + * toWriteBufLen: specify if the bufferLen need to be written or not + * + * Return: + * + ***/ + void writeString(const XMLCh* const toWrite + , const int bufferLen = 0 + , bool toWriteBufLen = false); + + /*** + * + * Write a stream of XMLByte to the internal buffer. + * + * Write the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toWrite: the stream of XMLByte to write + * bufferLen: the maximum size of the buffer + * toWriteBufLen: specify if the bufferLen need to be written or not + * + * Return: + * + ***/ + void writeString(const XMLByte* const toWrite + , const int bufferLen = 0 + , bool toWriteBufLen = false); + + static const bool toWriteBufferLen; + + /*** + * + * Read/Create object from the internal buffer. + * + * Param + * protoType: an instance of prototype of the object anticipated + * + * Return: to object read/created + * + ***/ + XSerializable* read(XProtoType* const protoType); + + /*** + * + * Read prototype object from the internal buffer. + * Verify if the same prototype object found in buffer. + * + * Param + * protoType: an instance of prototype of the object anticipated + * objTag: the object Tag to an existing object + * + * Return: true : if matching found + * false : otherwise + * + ***/ + bool read(XProtoType* const protoType + , XSerializedObjectId_t* objTag); + + /*** + * + * Read XMLByte stream from the internal buffer. + * + * Param + * toRead: the buffer to hold the XMLByte stream + * readLen: the length of the XMLByte to read in + * + * Return: + * + ***/ + void read(XMLByte* const toRead + , int readLen); + + /*** + * + * Read XMLCh stream from the internal buffer. + * + * Param + * toRead: the buffer to hold the XMLCh stream + * readLen: the length of the XMLCh to read in + * + * Return: + * + ***/ + void read(XMLCh* const toRead + , int readLen); + + /*** + * + * Read a stream of XMLCh from the internal buffer. + * + * Read the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toRead: the pointer to the buffer to hold the XMLCh stream + * bufferLen: the size of the buffer created + * dataLen: the length of the stream + * toReadBufLen: specify if the bufferLen need to be read or not + * + * Return: + * + ***/ + void readString(XMLCh*& toRead + , int& bufferLen + , int& dataLen + , bool toReadBufLen = false); + + /*** + * + * Read a stream of XMLCh from the internal buffer. + * + * Read the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toRead: the pointer to the buffer to hold the XMLCh stream + * bufferLen: the size of the buffer created + * + * Return: + * + ***/ + inline void readString(XMLCh*& toRead + , int& bufferLen); + + /*** + * + * Read a stream of XMLCh from the internal buffer. + * + * Param + * toRead: the pointer to the buffer to hold the XMLCh stream + * + * Return: + * + ***/ + inline void readString(XMLCh*& toRead); + + /*** + * + * Read a stream of XMLByte from the internal buffer. + * + * Read the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toRead: the pointer to the buffer to hold the XMLByte stream + * bufferLen: the size of the buffer created + * dataLen: the length of the stream + * toReadBufLen: specify if the bufferLen need to be read or not + * + * Return: + * + ***/ + void readString(XMLByte*& toRead + , int& bufferLen + , int& dataLen + , bool toReadBufLen = false); + + + /*** + * + * Read a stream of XMLByte from the internal buffer. + * + * Read the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toRead: the pointer to the buffer to hold the XMLByte stream + * bufferLen: the size of the buffer created + * + * Return: + * + ***/ + inline void readString(XMLByte*& toRead + , int& bufferLen); + + /*** + * + * Read a stream of XMLByte from the internal buffer. + * + * Read the bufferLen first if requested, then the length + * of the stream followed by the stream. + * + * Param + * toRead: the pointer to the buffer to hold the XMLByte stream + * bufferLen: the size of the buffer created + * dataLen: the length of the stream + * toReadBufLen: specify if the bufferLen need to be read or not + * + * Return: + * + ***/ + inline void readString(XMLByte*& toRead); + + /*** + * + * Check if the template object has been stored or not + * + * Param + * objectPtr: the template object pointer + * + * Return: true : the object has NOT been stored yet + * false : otherwise + * + ***/ + bool needToStoreObject(void* const templateObjectToWrite); + + /*** + * + * Check if the template object has been loaded or not + * + * Param + * objectPtr: the address of the template object pointer + * + * Return: true : the object has NOT been loaded yet + * false : otherwise + * + ***/ + bool needToLoadObject(void** templateObjectToRead); + + /*** + * + * In the case of needToLoadObject() return true, the client + * application needs to instantiate an expected template object, and + * register the address to the engine. + * + * Param + * objectPtr: the template object pointer newly instantiated + * + * Return: + * + ***/ + void registerObject(void* const templateObjectToRegister); + + /*** + * + * Insertion operator for serializable classes + * + ***/ + + friend XSerializeEngine& operator<<(XSerializeEngine& + , XSerializable* const ); + + /*** + * + * Insertion operators for + * . basic Xerces data types + * . built-in types + * + ***/ + XSerializeEngine& operator<<(XMLByte); + XSerializeEngine& operator<<(XMLCh); + + XSerializeEngine& operator<<(char); + XSerializeEngine& operator<<(short); + XSerializeEngine& operator<<(int); + XSerializeEngine& operator<<(unsigned int); + XSerializeEngine& operator<<(long); + XSerializeEngine& operator<<(unsigned long); + XSerializeEngine& operator<<(float); + XSerializeEngine& operator<<(double); + XSerializeEngine& operator<<(bool); + + /*** + * + * Extraction operators for + * . basic Xerces data types + * . built-in types + * + ***/ + XSerializeEngine& operator>>(XMLByte&); + XSerializeEngine& operator>>(XMLCh&); + + XSerializeEngine& operator>>(char&); + XSerializeEngine& operator>>(short&); + XSerializeEngine& operator>>(int&); + XSerializeEngine& operator>>(unsigned int&); + XSerializeEngine& operator>>(long&); + XSerializeEngine& operator>>(unsigned long&); + XSerializeEngine& operator>>(float&); + XSerializeEngine& operator>>(double&); + XSerializeEngine& operator>>(bool&); + + /*** + * + * Getters + * + ***/ + inline + XMLSize_t getBufSize() const; + + inline + XMLSize_t getBufCur() const; + + inline + XMLSize_t getBufCurAccumulated() const; + + inline + XMLSize_t getBufCount() const; + + void trace(char*) const; + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + XSerializeEngine(); + XSerializeEngine(const XSerializeEngine&); + XSerializeEngine& operator=(const XSerializeEngine&); + + /*** + * + * Store Pool Opertions + * + ***/ + XSerializedObjectId_t lookupStorePool(void* const objectPtr) const; + void addStorePool(void* const objectPtr); + + /*** + * + * Load Pool Opertions + * + ***/ + XSerializable* lookupLoadPool(XSerializedObjectId_t objectTag) const; + void addLoadPool(void* const objectPtr); + + /*** + * + * Intenal Buffer Operations + * + ***/ + inline void checkAndFillBuffer(int bytesNeedToRead); + + inline void checkAndFlushBuffer(int bytesNeedToWrite); + + void fillBuffer(); + + void flushBuffer(); + + void pumpCount(); + + inline void resetBuffer(); + + /*** + * + * Helper + * + ***/ + inline void ensureStoring() const; + + inline void ensureLoading() const; + + inline void ensureStoreBuffer() const; + + inline void ensureLoadBuffer() const; + + inline void ensurePointer(void* const) const; + + inline void ensureBufferLen(int bufferLen) const; + + inline void Assert(bool toEval + , const XMLExcepts::Codes toThrow) const; + + + inline XMLSize_t calBytesNeeded(XMLSize_t) const; + + inline XMLSize_t alignAdjust(XMLSize_t) const; + + inline void alignBufCur(XMLSize_t); + + // Make XTemplateSerializer friend of XSerializeEngine so that + // we can call lookupStorePool and lookupLoadPool in the case of + // annotations. + friend class XTemplateSerializer; + + // ------------------------------------------------------------------------------- + // data + // + // fStoreLoad: + // Indicator: storing(serialization) or loading(de-serialization) + // + // fStorerLevel: + // The level of the serialize engine which created the binary + // stream that this serialize engine is loading + // + // It is set by GrammarPool when loading + // + // fGrammarPool: + // Thw owning GrammarPool which instantiate this SerializeEngine + // instance + // + // fInputStream: + // Binary stream to read from (de-serialization), provided + // by client application, not owned. + // + // fOutputStream: + // Binary stream to write to (serialization), provided + // by client application, not owned. + // + // fBufSize: + // The size of the internal buffer + // + // fBufStart/fBufEnd: + // + // The internal buffer. + // fBufEnd: + // one beyond the last valid cell + // fBufEnd === (fBufStart + fBufSize) + // + // fBufCur: + // The cursor of the buffer + // + // fBufLoadMax: + // Indicating the end of the valid content in the buffer + // + // fStorePool: + // Object collection for storing + // + // fLoadPool: + // Object collection for loading + // + // fMapCount: + // ------------------------------------------------------------------------------- + const short fStoreLoad; + short fStorerLevel; + + XMLGrammarPool* const fGrammarPool; + BinInputStream* const fInputStream; + BinOutputStream* const fOutputStream; + + XMLSize_t fBufCount; + + //buffer + const XMLSize_t fBufSize; + XMLByte* const fBufStart; + XMLByte* const fBufEnd; + XMLByte* fBufCur; + XMLByte* fBufLoadMax; + + + + /*** + * Map for storing object + * + * key: XSerializable* + * XProtoType* + * + * value: XMLInteger*, owned + * + ***/ + RefHashTableOf<XSerializedObjectId>* fStorePool; + + /*** + * Vector for loading object, objects are NOT owned + * + * data: XSerializable* + * XProtoType* + * + ***/ + ValueVectorOf<void*>* fLoadPool; + + /*** + * object counter + ***/ + XSerializedObjectId_t fObjectCount; + + //to allow grammar pool to set storer level when loading + friend class XMLGrammarPoolImpl; +}; + +inline bool XSerializeEngine::isStoring() const +{ + return (fStoreLoad == mode_Store); +} + +inline bool XSerializeEngine::isLoading() const +{ + return (fStoreLoad == mode_Load); +} + +inline XSerializeEngine& operator<<(XSerializeEngine& serEng + , XSerializable* const serObj) +{ + serEng.write(serObj); + return serEng; +} + +inline void XSerializeEngine::ensureStoring() const +{ + Assert(isStoring(), XMLExcepts::XSer_Storing_Violation); +} + +inline void XSerializeEngine::ensureLoading() const +{ + Assert(isLoading(), XMLExcepts::XSer_Loading_Violation); +} + + + +inline void XSerializeEngine::Assert(bool toEval + , const XMLExcepts::Codes toThrow) const +{ + if (!toEval) + { + ThrowXMLwithMemMgr(XSerializationException, toThrow, getMemoryManager()); + } + +} + +inline void XSerializeEngine::readString(XMLCh*& toRead + , int& bufferLen) +{ + int dummyDataLen; + readString(toRead, bufferLen, dummyDataLen); +} + +inline void XSerializeEngine::readString(XMLCh*& toRead) +{ + int dummyBufferLen; + int dummyDataLen; + readString(toRead, dummyBufferLen, dummyDataLen); +} + +inline void XSerializeEngine::readString(XMLByte*& toRead + , int& bufferLen) +{ + int dummyDataLen; + readString(toRead, bufferLen, dummyDataLen); +} + +inline void XSerializeEngine::readString(XMLByte*& toRead) +{ + int dummyBufferLen; + int dummyDataLen; + readString(toRead, dummyBufferLen, dummyDataLen); +} + +inline +XMLSize_t XSerializeEngine::getBufSize() const +{ + return fBufSize; +} + +inline +XMLSize_t XSerializeEngine::getBufCur() const +{ + return XMLSize_t (fBufCur-fBufStart); +} + +inline +XMLSize_t XSerializeEngine::getBufCurAccumulated() const +{ + return (fBufCount - (isStoring() ? 0: 1)) * fBufSize + (fBufCur-fBufStart); +} + +inline +XMLSize_t XSerializeEngine::getBufCount() const +{ + return fBufCount; +} + +inline +unsigned short XSerializeEngine::getStorerLevel() const +{ + return fStorerLevel; +} + +/*** + * Ought to be nested class + ***/ +class XSerializedObjectId : public XMemory +{ +public: + + ~XSerializedObjectId(){}; + +private: + + inline XSerializedObjectId(XSerializeEngine::XSerializedObjectId_t val): + fData(val) { }; + + inline XSerializeEngine::XSerializedObjectId_t getValue() const {return fData; }; + + friend class XSerializeEngine; + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + XSerializedObjectId(); + XSerializedObjectId(const XSerializedObjectId&); + XSerializedObjectId& operator=(const XSerializedObjectId&); + + XSerializeEngine::XSerializedObjectId_t fData; + +}; + + +XERCES_CPP_NAMESPACE_END + +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XTemplateSerializer.hpp Fri Jan 22 09:56:12 2010 +0200 @@ -0,0 +1,365 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +/* + * $Id: XTemplateSerializer.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + +#if !defined(XTEMPLATE_SERIALIZER_HPP) +#define XTEMPLATE_SERIALIZER_HPP + +#include <xercesc/util/ValueVectorOf.hpp> +#include <xercesc/util/RefArrayVectorOf.hpp> +#include <xercesc/util/RefVectorOf.hpp> +#include <xercesc/util/RefHashTableOf.hpp> +#include <xercesc/util/RefHash2KeysTableOf.hpp> +#include <xercesc/util/RefHash3KeysIdPool.hpp> +#include <xercesc/util/NameIdPool.hpp> + +#include <xercesc/framework/XMLNotationDecl.hpp> +#include <xercesc/framework/XMLRefInfo.hpp> +#include <xercesc/util/XMLNumber.hpp> +#include <xercesc/validators/common/ContentSpecNode.hpp> +#include <xercesc/validators/DTD/DTDAttDef.hpp> +#include <xercesc/validators/DTD/DTDElementDecl.hpp> +#include <xercesc/validators/DTD/DTDEntityDecl.hpp> +#include <xercesc/validators/schema/SchemaAttDef.hpp> +#include <xercesc/validators/schema/SchemaElementDecl.hpp> +#include <xercesc/validators/schema/XercesGroupInfo.hpp> +#include <xercesc/validators/schema/XercesAttGroupInfo.hpp> +#include <xercesc/validators/schema/SchemaGrammar.hpp> +#include <xercesc/validators/schema/identity/IC_Field.hpp> +#include <xercesc/validators/schema/identity/IdentityConstraint.hpp> +#include <xercesc/validators/schema/identity/XercesXPath.hpp> +#include <xercesc/framework/psvi/XSAnnotation.hpp> + +XERCES_CPP_NAMESPACE_BEGIN + +class XMLUTIL_EXPORT XTemplateSerializer +{ +public: + + /********************************************************** + * + * ValueVectorOf + * + * SchemaElementDecl* + * unsigned int + * + ***********************************************************/ + static void storeObject(ValueVectorOf<SchemaElementDecl*>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(ValueVectorOf<SchemaElementDecl*>** tempObjToRead + , int initSize + , bool toCallDestructor + , XSerializeEngine& serEng); + + static void storeObject(ValueVectorOf<unsigned int>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(ValueVectorOf<unsigned int>** tempObjToRead + , int initSize + , bool toCallDestructor + , XSerializeEngine& serEng); + + /********************************************************** + * + * RefArrayVectorOf + * + * XMLCh + * + ***********************************************************/ + static void storeObject(RefArrayVectorOf<XMLCh>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefArrayVectorOf<XMLCh>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + /********************************************************** + * + * RefVectorOf + * + * SchemaAttDef + * SchemaElementDecl + * ContentSpecNode + * IC_Field + * DatatypeValidator + * IdentityConstraint + * XMLNumber + * XercesLocationPath + * XercesStep + * + ***********************************************************/ + static void storeObject(RefVectorOf<SchemaAttDef>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<SchemaAttDef>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<SchemaElementDecl>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<SchemaElementDecl>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<ContentSpecNode>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<ContentSpecNode>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<IC_Field>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<IC_Field>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<DatatypeValidator>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<DatatypeValidator>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<IdentityConstraint>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<IdentityConstraint>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<XMLNumber>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<XMLNumber>** tempObjToRead + , int initSize + , bool toAdopt + , XMLNumber::NumberType numType + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<XercesLocationPath>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<XercesLocationPath>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefVectorOf<XercesStep>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefVectorOf<XercesStep>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + /********************************************************** + * + * RefHashTableOf + * + * KVStringPair + * XMLAttDef + * DTDAttDef + * ComplexTypeInfo + * XercesGroupInfo + * XercesAttGroupInfo + * XMLRefInfo + * DatatypeValidator + * Grammar + * XSAnnotation + * + ***********************************************************/ + static void storeObject(RefHashTableOf<KVStringPair>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<KVStringPair>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<XMLAttDef>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<XMLAttDef>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<DTDAttDef>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<DTDAttDef>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<ComplexTypeInfo>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<ComplexTypeInfo>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<XercesGroupInfo>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<XercesGroupInfo>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<XercesAttGroupInfo>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<XercesAttGroupInfo>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<XMLRefInfo>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<XMLRefInfo>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<DatatypeValidator>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<DatatypeValidator>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<Grammar>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<Grammar>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHashTableOf<XSAnnotation>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHashTableOf<XSAnnotation>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + /********************************************************** + * + * RefHash2KeysTableOf + * + * SchemaAttDef + * ElemVector + * + ***********************************************************/ + static void storeObject(RefHash2KeysTableOf<SchemaAttDef>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHash2KeysTableOf<SchemaAttDef>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + static void storeObject(RefHash2KeysTableOf<ElemVector>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHash2KeysTableOf<ElemVector>** tempObjToRead + , int initSize + , bool toAdopt + , XSerializeEngine& serEng); + + /********************************************************** + * + * RefHash3KeysIdPool + * + * SchemaElementDecl + * + ***********************************************************/ + static void storeObject(RefHash3KeysIdPool<SchemaElementDecl>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(RefHash3KeysIdPool<SchemaElementDecl>** tempObjToRead + , int initSize + , bool toAdopt + , int initSize2 + , XSerializeEngine& serEng); + + /********************************************************** + * + * NameIdPool + * + * DTDElementDecl + * DTDEntityDecl + * XMLNotationDecl + * + ***********************************************************/ + static void storeObject(NameIdPool<DTDElementDecl>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(NameIdPool<DTDElementDecl>** tempObjToRead + , int initSize + , int initSize2 + , XSerializeEngine& serEng); + + static void storeObject(NameIdPool<DTDEntityDecl>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(NameIdPool<DTDEntityDecl>** tempObjToRead + , int initSize + , int initSize2 + , XSerializeEngine& serEng); + + static void storeObject(NameIdPool<XMLNotationDecl>* const tempObjToWrite + , XSerializeEngine& serEng); + + static void loadObject(NameIdPool<XMLNotationDecl>** tempObjToRead + , int initSize + , int initSize2 + , XSerializeEngine& serEng); + +private: + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + ~XTemplateSerializer(); + XTemplateSerializer(); + XTemplateSerializer(const XTemplateSerializer&); + XTemplateSerializer& operator=(const XTemplateSerializer&); + +}; + +XERCES_CPP_NAMESPACE_END + +#endif