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