📄 objostrxml.hpp
字号:
// Write current separator to the stream virtual void WriteSeparator(void);#if defined(NCBI_SERIAL_IO_TRACE) void TraceTag(const string& name);#endifprivate: void WriteString(const char* str, size_t length); void OpenTagStart(void); void OpenTagEnd(void); void OpenTagEndBack(void); void SelfCloseTagEnd(void); void CloseTagStart(void); void CloseTagEnd(void); void WriteTag(const string& name); void OpenTag(const string& name); void EolIfEmptyTag(void); void CloseTag(const string& name); void OpenStackTag(size_t level); void CloseStackTag(size_t level); void OpenTag(TTypeInfo type); void CloseTag(TTypeInfo type); void OpenTagIfNamed(TTypeInfo type); void CloseTagIfNamed(TTypeInfo type); void PrintTagName(size_t level); bool WillHaveName(TTypeInfo elementType); string GetModuleName(TTypeInfo type); bool x_IsStdXml(void) {return m_StdXml || m_EnforcedStdXml;} void x_WriteClassNamespace(TTypeInfo type); bool x_ProcessTypeNamespace(TTypeInfo type); void x_EndTypeNamespace(void); bool x_BeginNamespace(const string& ns_name, const string& ns_prefix); void x_EndNamespace(const string& ns_name); enum ETagAction { eTagOpen, eTagClose, eTagSelfClosed, eAttlistTag }; ETagAction m_LastTagAction; bool m_EndTag; // DTD file name and prefix bool m_UseDefaultDTDFilePrefix; string m_DTDFilePrefix; string m_DTDFileName; bool m_UsePublicId; string m_PublicId; static string sm_DefaultDTDFilePrefix; bool m_Attlist; bool m_StdXml; bool m_EnforcedStdXml; ERealValueFormat m_RealFmt; EEncoding m_Encoding; bool m_UseSchemaRef; bool m_UseSchemaLoc; bool m_UseDTDRef; static string sm_DefaultSchemaNamespace; string m_CurrNsPrefix; map<string,string> m_NsNameToPrefix; map<string,string> m_NsPrefixToName; stack<string> m_NsPrefixes;};/* @} */#include <serial/objostrxml.inl>END_NCBI_SCOPE#endif/* ---------------------------------------------------------------------------* $Log: objostrxml.hpp,v $* Revision 1000.2 2004/04/12 17:15:24 gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.38** Revision 1.38 2004/01/08 17:42:34 gouriano* Added encoding Windows-1252.* Made it possible to omit document type declaration** Revision 1.37 2003/11/26 19:59:39 vasilche* GetPosition() and GetDataFormat() methods now are implemented* in parent classes CObjectIStream and CObjectOStream to avoid* pure virtual method call in destructors.** Revision 1.36 2003/09/16 14:49:15 gouriano* Enhanced AnyContent objects to support XML namespaces and attribute info items.** Revision 1.35 2003/08/25 15:58:32 gouriano* added possibility to use namespaces in XML i/o streams** Revision 1.34 2003/08/13 15:47:02 gouriano* implemented serialization of AnyContent objects** Revision 1.33 2003/07/02 13:01:00 gouriano* added ability to read/write XML files with reference to schema** Revision 1.32 2003/06/30 15:40:18 gouriano* added encoding (utf-8 or iso-8859-1)** Revision 1.31 2003/05/22 20:08:42 gouriano* added UTF8 strings** Revision 1.30 2003/04/15 16:18:32 siyan* Added doxygen support** Revision 1.29 2003/03/26 16:13:33 vasilche* Removed TAB symbols. Some formatting.** Revision 1.28 2003/02/05 17:08:51 gouriano* added possibility to read/write objects generated from an ASN.1 spec as "standard" XML - without scope prefixes** Revision 1.27 2003/01/22 20:51:10 gouriano* more control on how a float value is to be written** Revision 1.26 2003/01/10 16:53:36 gouriano* fixed a bug with optional class members** Revision 1.25 2002/12/26 19:33:06 gouriano* changed XML I/O streams to properly handle object copying** Revision 1.24 2002/12/23 18:38:51 dicuccio* Added WIn32 export specifier: NCBI_XSERIAL_EXPORT.* Moved all CVS logs to the end.** Revision 1.23 2002/12/12 21:10:26 gouriano* implemented handling of complex XML containers** Revision 1.22 2002/11/14 20:52:55 gouriano* added support of attribute lists** Revision 1.21 2002/10/18 14:25:52 gouriano* added possibility to enable/disable/set public identifier** Revision 1.20 2002/03/07 22:02:00 grichenk* Added "Separator" modifier for CObjectOStream** Revision 1.19 2001/11/09 19:07:22 grichenk* Fixed DTDFilePrefix functions** Revision 1.18 2001/10/17 20:41:20 grichenk* Added CObjectOStream::CharBlock class** Revision 1.17 2001/10/17 18:18:28 grichenk* Added CObjectOStreamXml::xxxFilePrefix() and* CObjectOStreamXml::xxxFileName()** Revision 1.16 2001/05/17 14:59:47 lavr* Typos corrected** Revision 1.15 2001/04/13 14:57:21 kholodov* Added: SetDTDFileName function to set DTD module name in XML header** Revision 1.14 2000/12/15 21:28:48 vasilche* Moved some typedefs/enums from corelib/ncbistd.hpp.* Added flags to CObjectIStream/CObjectOStream: eFlagAllowNonAsciiChars.* TByte typedef replaced by Uint1.** Revision 1.13 2000/12/15 15:38:01 vasilche* Added support of Int8 and long double.* Enum values now have type Int4 instead of long.** Revision 1.12 2000/11/07 17:25:12 vasilche* Fixed encoding of XML:* removed unnecessary apostrophes in OCTET STRING* removed unnecessary content in NULL* Added module names to CTypeInfo and CEnumeratedTypeValues** Revision 1.11 2000/10/20 15:51:27 vasilche* Fixed data error processing.* Added interface for constructing container objects directly into output stream.* object.hpp, object.inl and object.cpp were split to* objectinfo.*, objecttype.*, objectiter.* and objectio.*.** Revision 1.10 2000/10/04 19:18:54 vasilche* Fixed processing floating point data.** Revision 1.9 2000/09/29 16:18:15 vasilche* Fixed binary format encoding/decoding on 64 bit compulers.* Implemented CWeakMap<> for automatic cleaning map entries.* Added cleaning local hooks via CWeakMap<>.* Renamed ReadTypeName -> ReadFileHeader, ENoTypeName -> ENoFileHeader.* Added some user interface methods to CObjectIStream, CObjectOStream and* CObjectStreamCopier.** Revision 1.8 2000/09/18 20:00:07 vasilche* Separated CVariantInfo and CMemberInfo.* Implemented copy hooks.* All hooks now are stored in CTypeInfo/CMemberInfo/CVariantInfo.* Most type specific functions now are implemented via function pointers instead of virtual functions.** Revision 1.7 2000/09/01 13:16:02 vasilche* Implemented class/container/choice iterators.* Implemented CObjectStreamCopier for copying data without loading into memory.** Revision 1.6 2000/08/15 19:44:41 vasilche* Added Read/Write hooks:* CReadObjectHook/CWriteObjectHook for objects of specified type.* CReadClassMemberHook/CWriteClassMemberHook for specified members.* CReadChoiceVariantHook/CWriteChoiceVariant for specified choice variants.* CReadContainerElementHook/CWriteContainerElementsHook for containers.** Revision 1.5 2000/07/03 18:42:36 vasilche* Added interface to typeinfo via CObjectInfo and CConstObjectInfo.* Reduced header dependency.** Revision 1.4 2000/06/16 16:31:07 vasilche* Changed implementation of choices and classes info to allow use of the same classes in generated and user written classes.** Revision 1.3 2000/06/07 19:45:44 vasilche* Some code cleaning.* Macros renaming in more clear way.* BEGIN_NAMED_*_INFO, ADD_*_MEMBER, ADD_NAMED_*_MEMBER.** Revision 1.2 2000/06/01 19:06:58 vasilche* Added parsing of XML data.** Revision 1.1 2000/05/24 20:08:14 vasilche* Implemented XML dump.** ===========================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -