16 #if !defined(XALANXMLSERIALIZERBASE_HEADER_GUARD_1357924680)
17 #define XALANXMLSERIALIZERBASE_HEADER_GUARD_1357924680
40 XALAN_CPP_NAMESPACE_BEGIN
48 XALAN_USING_XERCES(MemoryManager)
64 initialize(MemoryManager& theManager);
88 MemoryManager& theManager,
102 return m_elemStack.getMemoryManager();
109 setDocumentLocator(
const Locator*
const locator);
116 const XMLCh*
const name,
117 AttributeList& attrs) = 0;
120 endElement(
const XMLCh*
const name) = 0;
124 const XMLCh*
const chars,
125 const unsigned int length);
129 const XMLCh*
const chars,
130 const unsigned int length) = 0;
133 entityReference(
const XMLCh*
const name) = 0;
137 const XMLCh*
const chars,
138 const unsigned int length);
141 processingInstruction(
142 const XMLCh*
const target,
143 const XMLCh*
const data);
149 comment(
const XMLCh*
const data) = 0;
153 const XMLCh*
const ch,
154 const unsigned int length);
157 getDoctypeSystem()
const;
160 getDoctypePublic()
const;
163 getEncoding()
const = 0;
180 return m_shouldWriteXMLHeader;
186 m_shouldWriteXMLHeader = b;
210 static const char s_doctypeHeaderStartString[];
217 static const char s_doctypeHeaderPublicString[];
224 static const char s_doctypeHeaderSystemString[];
231 static const char s_xmlHeaderStartString[];
238 static const char s_xmlHeaderEncodingString[];
245 static const char s_xmlHeaderStandaloneString[];
252 static const char s_xmlHeaderEndString[];
259 static const char s_defaultVersionString[];
266 static const XalanDOMChar s_xhtmlDocTypeString[];
273 static const char s_cdataOpenString[];
280 static const char s_cdataCloseString[];
287 static const char s_lessThanEntityString[];
294 static const char s_greaterThanEntityString[];
301 static const char s_ampersandEntityString[];
308 static const char s_quoteEntityString[];
325 static const XalanDOMChar s_doctypeHeaderStartString[];
332 static const XalanDOMChar s_doctypeHeaderPublicString[];
339 static const XalanDOMChar s_doctypeHeaderSystemString[];
346 static const XalanDOMChar s_xmlHeaderStartString[];
353 static const XalanDOMChar s_xmlHeaderEncodingString[];
360 static const XalanDOMChar s_xmlHeaderStandaloneString[];
367 static const XalanDOMChar s_xmlHeaderEndString[];
374 static const XalanDOMChar s_defaultVersionString[];
381 static const XalanDOMChar s_xhtmlDocTypeString[];
388 static const XalanDOMChar s_cdataOpenString[];
395 static const XalanDOMChar s_cdataCloseString[];
402 static const XalanDOMChar s_lessThanEntityString[];
409 static const XalanDOMChar s_greaterThanEntityString[];
416 static const XalanDOMChar s_ampersandEntityString[];
423 static const XalanDOMChar s_quoteEntityString[];
440 return theChar > s_lastSpecial ?
442 s_specialChars[theChar] > eNone;
448 return theChar > s_lastSpecial ?
450 s_specialChars[theChar] > eAttr;
458 return theChar > s_lastSpecial;
464 return theChar > s_lastSpecial ?
466 s_specialChars[theChar] == eForb;
472 return theChar > s_lastSpecial ?
474 s_specialChars[theChar] == eForb;
479 static const size_t s_lastSpecial;
481 static const char s_specialChars[];
493 return theChar > s_lastSpecial ?
495 s_specialChars[theChar] > eNone;
501 return theChar > s_lastSpecial ?
503 s_specialChars[theChar] > eAttr;
511 return theChar > s_lastSpecial;
517 return theChar > s_lastSpecial ?
519 s_specialChars[theChar] == eForb;
525 return theChar > s_lastSpecial ?
527 s_specialChars[theChar] == eCRFb;
531 static const size_t s_lastSpecial;
533 static const char s_specialChars[];
556 writeXMLHeader() = 0;
562 writeDoctypeDecl(
const XalanDOMChar* name) = 0;
565 writeProcessingInstruction(
567 const XMLCh* data) = 0;
593 if(!m_elemStack.empty())
596 if(
false == m_elemStack.back())
598 m_elemStack.back() =
true;
614 return m_needToOutputDoctypeDecl;
623 m_elemStack.push_back(
false);
629 return m_elemStack.empty();
640 bool fResult =
false;
642 if (m_elemStack.empty() ==
false)
644 fResult = m_elemStack.back();
646 m_elemStack.pop_back();
655 if(
true == m_needToOutputDoctypeDecl)
657 assert(m_doctypeSystem.empty() ==
false);
659 writeDoctypeDecl(name);
661 m_needToOutputDoctypeDecl =
false;
700 return 0xD800u <= theChar && theChar <= 0xDBFFu ?
true :
false;
706 return 0xDC00u <= theChar && theChar <= 0xDFFFu ?
true :
false;
710 decodeUTF16SurrogatePair(
711 XalanDOMChar theHighSurrogate,
712 XalanDOMChar theLowSurrogate,
713 MemoryManager& theManager);
721 throwInvalidUTF16SurrogateException(
723 MemoryManager& theManager);
732 throwInvalidUTF16SurrogateException(
735 MemoryManager& theManager);
744 throwInvalidCharacterException(
746 MemoryManager& theManager);
756 throwInvalidXMLCharacterException(
759 MemoryManager& theManager);
777 bool m_needToOutputDoctypeDecl;
782 bool m_shouldWriteXMLHeader;
788 BoolStackType m_elemStack;
793 static const XalanDOMChar s_xhtmlDocTypeString[];
800 XALAN_CPP_NAMESPACE_END
804 #endif // XALANXMLSERIALIZERBASE_HEADER_GUARD_1357924680
XalanVector< bool > BoolStackType
Definition: XalanXMLSerializerBase.hpp:189
bool operator==(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)
Definition: XalanVector.hpp:1111
bool m_spaceBeforeClose
Add space before '/>' for XHTML.
Definition: XalanXMLSerializerBase.hpp:673
const XalanDOMString & m_version
Tells the XML version, for writing out to the XML decl.
Definition: XalanXMLSerializerBase.hpp:688
static const XalanDOMString::size_type s_ampersandEntityStringLength
Definition: XalanXMLSerializerBase.hpp:303
static const XalanDOMString::size_type s_xmlHeaderEncodingStringLength
Definition: XalanXMLSerializerBase.hpp:240
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
bool childNodesWereAdded()
Determine if an element ever had any children added.
Definition: XalanXMLSerializerBase.hpp:638
bool isForbidden(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:515
static const XalanDOMString & s_1_1String
Definition: XalanXMLSerializerBase.hpp:194
static const XalanDOMString::size_type s_doctypeHeaderStartStringLength
Definition: XalanXMLSerializerBase.hpp:327
static const XalanDOMString::size_type s_quoteEntityStringLength
Definition: XalanXMLSerializerBase.hpp:425
static bool isUTF16LowSurrogate(XalanDOMChar theChar)
Definition: XalanXMLSerializerBase.hpp:704
static const XalanDOMString::size_type s_greaterThanEntityStringLength
Definition: XalanXMLSerializerBase.hpp:296
static const XalanDOMString::size_type s_doctypeHeaderPublicStringLength
Definition: XalanXMLSerializerBase.hpp:219
bool content(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:499
bool attribute(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:438
static const XalanDOMString & s_encodingString
The string "UTF-16".
Definition: XalanXMLSerializerBase.hpp:320
bool getNeedToOutputDoctypeDecl() const
Determine if it a DOCTYPE declaration needs to be written.
Definition: XalanXMLSerializerBase.hpp:612
bool outsideDocumentElement() const
Definition: XalanXMLSerializerBase.hpp:627
bool content(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:446
static const XalanDOMString::size_type s_lessThanEntityStringLength
Definition: XalanXMLSerializerBase.hpp:289
void openElementForChildren()
Open an element for possibile children.
Definition: XalanXMLSerializerBase.hpp:621
const XalanDOMString m_encoding
Definition: XalanXMLSerializerBase.hpp:695
void generateDoctypeDecl(const XalanDOMChar *name)
Definition: XalanXMLSerializerBase.hpp:653
static const XalanDOMString::size_type s_cdataOpenStringLength
Definition: XalanXMLSerializerBase.hpp:275
static const XalanDOMString::size_type s_xmlHeaderStartStringLength
Definition: XalanXMLSerializerBase.hpp:233
Definition: XalanXMLSerializerBase.hpp:486
MemoryManagerType & getMemoryManager()
Definition: XalanXMLSerializerBase.hpp:100
static const XalanDOMString::size_type s_quoteEntityStringLength
Definition: XalanXMLSerializerBase.hpp:310
XalanXMLSerializerBase serves as a base class for XML serializers based on FormatterListener events...
Definition: XalanXMLSerializerBase.hpp:56
bool range(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:454
void setShouldWriteXMLHeader(bool b)
Definition: XalanXMLSerializerBase.hpp:184
static const XalanDOMString::size_type s_xmlHeaderStandaloneStringLength
Definition: XalanXMLSerializerBase.hpp:362
static const XalanDOMString::size_type s_doctypeHeaderSystemStringLength
Definition: XalanXMLSerializerBase.hpp:341
static const XalanDOMString::size_type s_doctypeHeaderPublicStringLength
Definition: XalanXMLSerializerBase.hpp:334
Definition: XalanXMLSerializerBase.hpp:197
#define XALAN_XMLSUPPORT_EXPORT
Definition: XMLSupportDefinitions.hpp:33
static const XalanDOMString::size_type s_greaterThanEntityStringLength
Definition: XalanXMLSerializerBase.hpp:411
static const XalanDOMString & s_encodingString
The string "UTF-8".
Definition: XalanXMLSerializerBase.hpp:205
static const XalanDOMString::size_type s_xmlHeaderStartStringLength
Definition: XalanXMLSerializerBase.hpp:348
static const XalanDOMString::size_type s_defaultVersionStringLength
Definition: XalanXMLSerializerBase.hpp:261
bool isCharRefForbidden(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:470
const XalanDOMString m_doctypePublic
The public ID for the doc type.
Definition: XalanXMLSerializerBase.hpp:683
static const XalanDOMString::size_type s_doctypeHeaderStartStringLength
Definition: XalanXMLSerializerBase.hpp:212
static const XalanDOMString::size_type s_lessThanEntityStringLength
Definition: XalanXMLSerializerBase.hpp:404
const XalanDOMString m_standalone
Text for standalone part of header.
Definition: XalanXMLSerializerBase.hpp:693
bool isCharRefForbidden(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:523
static const XalanDOMString::size_type s_xhtmlDocTypeStringLength
Definition: XalanXMLSerializerBase.hpp:268
Definition: XalanOutputStream.hpp:47
static const XalanDOMString & s_1_0String
Definition: XalanXMLSerializerBase.hpp:192
bool attribute(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:491
static const XalanDOMString::size_type s_defaultVersionStringLength
Definition: XalanXMLSerializerBase.hpp:376
bool markParentForChildren()
Mark the parent element as having a child.
Definition: XalanXMLSerializerBase.hpp:591
Definition: XalanXMLSerializerBase.hpp:433
bool getShouldWriteXMLHeader() const
Definition: XalanXMLSerializerBase.hpp:178
static const XalanDOMString::size_type s_cdataCloseStringLength
Definition: XalanXMLSerializerBase.hpp:397
const XalanDOMString m_doctypeSystem
The System ID for the doc type.
Definition: XalanXMLSerializerBase.hpp:678
Definition: XalanDOMString.hpp:42
XalanDOMString::size_type length(const XalanDOMString &theString)
Get the length of a XalanDOMString.
Definition: DOMStringHelper.hpp:277
bool isForbidden(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:462
bool m_nextIsRaw
Tell if the next text should be raw.
Definition: XalanXMLSerializerBase.hpp:668
static const XalanDOMString::size_type s_cdataOpenStringLength
Definition: XalanXMLSerializerBase.hpp:390
static const XalanDOMString::size_type s_xmlHeaderEncodingStringLength
Definition: XalanXMLSerializerBase.hpp:355
static const XalanDOMString::size_type s_xhtmlDocTypeStringLength
Definition: XalanXMLSerializerBase.hpp:383
static const XalanDOMString::size_type s_doctypeHeaderSystemStringLength
Definition: XalanXMLSerializerBase.hpp:226
const XalanDOMString & getStandalone() const
Definition: XalanXMLSerializerBase.hpp:172
static const XalanDOMString::size_type s_ampersandEntityStringLength
Definition: XalanXMLSerializerBase.hpp:418
unsigned int size_type
Definition: XalanDOMString.hpp:53
static const XalanDOMString::size_type s_xmlHeaderEndStringLength
Definition: XalanXMLSerializerBase.hpp:254
static const XalanDOMString::size_type s_cdataCloseStringLength
Definition: XalanXMLSerializerBase.hpp:282
const XalanDOMString & getVersion() const
Definition: XalanXMLSerializerBase.hpp:166
static const XalanDOMString::size_type s_xmlHeaderEndStringLength
Definition: XalanXMLSerializerBase.hpp:369
static bool isUTF16HighSurrogate(XalanDOMChar theChar)
Definition: XalanXMLSerializerBase.hpp:698
Definition: XalanXMLSerializerBase.hpp:313
static const XalanDOMString::size_type s_xmlHeaderStandaloneStringLength
Definition: XalanXMLSerializerBase.hpp:247
bool range(XalanDOMChar theChar) const
Definition: XalanXMLSerializerBase.hpp:507