18 #if !defined(XALANXMLSERIALIZERBASE_HEADER_GUARD_1357924680) 19 #define XALANXMLSERIALIZERBASE_HEADER_GUARD_1357924680 42 XALAN_CPP_NAMESPACE_BEGIN
66 initialize(MemoryManager& theManager);
90 MemoryManager& theManager,
104 return m_elemStack.getMemoryManager();
111 setDocumentLocator(
const Locator*
const locator);
118 const XMLCh*
const name,
119 AttributeList& attrs) = 0;
122 endElement(
const XMLCh*
const name) = 0;
126 const XMLCh*
const chars,
131 const XMLCh*
const chars,
135 entityReference(
const XMLCh*
const name) = 0;
139 const XMLCh*
const chars,
143 processingInstruction(
144 const XMLCh*
const target,
145 const XMLCh*
const data);
151 comment(
const XMLCh*
const data) = 0;
155 const XMLCh*
const ch,
159 getDoctypeSystem()
const;
162 getDoctypePublic()
const;
182 return m_shouldWriteXMLHeader;
188 m_shouldWriteXMLHeader = b;
212 static const char s_doctypeHeaderStartString[];
219 static const char s_doctypeHeaderPublicString[];
226 static const char s_doctypeHeaderSystemString[];
233 static const char s_xmlHeaderStartString[];
240 static const char s_xmlHeaderEncodingString[];
247 static const char s_xmlHeaderStandaloneString[];
254 static const char s_xmlHeaderEndString[];
261 static const char s_defaultVersionString[];
268 static const XalanDOMChar s_xhtmlDocTypeString[];
275 static const char s_cdataOpenString[];
282 static const char s_cdataCloseString[];
289 static const char s_lessThanEntityString[];
296 static const char s_greaterThanEntityString[];
303 static const char s_ampersandEntityString[];
310 static const char s_quoteEntityString[];
327 static const XalanDOMChar s_doctypeHeaderStartString[];
334 static const XalanDOMChar s_doctypeHeaderPublicString[];
341 static const XalanDOMChar s_doctypeHeaderSystemString[];
348 static const XalanDOMChar s_xmlHeaderStartString[];
355 static const XalanDOMChar s_xmlHeaderEncodingString[];
362 static const XalanDOMChar s_xmlHeaderStandaloneString[];
369 static const XalanDOMChar s_xmlHeaderEndString[];
376 static const XalanDOMChar s_defaultVersionString[];
383 static const XalanDOMChar s_xhtmlDocTypeString[];
390 static const XalanDOMChar s_cdataOpenString[];
397 static const XalanDOMChar s_cdataCloseString[];
404 static const XalanDOMChar s_lessThanEntityString[];
411 static const XalanDOMChar s_greaterThanEntityString[];
418 static const XalanDOMChar s_ampersandEntityString[];
425 static const XalanDOMChar s_quoteEntityString[];
442 return theChar > s_lastSpecial ?
444 s_specialChars[theChar] > eNone;
450 return theChar > s_lastSpecial ?
452 s_specialChars[theChar] > eAttr;
460 return theChar > s_lastSpecial;
466 return theChar > s_lastSpecial ?
468 s_specialChars[theChar] == eForb;
474 return theChar > s_lastSpecial ?
476 s_specialChars[theChar] == eForb;
481 static const size_t s_lastSpecial;
483 static const char s_specialChars[];
495 return theChar > s_lastSpecial ?
497 s_specialChars[theChar] > eNone;
503 return theChar > s_lastSpecial ?
505 s_specialChars[theChar] > eAttr;
513 return theChar > s_lastSpecial;
519 return theChar > s_lastSpecial ?
521 s_specialChars[theChar] == eForb;
527 return theChar > s_lastSpecial ?
529 s_specialChars[theChar] == eCRFb;
533 static const size_t s_lastSpecial;
535 static const char s_specialChars[];
558 writeXMLHeader() = 0;
564 writeDoctypeDecl(
const XalanDOMChar* name) = 0;
567 writeProcessingInstruction(
569 const XMLCh* data) = 0;
595 if(!m_elemStack.empty())
598 if(
false == m_elemStack.back())
600 m_elemStack.back() =
true;
616 return m_needToOutputDoctypeDecl;
625 m_elemStack.push_back(
false);
631 return m_elemStack.empty();
642 bool fResult =
false;
644 if (m_elemStack.empty() ==
false)
646 fResult = m_elemStack.back();
648 m_elemStack.pop_back();
657 if(
true == m_needToOutputDoctypeDecl)
659 assert(m_doctypeSystem.empty() ==
false);
661 writeDoctypeDecl(name);
663 m_needToOutputDoctypeDecl =
false;
702 return 0xD800u <= theChar && theChar <= 0xDBFFu ? true :
false;
708 return 0xDC00u <= theChar && theChar <= 0xDFFFu ? true :
false;
711 static XalanUnicodeChar
712 decodeUTF16SurrogatePair(
713 XalanDOMChar theHighSurrogate,
714 XalanDOMChar theLowSurrogate,
715 MemoryManager& theManager);
723 throwInvalidUTF16SurrogateException(
725 MemoryManager& theManager);
734 throwInvalidUTF16SurrogateException(
737 MemoryManager& theManager);
746 throwInvalidCharacterException(
748 MemoryManager& theManager);
758 throwInvalidXMLCharacterException(
761 MemoryManager& theManager);
779 bool m_needToOutputDoctypeDecl;
784 bool m_shouldWriteXMLHeader;
790 BoolStackType m_elemStack;
795 static const XalanDOMChar s_xhtmlDocTypeString[];
797 static const size_type s_xhtmlDocTypeStringLength;
802 XALAN_CPP_NAMESPACE_END
806 #endif // XALANXMLSERIALIZERBASE_HEADER_GUARD_1357924680 XalanVector< bool > BoolStackType
const XalanDOMString & getStandalone() const
bool range(XalanDOMChar theChar) const
bool m_spaceBeforeClose
Add space before '/>' for XHTML.
static const size_type s_xmlHeaderEndStringLength
const XalanDOMString & m_version
Tells the XML version, for writing out to the XML decl.
static const size_type s_xmlHeaderStartStringLength
static const size_type s_cdataCloseStringLength
static const size_type s_quoteEntityStringLength
bool childNodesWereAdded()
Determine if an element ever had any children added.
bool isForbidden(XalanDOMChar theChar) const
bool isCharRefForbidden(XalanDOMChar theChar) const
static const XalanDOMString & s_1_1String
bool getShouldWriteXMLHeader() const
bool content(XalanDOMChar theChar) const
bool isCharRefForbidden(XalanDOMChar theChar) const
bool attribute(XalanDOMChar theChar) const
static const size_type s_defaultVersionStringLength
bool getNeedToOutputDoctypeDecl() const
Determine if it a DOCTYPE declaration needs to be written.
static bool isUTF16LowSurrogate(XalanDOMChar theChar)
static const size_type s_ampersandEntityStringLength
static const size_type s_xmlHeaderStandaloneStringLength
static const size_type s_xhtmlDocTypeStringLength
static const size_type s_doctypeHeaderPublicStringLength
static const XalanDOMString & s_encodingString
The string "UTF-16".
static const size_type s_doctypeHeaderSystemStringLength
void openElementForChildren()
Open an element for possibile children.
static const size_type s_xmlHeaderEndStringLength
static const size_type s_xmlHeaderStartStringLength
bool outsideDocumentElement() const
const XalanDOMString m_encoding
static const size_type s_ampersandEntityStringLength
static const size_type s_doctypeHeaderPublicStringLength
void generateDoctypeDecl(const XalanDOMChar *name)
bool isForbidden(XalanDOMChar theChar) const
static const size_type s_greaterThanEntityStringLength
static const size_type s_xhtmlDocTypeStringLength
static const size_type s_xmlHeaderStandaloneStringLength
static const size_type s_doctypeHeaderStartStringLength
static const size_type s_cdataOpenStringLength
static const size_type s_lessThanEntityStringLength
bool range(XalanDOMChar theChar) const
XalanXMLSerializerBase serves as a base class for XML serializers based on FormatterListener events...
static const size_type s_defaultVersionStringLength
static const size_type s_quoteEntityStringLength
void setShouldWriteXMLHeader(bool b)
static const size_type s_lessThanEntityStringLength
#define XALAN_XMLSUPPORT_EXPORT
static const XalanDOMString & s_encodingString
The string "UTF-8".
static const size_type s_xmlHeaderEncodingStringLength
static const size_type s_cdataOpenStringLength
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
static const size_type s_greaterThanEntityStringLength
const XalanDOMString m_doctypePublic
The public ID for the doc type.
static const size_type s_doctypeHeaderSystemStringLength
const XalanDOMString m_standalone
Text for standalone part of header.
static const size_type s_cdataCloseStringLength
bool content(XalanDOMChar theChar) const
bool attribute(XalanDOMChar theChar) const
MemoryManager & getMemoryManager()
static const XalanDOMString & s_1_0String
bool markParentForChildren()
Mark the parent element as having a child.
const XalanDOMString m_doctypeSystem
The System ID for the doc type.
bool operator==(const ElemAttributeSet &theLHS, const ElemAttributeSet &theRHS)
XalanDOMString::size_type length(const XalanDOMString &theString)
Get the length of a XalanDOMString.
const XalanDOMString & getVersion() const
bool m_nextIsRaw
Tell if the next text should be raw.
static const size_type s_xmlHeaderEncodingStringLength
XALAN_CPP_NAMESPACE_BEGIN XALAN_USING_XERCES(Locator)
static bool isUTF16HighSurrogate(XalanDOMChar theChar)
static const size_type s_doctypeHeaderStartStringLength