diff options
Diffstat (limited to 'configmgr/source/xmlreader.hxx')
-rw-r--r-- | configmgr/source/xmlreader.hxx | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/configmgr/source/xmlreader.hxx b/configmgr/source/xmlreader.hxx deleted file mode 100644 index 83ccac148cd4..000000000000 --- a/configmgr/source/xmlreader.hxx +++ /dev/null @@ -1,186 +0,0 @@ -/************************************************************************* -* -* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -* -* Copyright 2000, 2010 Oracle and/or its affiliates. -* -* OpenOffice.org - a multi-platform office productivity suite -* -* This file is part of OpenOffice.org. -* -* OpenOffice.org is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License version 3 -* only, as published by the Free Software Foundation. -* -* OpenOffice.org is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License version 3 for more details -* (a copy is included in the LICENSE file that accompanied this code). -* -* You should have received a copy of the GNU Lesser General Public License -* version 3 along with OpenOffice.org. If not, see -* <http://www.openoffice.org/license.html> -* for a copy of the LGPLv3 License. -* -************************************************************************/ - -#ifndef INCLUDED_CONFIGMGR_SOURCE_XMLREADER_HXX -#define INCLUDED_CONFIGMGR_SOURCE_XMLREADER_HXX - -#include "sal/config.h" - -#include <stack> -#include <vector> - -#include "boost/noncopyable.hpp" -#include "com/sun/star/container/NoSuchElementException.hpp" -#include "com/sun/star/uno/RuntimeException.hpp" -#include "osl/file.h" -#include "rtl/ustring.hxx" -#include "sal/types.h" - -#include "pad.hxx" -#include "span.hxx" - -namespace configmgr { - -class XmlReader: private boost::noncopyable { -public: - explicit XmlReader(rtl::OUString const & fileUrl) - SAL_THROW(( - com::sun::star::container::NoSuchElementException, - com::sun::star::uno::RuntimeException)); - - ~XmlReader(); - - enum Namespace { - NAMESPACE_NONE, NAMESPACE_XML, NAMESPACE_OOR, NAMESPACE_XS, - NAMESPACE_XSI, NAMESPACE_OTHER }; - - enum Text { TEXT_NONE, TEXT_RAW, TEXT_NORMALIZED }; - - enum Result { RESULT_BEGIN, RESULT_END, RESULT_TEXT, RESULT_DONE }; - - // RESULT_BEGIN: data = localName, ns = ns - // RESULT_END: data, ns unused - // RESULT_TEXT: data = text, ns unused - Result nextItem(Text reportText, Span * data, Namespace * ns); - - bool nextAttribute(Namespace * ns, Span * localName); - - // the span returned by getAttributeValue is only valid until the next call - // to nextItem or getAttributeValue - Span getAttributeValue(bool fullyNormalize); - - Namespace getNamespace(Span const & prefix) const; - - rtl::OUString getUrl() const; - -private: - inline char read() { return pos_ == end_ ? '\0' : *pos_++; } - - inline char peek() { return pos_ == end_ ? '\0' : *pos_; } - - void normalizeLineEnds(Span const & text); - - void skipSpace(); - - bool skipComment(); - - void skipProcessingInstruction(); - - void skipDocumentTypeDeclaration(); - - Span scanCdataSection(); - - bool scanName(char const ** nameColon); - - Namespace scanNamespaceIri(char const * begin, char const * end); - - char const * handleReference(char const * position, char const * end); - - Span handleAttributeValue( - char const * begin, char const * end, bool fullyNormalize); - - Result handleStartTag(Namespace * ns, Span * localName); - - Result handleEndTag(); - - void handleElementEnd(); - - Result handleSkippedText(Span * data, Namespace * ns); - - Result handleRawText(Span * text); - - Result handleNormalizedText(Span * text); - - struct NamespaceData { - Span prefix; - Namespace ns; - - NamespaceData() {} - - NamespaceData(Span const & thePrefix, Namespace theNs): - prefix(thePrefix), ns(theNs) {} - }; - - typedef std::vector< NamespaceData > NamespaceList; - - struct ElementData { - Span name; - NamespaceList::size_type inheritedNamespaces; - Namespace defaultNamespace; - - ElementData( - Span const & theName, - NamespaceList::size_type theInheritedNamespaces, - Namespace theDefaultNamespace): - name(theName), inheritedNamespaces(theInheritedNamespaces), - defaultNamespace(theDefaultNamespace) - {} - }; - - typedef std::stack< ElementData > ElementStack; - - struct AttributeData { - char const * nameBegin; - char const * nameEnd; - char const * nameColon; - char const * valueBegin; - char const * valueEnd; - - AttributeData( - char const * theNameBegin, char const * theNameEnd, - char const * theNameColon, char const * theValueBegin, - char const * theValueEnd): - nameBegin(theNameBegin), nameEnd(theNameEnd), - nameColon(theNameColon), valueBegin(theValueBegin), - valueEnd(theValueEnd) - {} - }; - - typedef std::vector< AttributeData > Attributes; - - enum State { - STATE_CONTENT, STATE_START_TAG, STATE_END_TAG, STATE_EMPTY_ELEMENT_TAG, - STATE_DONE }; - - rtl::OUString fileUrl_; - oslFileHandle fileHandle_; - sal_uInt64 fileSize_; - void * fileAddress_; - NamespaceList namespaces_; - ElementStack elements_; - char const * pos_; - char const * end_; - State state_; - Attributes attributes_; - Attributes::iterator currentAttribute_; - bool firstAttribute_; - Pad pad_; -}; - -} - -#endif |