You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ja...@apache.org on 2001/07/09 17:20:17 UTC
cvs commit: xml-xerces/perl/t DOMException.t IDOMParser.t IDOM_DOMException.t SAXException.t
jasons 01/07/09 08:20:17
Added: perl/Xerces_headers/dom DOM_DOMException.hpp
DOM_RangeException.hpp
perl/Xerces_headers/idom IDOM.hpp IDOM_Attr.hpp
IDOM_CDATASection.hpp IDOM_CharacterData.hpp
IDOM_Comment.hpp IDOM_DOMException.hpp
IDOM_DOMImplementation.hpp IDOM_Document.hpp
IDOM_DocumentFragment.hpp IDOM_DocumentType.hpp
IDOM_Element.hpp IDOM_Entity.hpp
IDOM_EntityReference.hpp IDOM_NamedNodeMap.hpp
IDOM_Node.hpp IDOM_NodeFilter.hpp
IDOM_NodeIterator.hpp IDOM_NodeList.hpp
IDOM_Notation.hpp IDOM_ProcessingInstruction.hpp
IDOM_Range.hpp IDOM_RangeException.hpp
IDOM_Text.hpp IDOM_TreeWalker.hpp
perl/Xerces_headers/parsers IDOMParser.hpp
perl/t DOMException.t IDOMParser.t IDOM_DOMException.t
SAXException.t
Log:
New headers/tests for IDOM support and Exception handling
Revision Changes Path
1.1 xml-xerces/perl/Xerces_headers/dom/DOM_DOMException.hpp
Index: DOM_DOMException.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2000 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: DOM_DOMException.hpp,v $
* Revision 1.1 2001/07/09 15:20:04 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.7 2000/03/02 19:53:54 roddey
* This checkin includes many changes done while waiting for the
* 1.1.0 code to be finished. I can't list them all here, but a list is
* available elsewhere.
*
* Revision 1.6 2000/02/24 20:11:27 abagchi
* Swat for removing Log from API docs
*
* Revision 1.5 2000/02/10 19:52:08 abagchi
* Added docs for enum
*
* Revision 1.4 2000/02/06 07:47:28 rahulj
* Year 2K copyright swat.
*
* Revision 1.3 2000/02/04 05:46:31 andyh
* Change offsets and lengths form signed to unsigned
*
* Revision 1.2 2000/01/05 01:16:06 andyh
* DOM Level 2 core, namespace support added.
*
* Revision 1.1.1.1 1999/11/09 01:08:53 twl
* Initial checkin
*
* Revision 1.3 1999/11/08 20:44:14 rahul
* Swat for adding in Product name and CVS comment log variable.
*
*/
// #ifndef DOMException_HEADER_GUARD_
// #define DOMException_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
// #include <dom/DOMString.hpp>
/**
* Encapsulate a general DOM error or warning.
*
* <p> The DOM will create and throw an instance of DOMException
* when an error condition is detected. Exceptions can occur
* when an application directly manipulates the DOM document
* tree that is produced by the parser, or when a document tree
* is created from scratch using the DOM API. DOM exceptions will
* not be generated by the parser while constructing a document
* tree from an XML source document.
*
* <p>Unlike the other classes in the C++ DOM API, DOM_DOMException
* is NOT a reference to an underlying implementation class, and
* does not provide automatic memory management. Code that catches
* a DOM exception is responsible for deleting it, or otherwise
* arranging for its disposal.
*
*/
class /*CDOM_EXPORT*/ DOM_DOMException {
public:
/** @name Enumerators for DOM Exceptions */
//@{
enum ExceptionCode {
INDEX_SIZE_ERR = 1,
DOMSTRING_SIZE_ERR = 2,
HIERARCHY_REQUEST_ERR = 3,
WRONG_DOCUMENT_ERR = 4,
INVALID_CHARACTER_ERR = 5,
NO_DATA_ALLOWED_ERR = 6,
NO_MODIFICATION_ALLOWED_ERR = 7,
NOT_FOUND_ERR = 8,
NOT_SUPPORTED_ERR = 9,
INUSE_ATTRIBUTE_ERR = 10,
INVALID_STATE_ERR = 11,
SYNTAX_ERR = 12,
INVALID_MODIFICATION_ERR = 13,
NAMESPACE_ERR = 14,
INVALID_ACCESS_ERR = 15
};
//@}
public:
/** @name Constructors and assignment operator */
//@{
/**
* Default constructor for DOM_DOMException.
*
*/
DOM_DOMException();
/**
* Constructor which takes an error code and a message.
*
* @param code The error code which indicates the exception
* @param message The string containing the error message
*/
// DOM_DOMException(short code, const DOMString &message);
/**
* Copy constructor.
*
* @param other The object to be copied.
*/
// DOM_DOMException(const DOM_DOMException &other);
//@}
/** @name Destructor. */
//@{
/**
* Destructor for DOM_DOMException. Applications are responsible
* for deleting DOM_Exception objects that they catch after they
* have completed their exception processing.
*
*/
// virtual ~DOM_DOMException();
//@}
/** @name Public variables. */
//@{
/**
* A code value, from the set defined by the ExceptionCode enum,
* indicating the type of error that occured.
*/
int code;
/**
* A string value. Applications may use this field to hold an error
* message. The field value is not set by the DOM implementation,
* meaning that the string will be empty when an exception is first
* thrown.
*/
DOMString msg;
//@}
};
//#endif
1.1 xml-xerces/perl/Xerces_headers/dom/DOM_RangeException.hpp
Index: DOM_RangeException.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2000 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: DOM_RangeException.hpp,v $
* Revision 1.1 2001/07/09 15:20:04 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.1 2000/07/28 01:33:31 aruna1
* DOM Level 2 Range feature introduced
*
*/
#ifndef DOM_RangeException_HEADER_GUARD_
#define DOM_RangeException_HEADER_GUARD_
// #include <dom/DOM_DOMException.hpp>
/**
* Encapsulate range related DOM error or warning. DOM level 2 implementation.
*
* <p> The DOM will create and throw an instance of DOM_RangeException
* when an error condition in range is detected. Exceptions can occur
* when an application directly manipulates the range elements in DOM document
* tree that is produced by the parser.
*
* <p>Unlike the other classes in the C++ DOM API, DOM_RangeException
* is NOT a reference to an underlying implementation class, and
* does not provide automatic memory management. Code that catches
* a DOM Range exception is responsible for deleting it, or otherwise
* arranging for its disposal.
*
*/
class /*CDOM_EXPORT*/ DOM_RangeException : public DOM_DOMException {
public:
/** @name Enumerators for DOM Range Exceptions */
//@{
enum RangeExceptionCode {
BAD_BOUNDARYPOINTS_ERR = 1,
INVALID_NODE_TYPE_ERR = 2
};
//@}
public:
/** @name Constructors and assignment operator */
//@{
/**
* Default constructor for DOM_RangeException.
*
*/
DOM_RangeException();
/**
* Constructor which takes an error code and a message.
*
* @param code The error code which indicates the exception
* @param message The string containing the error message
*/
// DOM_RangeException(RangeExceptionCode code, const DOMString &message);
/**
* Copy constructor.
*
* @param other The object to be copied.
*/
// DOM_RangeException(const DOM_RangeException &other);
//@}
/** @name Destructor. */
//@{
/**
* Destructor for DOM_RangeException. Applications are responsible
* for deleting DOM_RangeException objects that they catch after they
* have completed their exception processing.
*
*/
// virtual ~DOM_RangeException();
//@}
/** @name Public variables. */
//@{
/**
* A code value, from the set defined by the RangeExceptionCode enum,
* indicating the type of error that occured.
*/
int code;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM.hpp
Index: IDOM.hpp
===================================================================
#ifndef IDOM_HEADER_GUARD_HPP
#define IDOM_HEADER_GUARD_HPP
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM.hpp,v $
* Revision 1.1 2001/07/09 15:20:07 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.4 2001/06/08 21:23:02 tng
* IDOM: Remove the non-standard extension where XML Decl as a node
*
* Revision 1.3 2001/06/04 20:11:53 tng
* IDOM: Complete IDNodeIterator, IDTreeWalker, IDNodeFilter.
*
* Revision 1.2 2001/05/11 13:25:48 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:26 andyh
* IDOM
*
*/
//
// This is the primary header file for inclusion in application
// programs using the C++ XML Document Object Model API.
//
#include <idom/IDOM_Attr.hpp>
#include <idom/IDOM_CDATASection.hpp>
#include <idom/IDOM_CharacterData.hpp>
#include <idom/IDOM_Comment.hpp>
#include <idom/IDOM_Document.hpp>
#include <idom/IDOM_DocumentFragment.hpp>
#include <idom/IDOM_DocumentType.hpp>
#include <idom/IDOM_DOMException.hpp>
#include <idom/IDOM_DOMImplementation.hpp>
#include <idom/IDOM_Element.hpp>
#include <idom/IDOM_Entity.hpp>
#include <idom/IDOM_EntityReference.hpp>
#include <idom/IDOM_NamedNodeMap.hpp>
#include <idom/IDOM_Node.hpp>
#include <idom/IDOM_NodeFilter.hpp>
#include <idom/IDOM_NodeIterator.hpp>
#include <idom/IDOM_NodeList.hpp>
#include <idom/IDOM_Notation.hpp>
#include <idom/IDOM_ProcessingInstruction.hpp>
#include <idom/IDOM_Range.hpp>
#include <idom/IDOM_RangeException.hpp>
#include <idom/IDOM_Text.hpp>
#include <idom/IDOM_TreeWalker.hpp>
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Attr.hpp
Index: IDOM_Attr.hpp
===================================================================
#ifndef IDOM_Attr_HEADER_GUARD_
#define IDOM_Attr_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_Attr.hpp,v $
* Revision 1.1 2001/07/09 15:20:07 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:48 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:27 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
class IDOM_Element;
/**
* The <code>IDOM_Attr</code> class refers to an attribute of an XML element.
*
* Typically the allowable values for the
* attribute are defined in a documenttype definition.
* <p><code>IDOM_Attr</code> objects inherit the <code>DOM_Node</code> interface, but
* since attributes are not actually child nodes of the elements they are associated with, the
* DOM does not consider them part of the document tree. Thus, the
* <code>DOM_Node</code> attributes <code>parentNode</code>,
* <code>previousSibling</code>, and <code>nextSibling</code> have a null
* value for <code>IDOM_Attr</code> objects. The DOM takes the view that
* attributes are properties of elements rather than having a separate
* identity from the elements they are associated with; this should make it
* more efficient to implement such features as default attributes associated
* with all elements of a given type. Furthermore, attribute nodes
* may not be immediate children of a <code>DocumentFragment</code>. However,
* they can be associated with <code>Element</code> nodes contained within a
* <code>DocumentFragment</code>. In short, users of the DOM
* need to be aware that <code>Attr</code> nodes have some things in common
* with other objects inheriting the <code>Node</code> interface, but they
* also are quite distinct.
*
*/
class /*CDOM_EXPORT*/ IDOM_Attr: public IDOM_Node {
// protected:
// IDOM_Attr() {};
// IDOM_Attr(const IDOM_Attr &other) {};
// IDOM_Attr & operator = (const IDOM_Attr &other) {return *this;};
public:
/** @name Destructor */
//@{
/**
* Destructor. The object being destroyed is a reference to the Attribute
* "node", not the underlying attribute itself.
*
*/
// virtual ~IDOM_Attr() {};
//@}
/** @name Getter functions */
//@{
/**
* Returns the name of this attribute.
*/
virtual const XMLCh * getName() const/* = 0*/;
/**
*
* Returns true if the attribute received its value explicitly in the
* XML document, or if a value was assigned programatically with
* the setValue function. Returns false if the attribute value
* came from the default value declared in the document's DTD.
*/
virtual bool getSpecified() const/* = 0*/;
/**
* Returns the value of the attribute.
*
* The value of the attribute is returned as a string.
* Character and general entity references are replaced with their values.
*/
virtual const XMLCh * getValue() const/* = 0*/;
//@}
/** @name Setter functions */
//@{
/**
* Sets the value of the attribute. A text node with the unparsed contents
* of the string will be created.
*
* @param value The value of the DOM attribute to be set
*/
virtual void setValue(const XMLCh *value)/* = 0*/;
//@}
/** @name Functions introduced in DOM Level 2. */
//@{
/**
* The <code>DOM_Element</code> node this attribute is attached to or
* <code>null</code> if this attribute is not in use.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Element *getOwnerElement() const/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_CDATASection.hpp
Index: IDOM_CDATASection.hpp
===================================================================
#ifndef IDOM_CDataSection_HEADER_GUARD_
#define IDOM_CDataSection_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_CDATASection.hpp,v $
* Revision 1.1 2001/07/09 15:20:07 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:49 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:27 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Text.hpp"
/**
* <code>DOM_CDataSection</code> objects refer to the data from an
* XML CDATA section. These are used to escape blocks of text containing characters
* that would otherwise be regarded as markup.
*
* <p>Note that the string data associated with the CDATA section may
* contain characters that need to be escaped when appearing in an
* XML document outside of a CDATA section.
* <p> The <code>IDOM_CDATASection</code> class inherits from the
* <code>DOM_CharacterData</code> class through the <code>Text</code>
* interface. Adjacent CDATASection nodes are not merged by use
* of the Element.normalize() method.
*/
class /*CDOM_EXPORT*/ IDOM_CDATASection: public IDOM_Text {
// protected:
// IDOM_CDATASection() {};
// IDOM_CDATASection(const IDOM_CDATASection &other) {};
// IDOM_CDATASection & operator = (const IDOM_CDATASection &other) {return *this;};
public:
// virtual ~IDOM_CDATASection() {};
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_CharacterData.hpp
Index: IDOM_CharacterData.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_CharacterData.hpp,v $
* Revision 1.1 2001/07/09 15:20:07 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.3 2001/06/04 20:44:14 tng
* IDOM: Comment should say XMLCh instead of DOMString
*
* Revision 1.2 2001/05/11 13:25:49 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:27 andyh
* IDOM
*
*/
#ifndef IDOM_CharacterData_HEADER_GUARD_
#define IDOM_CharacterData_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
// #include <idom/IDOM_Node.hpp>
/**
* The <code>IDOM_CharacterData</code> interface extends Node with a set of
* methods for accessing character data in the DOM.
*
* For clarity this set is defined here rather than on each class that uses
* these methods. No DOM objects correspond directly to
* <code>CharacterData</code>, though <code>Text</code> and others do inherit
* the interface from it. All <code>offset</code>s in this interface start
* from 0, and index in terms of Unicode 16 bit storage units.
*/
class /*CDOM_EXPORT*/ IDOM_CharacterData: public IDOM_Node {
// protected:
// IDOM_CharacterData() {};
// IDOM_CharacterData(const IDOM_CharacterData &other) {};
// IDOM_CharacterData & operator = (const IDOM_CharacterData &other) {return *this;};
public:
/** @name Destructor. */
//@{
/**
* Destructor for IDOM_CharacterData. The object being destroyed
* is the reference to the Character Data node, not the character
* data itself.
*/
// virtual ~IDOM_CharacterData() {};
//@}
/** @name Getter functions. */
//@{
/**
* Returns the character data of the node that implements this interface.
*
* The DOM implementation may not put arbitrary limits on the amount of data that
* may be stored in a <code>CharacterData</code> node. However,
* implementation limits may mean that the entirety of a node's data may
* not fit into a single <code>XMLCh* String</code>. In such cases, the user
* may call <code>substringData</code> to retrieve the data in
* appropriately sized pieces.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
*/
virtual const XMLCh * getData() const/* = 0*/;
/**
* Returns the number of characters that are available through <code>data</code> and
* the <code>substringData</code> method below.
*
* This may have the value
* zero, i.e., <code>CharacterData</code> nodes may be empty.
*/
virtual unsigned int getLength() const/* = 0*/;
/**
* Extracts a range of data from the node.
*
* @param offset Start offset of substring to extract.
* @param count The number of characters to extract.
* @return The specified substring. If the sum of <code>offset</code> and
* <code>count</code> exceeds the <code>length</code>, then all
* characters to the end of the data are returned.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
* than the number of characters in <code>data</code>, or if the
* specified <code>count</code> is negative.
*/
virtual const XMLCh * substringData(unsigned int offset,
unsigned int count) const/* = 0*/;
//@}
/** @name Functions that set or change data. */
//@{
/**
* Append the string to the end of the character data of the node.
*
* Upon success, <code>data</code> provides access to the concatenation of
* <code>data</code> and the <code>XMLCh* String</code> specified.
* @param arg The <code>XMLCh* String</code> to append.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void appendData(const XMLCh *arg)/* = 0*/;
/**
* Insert a string at the specified character offset.
*
* @param offset The character offset at which to insert.
* @param arg The <code>XMLCh* String</code> to insert.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
* than the number of characters in <code>data</code>.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void insertData(unsigned int offset, const XMLCh *arg)/* = 0*/;
/**
* Remove a range of characters from the node.
*
* Upon success,
* <code>data</code> and <code>length</code> reflect the change.
* @param offset The offset from which to remove characters.
* @param count The number of characters to delete. If the sum of
* <code>offset</code> and <code>count</code> exceeds <code>length</code>
* then all characters from <code>offset</code> to the end of the data
* are deleted.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
* than the number of characters in <code>data</code>, or if the
* specified <code>count</code> is negative.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void deleteData(unsigned int offset,
unsigned int count)/* = 0*/;
/**
* Replace the characters starting at the specified character offset with
* the specified string.
*
* @param offset The offset from which to start replacing.
* @param count The number of characters to replace. If the sum of
* <code>offset</code> and <code>count</code> exceeds <code>length</code>
* , then all characters to the end of the data are replaced (i.e., the
* effect is the same as a <code>remove</code> method call with the same
* range, followed by an <code>append</code> method invocation).
* @param arg The <code>XMLCh* String</code> with which the range must be
* replaced.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
* than the number of characters in <code>data</code>, or if the
* specified <code>count</code> is negative.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void replaceData(unsigned int offset,
unsigned int count,
const XMLCh *arg)/* = 0*/;
/**
* Sets the character data of the node that implements this interface.
*
* @param data The <code>XMLCh* String</code> to set.
*/
virtual void setData(const XMLCh *data)/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Comment.hpp
Index: IDOM_Comment.hpp
===================================================================
#ifndef IDOM_Comment_HEADER_GUARD_
#define IDOM_Comment_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_Comment.hpp,v $
* Revision 1.1 2001/07/09 15:20:08 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:49 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:27 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_CharacterData.hpp"
/**
* Class to refer to XML comment nodes in the DOM.
*
* <P>The string value contains all of the characters between
* the starting '<code><!--</code>' and ending '<code>--></code>'.
*/
class /*CDOM_EXPORT*/ IDOM_Comment: public IDOM_CharacterData {
// protected:
// IDOM_Comment() {};
// IDOM_Comment(const IDOM_Comment &other) {};
// IDOM_Comment & operator = (const IDOM_Comment &other) {return *this;};
public:
// virtual ~IDOM_Comment() {};
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_DOMException.hpp
Index: IDOM_DOMException.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_DOMException.hpp,v $
* Revision 1.1 2001/07/09 15:20:08 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:50 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:29 andyh
* IDOM
*
*/
#ifndef IDOMException_HEADER_GUARD_
#define IDOMException_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
/**
* Encapsulate a general DOM error or warning.
*
* <p> The DOM will create and throw an instance of DOMException
* when an error condition is detected. Exceptions can occur
* when an application directly manipulates the DOM document
* tree that is produced by the parser, or when a document tree
* is created from scratch using the DOM API. DOM exceptions will
* not be generated by the parser while constructing a document
* tree from an XML source document.
*
* <p>Unlike the other classes in the C++ DOM API, DOM_DOMException
* is NOT a reference to an underlying implementation class, and
* does not provide automatic memory management. Code that catches
* a DOM exception is responsible for deleting it, or otherwise
* arranging for its disposal.
*
*/
class /*CDOM_EXPORT*/ IDOM_DOMException {
public:
/** @name Enumerators for DOM Exceptions */
//@{
enum ExceptionCode {
INDEX_SIZE_ERR = 1,
DOMSTRING_SIZE_ERR = 2,
HIERARCHY_REQUEST_ERR = 3,
WRONG_DOCUMENT_ERR = 4,
INVALID_CHARACTER_ERR = 5,
NO_DATA_ALLOWED_ERR = 6,
NO_MODIFICATION_ALLOWED_ERR = 7,
NOT_FOUND_ERR = 8,
NOT_SUPPORTED_ERR = 9,
INUSE_ATTRIBUTE_ERR = 10,
INVALID_STATE_ERR = 11,
SYNTAX_ERR = 12,
INVALID_MODIFICATION_ERR = 13,
NAMESPACE_ERR = 14,
INVALID_ACCESS_ERR = 15
};
//@}
public:
/** @name Constructors and assignment operator */
//@{
/**
* Default constructor for IDOM_DOMException.
*
*/
// IDOM_DOMException();
/**
* Constructor which takes an error code and a message.
*
* @param code The error code which indicates the exception
* @param message The string containing the error message
*/
// IDOM_DOMException(short code, const XMLCh *message);
/**
* Copy constructor.
*
* @param other The object to be copied.
*/
// IDOM_DOMException(const IDOM_DOMException &other);
//@}
/** @name Destructor. */
//@{
/**
* Destructor for IDOM_DOMException. Applications are responsible
* for deleting DOM_Exception objects that they catch after they
* have completed their exception processing.
*
*/
// virtual ~IDOM_DOMException();
//@}
/** @name Public variables. */
//@{
/**
* A code value, from the set defined by the ExceptionCode enum,
* indicating the type of error that occured.
*/
int code;
/**
* A string value. Applications may use this field to hold an error
* message. The field value is not set by the DOM implementation,
* meaning that the string will be empty when an exception is first
* thrown.
*/
const XMLCh *msg;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_DOMImplementation.hpp
Index: IDOM_DOMImplementation.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_DOMImplementation.hpp,v $
* Revision 1.1 2001/07/09 15:20:08 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:50 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:29 andyh
* IDOM
*
*/
#ifndef IDOM_DOMImplementation_HEADER_GUARD_
#define IDOM_DOMImplementation_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
// class IDOM_Document;
// class IDOM_DocumentType;
/**
* This class provides a way to query the capabilities of an implementation
* of the DOM
*/
class /*CDOM_EXPORT*/ IDOM_DOMImplementation {
// protected:
// IDOM_DOMImplementation() {}; // no plain constructor
// IDOM_DOMImplementation(const IDOM_DOMImplementation &other) {}; // no copy construtor.
// IDOM_DOMImplementation & operator = (const IDOM_DOMImplementation &other) {return *this;}; // No Assignment
public:
// Factory method for getting a DOMImplementation object.
// The DOM implementation retains ownership of the returned object.
// Application code should NOT delete it.
//
static IDOM_DOMImplementation *getImplementation();
// virtual ~IDOM_DOMImplementation() {};
virtual bool hasFeature(const XMLCh *feature, const XMLCh *version)/* = 0*/;
// Create a new DocumentType.
// Initially the application owns the returned DocumentType object and is responsible
// for deleting it. If the DocumentType is subsequently associated with a Document,
// that document becomes the owner of the storage and will delete the document type
// when the document is deleted.
virtual IDOM_DocumentType *createDocumentType(const XMLCh *qualifiedName,
const XMLCh *publicId, const XMLCh *systemId)/* = 0*/;
virtual IDOM_Document *createDocument(const XMLCh *namespaceURI,
const XMLCh *qualifiedName, IDOM_DocumentType *doctype)/* = 0*/;
// Non-standard extension. Create a completely empty document that has neither a root
// element or a doctype node.
//
virtual IDOM_Document *createDocument()/* = 0*/;
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Document.hpp
Index: IDOM_Document.hpp
===================================================================
#ifndef IDOM_Document_HEADER_GUARD_
#define IDOM_Document_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: IDOM_Document.hpp,v 1.1 2001/07/09 15:20:08 jasons Exp $
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
//
// class IDNodeIteratorImpl;
//
// class IDOM_DocumentType;
// class IDOM_Element;
// class IDOM_DocumentFragment;
// class IDOM_Comment;
// class IDOM_CDATASection;
// class IDOM_ProcessingInstruction;
// class IDOM_Attr;
// class IDOM_Entity;
// class IDOM_EntityReference;
// class IDOM_DOMImplementation;
// class IDOM_NodeFilter;
// class IDOM_NodeList;
// class IDOM_Notation;
// class IDOM_Text;
// class IDOM_Node;
// class IDOM_NodeIterator;
// class IDOM_TreeWalker;
// class IDOM_Range;
/**
* Class to refer to XML Document nodes in the IDOM.
*
* Conceptually, a IDOM document node is the root of the document tree, and provides
* the primary access to the document's data.
* <p>Since elements, text nodes, comments, processing instructions, etc.
* cannot exist outside the context of a <code>Document</code>, the
* <code>Document</code> interface also contains the factory methods needed
* to create these objects. The <code>Node</code> objects created have a
* <code>ownerDocument</code> attribute which associates them with the
* <code>Document</code> within whose context they were created.
*/
class /*CDOM_EXPORT*/ IDOM_Document: public IDOM_Node {
protected:
/** @name Constructors and assignment operators */
//@{
/**
* The default constructor for IDOM_Document creates a null
* IDOM_Document object that refers to no document. It may subsequently be
* assigned to refer to an actual Document node.
*
* To create a new document, use the DOMImplementation
* <code> IDOM_DOMImplementation::createDocument(). </code>
*
*/
// IDOM_Document() {};
/**
* Copy constructor. Creates a new <code>IDOM_Document</code> that refers to the
* same underlying actual document as the original.
*
* @param other The object to be copied
*/
// IDOM_Document(const IDOM_Document &other) {};
/**
* Assignment operator
*
* @param other The object to be copied
*/
// IDOM_Document & operator = (const IDOM_Document &other) {return *this;};
//@}
public:
/** @name Destructor */
//@{
// virtual ~IDOM_Document() {};
//@}
/** @name Factory methods to create new nodes for the Document */
//@{
/**
* Create a new entity.
*
* Non-standard extension.
* @param name The name of the entity to instantiate
*
*/
virtual IDOM_Entity *createEntity(const XMLCh *name)/* = 0*/;
/**
* Creates an element of the type specified.
*
* Note that the instance returned
* implements the Element interface, so attributes can be specified
* directly on the returned object.
* @param tagName The name of the element type to instantiate.
* @return A <code>IDOM_Element</code> that reference the new element.
* @exception IDOMException
* INVALID_CHARACTER_ERR: Raised if the specified name contains an
* illegal character.
*/
virtual IDOM_Element *createElement(const XMLCh *tagName)/* = 0*/;
/**
* Creates an empty DocumentFragment object.
*
* @return A <code>IDOM_DocumentFragment</code> that references the newly
* created document fragment.
*/
virtual IDOM_DocumentFragment *createDocumentFragment()/* = 0*/;
/**
* Creates a Text node given the specified string.
*
* @param data The data for the node.
* @return A <code>IDOM_Text</code> object that references the newly
* created text node.
*/
virtual IDOM_Text *createTextNode(const XMLCh *data)/* = 0*/;
/**
* Creates a Comment node given the specified string.
*
* @param data The data for the comment.
* @return A <code>IDOM_Comment</code> that references the newly
* created comment node.
*/
virtual IDOM_Comment *createComment(const XMLCh *data)/* = 0*/;
/**
* Creates a CDATASection node whose value is the specified
* string.
*
* @param data The data for the <code>IDOM_CDATASection</code> contents.
* @return A <code>IDOM_CDATASection</code> object.
* @exception IDOMException
* NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
*/
virtual IDOM_CDATASection *createCDATASection(const XMLCh *data)/* = 0*/;
/**
* Create a DocumentType node. Non-standard extension.
*
* @return A <code>IDOM_DocumentType</code> that references the newly
* created DocumentType node.
*
*/
virtual IDOM_DocumentType *createDocumentType(const XMLCh *name)/* = 0*/;
/**
* Create a Notation.
*
* Non-standard extension.
*
* @param name The name of the notation to instantiate
* @return A <code>IDOM_Notation</code> that references the newly
* created Notation node.
*/
virtual IDOM_Notation *createNotation(const XMLCh *name)/* = 0*/;
/**
* Creates a ProcessingInstruction node given the specified
* name and data strings.
*
* @param target The target part of the processing instruction.
* @param data The data for the node.
* @return A <code>IDOM_ProcessingInstruction</code> that references the newly
* created PI node.
* @exception IDOMException
* INVALID_CHARACTER_ERR: Raised if an illegal character is specified.
*/
virtual IDOM_ProcessingInstruction *createProcessingInstruction(const XMLCh *target,
const XMLCh *data)/* = 0*/;
/**
* Creates an Attr of the given name.
*
* Note that the
* <code>Attr</code> instance can then be attached to an Element
* using the <code>IDOMElement::setAttribute()</code> method.
* @param name The name of the attribute.
* @return A new <CODE>IDOM_Attr</CODE>
* object with the <CODE>nodeName</CODE> attribute set to
* <CODE>name</CODE>, and <CODE>localName</CODE>, <CODE>prefix</CODE>,
* and <CODE>namespaceURI</CODE> set to
* <CODE>null</CODE>.
* @exception IDOMException
* INVALID_CHARACTER_ERR: Raised if the specified name contains an
* illegal character.
*/
virtual IDOM_Attr *createAttribute(const XMLCh *name)/* = 0*/;
/**
* Creates an EntityReference object.
*
* @param name The name of the entity to reference.
* @return A <code>IDOM_EntityReference</code> that references the newly
* created EntityReference node.
* @exception IDOMException
* INVALID_CHARACTER_ERR: Raised if the specified name contains an
* illegal character.
*/
virtual IDOM_EntityReference *createEntityReference(const XMLCh *name)/* = 0*/;
/**
* Creates a NodeIterator object. (IDOM2)
*
* NodeIterators are used to step through a set of nodes, e.g. the set of nodes in a NodeList, the
* document subtree governed by a particular node, the results of a query, or any other set of nodes.
* The set of nodes to be iterated is determined by the implementation of the NodeIterator. IDOM Level 2
* specifies a single NodeIterator implementation for document-order traversal of a document subtree.
* Instances of these iterators are created by calling <code>DocumentTraversal.createNodeIterator()</code>.
*
* To produce a view of the document that has entity references expanded and does not
* expose the entity reference node itself, use the <code>whatToShow</code> flags to hide the entity
* reference node and set expandEntityReferences to true when creating the iterator. To
* produce a view of the document that has entity reference nodes but no entity expansion,
* use the <code>whatToShow</code> flags to show the entity reference node and set
* expandEntityReferences to false.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param root The root node of the IDOM tree
* @param whatToShow This attribute determines which node types are presented via the iterator.
* @param filter The filter used to screen nodes
* @param entityReferenceExpansion The value of this flag determines whether the children of entity reference nodes are
* visible to the iterator. If false, they will be skipped over.
*/
virtual IDOM_NodeIterator *createNodeIterator(IDOM_Node *root,
unsigned long whatToShow,
IDOM_NodeFilter* filter,
bool entityReferenceExpansion)/* = 0*/;
/**
* Creates a TreeWalker object. (IDOM2)
*
* TreeWalker objects are used to navigate a document tree or subtree using the view of the document defined
* by its whatToShow flags and any filters that are defined for the TreeWalker. Any function which performs
* navigation using a TreeWalker will automatically support any view defined by a TreeWalker.
*
* Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from
* the same subtree in the complete, unfiltered document. Nodes that are siblings in the TreeWalker view may
* be children of different, widely separated nodes in the original view. For instance, consider a Filter that skips
* all nodes except for Text nodes and the root node of a document. In the logical view that results, all text
* nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the
* structure of the original document.
*
* To produce a view of the document that has entity references expanded
* and does not expose the entity reference node itself, use the whatToShow
* flags to hide the entity reference node and set <code>expandEntityReferences</code> to
* true when creating the TreeWalker. To produce a view of the document
* that has entity reference nodes but no entity expansion, use the
* <code>whatToShow</code> flags to show the entity reference node and set
* <code>expandEntityReferences</code> to false
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param root The root node of the IDOM tree
* @param whatToShow This attribute determines which node types are presented via the tree-walker.
* @param filter The filter used to screen nodes
* @param entityReferenceExpansion The value of this flag determines whether the children of entity reference nodes are
* visible to the tree-walker. If false, they will be skipped over.
*/
virtual IDOM_TreeWalker *createTreeWalker(IDOM_Node *root,
unsigned long whatToShow,
IDOM_NodeFilter *filter,
bool entityReferenceExpansion)/* = 0*/;
/**
* To create the range consisting of boundary-points and offset of the
* selected contents
*
* @return The initial state of the Range such that both the boundary-points
* are positioned at the beginning of the corresponding IDOM_DOcument, before
* any content. The range returned can only be used to select content
* associated with this document, or with documentFragments and Attrs for
* which this document is the ownerdocument
*/
virtual IDOM_Range *createRange()/* = 0*/;
//@}
/** @name Getter functions */
//@{
/**
* Get Document Type Declaration (see <code>IDOM_DocumentType</code>) associated
* with this document.
*
* For documents without
* a document type declaration this returns <code>null</code> reference object. The IDOM Level
* 1 does not support editing the Document Type Declaration, therefore
* <code>docType</code> cannot be altered in any way.
*/
virtual IDOM_DocumentType *getDoctype() const/* = 0*/;
/**
* Return the <code>IDOMImplementation</code> object that handles this document.
*/
virtual IDOM_DOMImplementation *getImplementation() const/* = 0*/;
/**
* Return a reference to the root element of the document.
*/
virtual IDOM_Element *getDocumentElement() const/* = 0*/;
/**
* Returns a <code>IDOM_NodeList</code> of all the elements with a
* given tag name. The returned node list is "live", in that changes
* to the document tree made after a nodelist was initially
* returned will be immediately reflected in the node list.
*
* The elements in the node list are ordered in the same order in which they
* would be encountered in a
* preorder traversal of the <code>Document</code> tree.
* @param tagname The name of the tag to match on. The special value "*"
* matches all tags.
* @return A reference to a NodeList containing all the matched
* <code>Element</code>s.
*/
virtual IDOM_NodeList *getElementsByTagName(const XMLCh *tagname) const/* = 0*/;
//@}
/** @name Functions introduced in IDOM Level 2. */
//@{
/**
* Imports a node from another document to this document.
* The returned node has no parent (<CODE>parentNode</CODE> is
* <CODE>null</CODE>). The source node is not altered or removed from the
* original document; this method creates a new copy of the source
* node.<BR>For all nodes, importing a node creates a node object owned by
* the importing document, with attribute values identical to the source
* node's <CODE>nodeName</CODE> and <CODE>nodeType</CODE>, plus the
* attributes related to namespaces (prefix and namespaces URI).
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param importedNode The node to import.
* @param deep If <CODE>true</CODE>, recursively import the subtree under the
* specified node; if <CODE>false</CODE>, import only the node itself,
* as explained above. This does not apply to <CODE>IDOM_Attr</CODE>,
* <CODE>IDOM_EntityReference</CODE>, and <CODE>IDOM_Notation</CODE> nodes.
* @return The imported node that belongs to this <CODE>IDOM_Document</CODE>.
* @exception IDOMException
* NOT_SUPPORTED_ERR: Raised if the type of node being imported is
* not supported.
*/
virtual IDOM_Node *importNode(IDOM_Node *importedNode, bool deep)/* = 0*/;
/**
* Creates an element of the given qualified name and
* namespace URI.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the element to create.
* @param qualifiedName The <em>qualified name</em>
* of the element type to instantiate.
* @return A new <code>IDOM_Element</code> object.
* @exception IDOMException
* INVALID_CHARACTER_ERR: Raised if the specified qualified name contains
* an illegal character.
* <br>
* NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
* malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
* <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
* or if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and
* the <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/XML/1998/namespace".
*/
virtual IDOM_Element *createElementNS(const XMLCh *namespaceURI,
const XMLCh *qualifiedName)/* = 0*/;
/**
* Creates an attribute of the given qualified name and namespace
* URI.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the attribute to create.
* @param qualifiedName The <em>qualified name</em>
* of the attribute to instantiate.
* @return A new <code>IDOM_Attr</code> object.
* @exception IDOMException
* INVALID_CHARACTER_ERR: Raised if the specified qualified name contains
* an illegal character.
* <br>
* NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
* malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
* <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
* if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and the
* <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/XML/1998/namespace", if the
* <CODE>qualifiedName</CODE> has a prefix that is "xmlns" and the
* <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/2000/xmlns/", or if the
* <CODE>qualifiedName</CODE> is "xmlns" and the
* <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/2000/xmlns/".
*/
virtual IDOM_Attr *createAttributeNS(const XMLCh *namespaceURI,
const XMLCh *qualifiedName)/* = 0*/;
/**
* Returns a <code>IDOM_NodeList</code> of all the <code>IDOM_Element</code>s
* with a given <em>local name</em> and
* namespace URI in the order in which they would be encountered in a
* preorder traversal of the <code>IDOM_Document</code> tree.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the elements to match on. The special value "*" matches all
* namespaces.
* @param localName The <em>local name</em> of the
* elements to match on. The special value "*" matches all local names.
* @return A new <code>IDOM_NodeList</code> object containing all the matched
* <code>IDOM_Element</code>s.
*/
virtual IDOM_NodeList *getElementsByTagNameNS(const XMLCh *namespaceURI,
const XMLCh *localName) const/* = 0*/;
/**
* Returns the <code>IDOM_Element</code> whose ID is given by <code>elementId</code>.
* If no such element exists, returns <code>null</code>.
* Behavior is not defined if more than one element has this <code>ID</code>.
* <P><B>Note:</B> The IDOM implementation must have information that says
* which attributes are of type ID. Attributes with the name "ID" are not of
* type ID unless so defined. Implementations that do not know whether
* attributes are of type ID or not are expected to return
* <CODE>null</CODE>.</P>
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param elementId The unique <code>id</code> value for an element.
* @return The matching element.
*/
virtual IDOM_Element * getElementById(const XMLCh *elementId) const/* = 0*/;
//@}
// protected:
// friend class IDOM_Node;
// friend class DocumentImpl;
// friend class NodeIteratorImpl;
// friend class IDOM_IDOMImplementation;
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_DocumentFragment.hpp
Index: IDOM_DocumentFragment.hpp
===================================================================
#ifndef IDOM_DocumentFragment_HEADER_GUARD_
#define IDOM_DocumentFragment_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: IDOM_DocumentFragment.hpp,v 1.1 2001/07/09 15:20:09 jasons Exp $
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
/**
* <code>DocumentFragment</code> is a "lightweight" or "minimal"
* <code>Document</code> object.
*
* It is very common to want to be able to
* extract a portion of a document's tree or to create a new fragment of a
* document. Imagine implementing a user command like cut or rearranging a
* document by moving fragments around. It is desirable to have an object
* which can hold such fragments and it is quite natural to use a Node for
* this purpose. While it is true that a <code>Document</code> object could
* fulfil this role, a <code>Document</code> object can potentially be a
* heavyweight object, depending on the underlying implementation. What is
* really needed for this is a very lightweight object.
* <code>DocumentFragment</code> is such an object.
* <p>Furthermore, various operations -- such as inserting nodes as children
* of another <code>Node</code> -- may take <code>DocumentFragment</code>
* objects as arguments; this results in all the child nodes of the
* <code>DocumentFragment</code> being moved to the child list of this node.
* <p>The children of a <code>DocumentFragment</code> node are zero or more
* nodes representing the tops of any sub-trees defining the structure of the
* document. <code>DocumentFragment</code> nodes do not need to be
* well-formed XML documents (although they do need to follow the rules
* imposed upon well-formed XML parsed entities, which can have multiple top
* nodes). For example, a <code>DocumentFragment</code> might have only one
* child and that child node could be a <code>Text</code> node. Such a
* structure model represents neither an HTML document nor a well-formed XML
* document.
* <p>When a <code>DocumentFragment</code> is inserted into a
* <code>Document</code> (or indeed any other <code>Node</code> that may take
* children) the children of the <code>DocumentFragment</code> and not the
* <code>DocumentFragment</code> itself are inserted into the
* <code>Node</code>. This makes the <code>DocumentFragment</code> very
* useful when the user wishes to create nodes that are siblings; the
* <code>DocumentFragment</code> acts as the parent of these nodes so that the
* user can use the standard methods from the <code>Node</code> interface,
* such as <code>insertBefore()</code> and <code>appendChild()</code>.
*/
class /*CDOM_EXPORT*/ IDOM_DocumentFragment: public IDOM_Node {
// protected:
// IDOM_DocumentFragment() {};
// IDOM_DocumentFragment(const IDOM_DocumentFragment &other) {};
// IDOM_DocumentFragment & operator = (const IDOM_DocumentFragment &other) {return *this;};
//@}
/** @name Destructor */
//@{
public:
// virtual ~IDOM_DocumentFragment() {};
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_DocumentType.hpp
Index: IDOM_DocumentType.hpp
===================================================================
#ifndef IDOM_DocumentType_HEADER_GUARD_
#define IDOM_DocumentType_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_DocumentType.hpp,v $
* Revision 1.1 2001/07/09 15:20:09 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:51 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:28 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
// class IDOM_NamedNodeMap;
/**
* Each <code>Document</code> has a <code>doctype</code> whose value
* is either <code>null</code> or a <code>DocumentType</code> object.
*
* The <code>IDOM_DocumentType</code> class provides access
* to the list of entities and notations that are defined for the document.
* <p>The DOM Level 1 doesn't support editing <code>DocumentType</code> nodes.
*/
class /*CDOM_EXPORT*/ IDOM_DocumentType: public IDOM_Node {
// protected:
// IDOM_DocumentType() {};
// IDOM_DocumentType(const IDOM_DocumentType &other) {};
// IDOM_DocumentType & operator = (const IDOM_DocumentType &other) {return *this;};
public:
// virtual ~IDOM_DocumentType() {};
/** @name Getter functions. */
//@{
/**
* The name of DTD; i.e., the name immediately following the
* <code>DOCTYPE</code> keyword in an XML source document.
*/
virtual const XMLCh * getName() const/* = 0*/;
/**
* This function returns a <code>NamedNodeMap</code> containing the general entities, both
* external and internal, declared in the DTD. Parameter entities are not contained.
* Duplicates are discarded.
* <p>
* Note: this functionality is not implemented in the initial release
* of the parser, and the returned NamedNodeMap will be empty.
*/
virtual IDOM_NamedNodeMap *getEntities() const/* = 0*/;
/**
* This function returns a named node map containing an entry for
* each notation declared in a document's DTD. Duplicates are discarded.
*
* <p>
* Note: this functionality is not implemented in the initial release
* of the parser, and the returned NamedNodeMap will be empty.
*/
virtual IDOM_NamedNodeMap *getNotations() const/* = 0*/;
//@}
/** @name Functions introduced in DOM Level 2. */
//@{
/**
* Get the public identifier of the external subset.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @return The public identifier of the external subset.
*/
virtual const XMLCh * getPublicId() const/* = 0*/;
/**
* Get the system identifier of the external subset.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @return The system identifier of the external subset.
*/
virtual const XMLCh * getSystemId() const/* = 0*/;
/**
* Get the internal subset as a string.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @return The internal subset as a string.
*/
virtual const XMLCh * getInternalSubset() const/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Element.hpp
Index: IDOM_Element.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_Element.hpp,v $
* Revision 1.1 2001/07/09 15:20:09 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:52 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:29 andyh
* IDOM
*
*/
#ifndef IDOM_Element_HEADER_GUARD_
#define IDOM_Element_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
//
// class IDOM_Attr;
// class IDOM_NodeList;
/**
* By far the vast majority of objects (apart from text) that authors
* encounter when traversing a document are <code>IDOM_Element</code> nodes.
*
* Assume the following XML document:<elementExample id="demo">
* <subelement1/>
* <subelement2><subsubelement/></subelement2>
* </elementExample>
* <p>When represented using DOM, the top node is an <code>IDOM_Element</code> node
* for "elementExample", which contains two child <code>IDOM_Element</code> nodes,
* one for "subelement1" and one for "subelement2". "subelement1" contains no
* child nodes.
* <p>Elements may have attributes associated with them; since the
* <code>IDOM_Element</code> interface inherits from <code>IDOM_Node</code>, the generic
* <code>IDOM_Node</code> interface method <code>getAttributes</code> may be used
* to retrieve the set of all attributes for an element. There are methods on
* the <code>IDOM_Element</code> interface to retrieve either an <code>IDOM_Attr</code>
* object by name or an attribute value by name. In XML, where an attribute
* value may contain entity references, an <code>IDOM_Attr</code> object should be
* retrieved to examine the possibly fairly complex sub-tree representing the
* attribute value. On the other hand, in HTML, where all attributes have
* simple string values, methods to directly access an attribute value can
* safely be used as a convenience.
*/
class /*CDOM_EXPORT*/ IDOM_Element: public IDOM_Node {
// protected:
// IDOM_Element() {};
// IDOM_Element(const IDOM_Element &other) {};
// IDOM_Element & operator = (const IDOM_Element &other) {return *this;};
public:
/** @name Constructors and assignment operator */
//@{
//@}
/** @name Destructor. */
//@{
/**
* Destructor. The object being destroyed is the reference
* object, not the underlying Element itself.
*
*/
// virtual ~IDOM_Element() {};
//@}
/** @name Getter functions. */
//@{
/**
* The name of the element.
*
* For example, in: <elementExample
* id="demo"> ... </elementExample> , <code>tagName</code> has
* the value <code>"elementExample"</code>. Note that this is
* case-preserving in XML, as are all of the operations of the DOM.
*/
virtual const XMLCh * getTagName() const/* = 0*/;
/**
* Retrieves an attribute value by name.
*
* @param name The name of the attribute to retrieve.
* @return The <code>IDOM_Attr</code> value as a string, or the empty string if
* that attribute does not have a specified or default value.
*/
virtual const XMLCh * getAttribute(const XMLCh *name) const/* = 0*/;
/**
* Retrieves an <code>IDOM_Attr</code> node by name.
*
* @param name The name (<CODE>nodeName</CODE>) of the attribute to retrieve.
* @return The <code>IDOM_Attr</code> node with the specified name (<CODE>nodeName</CODE>) or
* <code>null</code> if there is no such attribute.
*/
virtual IDOM_Attr * getAttributeNode(const XMLCh *name) const/* = 0*/;
/**
* Returns a <code>NodeList</code> of all descendant elements with a given
* tag name, in the order in which they would be encountered in a preorder
* traversal of the <code>IDOM_Element</code> tree.
*
* @param name The name of the tag to match on. The special value "*"
* matches all tags.
* @return A list of matching <code>IDOM_Element</code> nodes.
*/
virtual IDOM_NodeList * getElementsByTagName(const XMLCh *name) const/* = 0*/;
//@}
/** @name Set functions. */
//@{
/**
* Adds a new attribute.
*
* If an attribute with that name is already present
* in the element, its value is changed to be that of the value parameter.
* This value is a simple string, it is not parsed as it is being set. So
* any markup (such as syntax to be recognized as an entity reference) is
* treated as literal text, and needs to be appropriately escaped by the
* implementation when it is written out. In order to assign an attribute
* value that contains entity references, the user must create an
* <code>IDOM_Attr</code> node plus any <code>Text</code> and
* <code>EntityReference</code> nodes, build the appropriate subtree, and
* use <code>setAttributeNode</code> to assign it as the value of an
* attribute.
* @param name The name of the attribute to create or alter.
* @param value Value to set in string form.
* @exception DOMException
* INVALID_CHARACTER_ERR: Raised if the specified name contains an
* illegal character.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void setAttribute(const XMLCh *name,
const XMLCh *value)/* = 0*/;
/**
* Adds a new attribute.
*
* If an attribute with that name (<CODE>nodeName</CODE>) is already present
* in the element, it is replaced by the new one.
* @param newAttr The <code>IDOM_Attr</code> node to add to the attribute list.
* @return If the <code>newAttr</code> attribute replaces an existing
* attribute, the replaced
* <code>IDOM_Attr</code> node is returned, otherwise <code>null</code> is
* returned.
* @exception DOMException
* WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
* different document than the one that created the element.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
* <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
* attribute of another <code>IDOM_Element</code> object. The DOM user must
* explicitly clone <code>IDOM_Attr</code> nodes to re-use them in other
* elements.
*/
virtual IDOM_Attr * setAttributeNode(IDOM_Attr *newAttr)/* = 0*/;
//@}
/** @name Functions which modify the Element. */
//@{
/**
* Removes the specified attribute node.
* If the removed <CODE>IDOM_Attr</CODE>
* has a default value it is immediately replaced. The replacing attribute
* has the same namespace URI and local name, as well as the original prefix,
* when applicable.
*
* @param oldAttr The <code>IDOM_Attr</code> node to remove from the attribute
* list.
* @return The <code>IDOM_Attr</code> node that was removed.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
* <br>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an attribute
* of the element.
*/
virtual IDOM_Attr * removeAttributeNode(IDOM_Attr *oldAttr)/* = 0*/;
/**
* Removes an attribute by name.
*
* If the removed attribute
* is known to have a default value, an attribute immediately appears
* containing the default value as well as the corresponding namespace URI,
* local name, and prefix when applicable.<BR>To remove an attribute by local
* name and namespace URI, use the <CODE>removeAttributeNS</CODE> method.
* @param name The name of the attribute to remove.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void removeAttribute(const XMLCh *name)/* = 0*/;
//@}
/** @name Functions introduced in DOM Level 2. */
//@{
/**
* Retrieves an attribute value by local name and namespace URI.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the attribute to retrieve.
* @param localName The <em>local name</em> of the
* attribute to retrieve.
* @return The <code>IDOM_Attr</code> value as a string, or an <CODE>null</CODE> if
* that attribute does not have a specified or default value.
*/
virtual const XMLCh * getAttributeNS(const XMLCh *namespaceURI,
const XMLCh *localName) const/* = 0*/;
/**
* Adds a new attribute. If an attribute with the same
* local name and namespace URI is already present on the element, its prefix
* is changed to be the prefix part of the <CODE>qualifiedName</CODE>, and
* its value is changed to be the <CODE>value</CODE> parameter. This value is
* a simple string, it is not parsed as it is being set. So any markup (such
* as syntax to be recognized as an entity reference) is treated as literal
* text, and needs to be appropriately escaped by the implementation when it
* is written out. In order to assign an attribute value that contains entity
* references, the user must create an <CODE>IDOM_Attr</CODE>
* node plus any <CODE>IDOM_Text</CODE> and <CODE>IDOM_EntityReference</CODE>
* nodes, build the appropriate subtree, and use
* <CODE>setAttributeNodeNS</CODE> or <CODE>setAttributeNode</CODE> to assign
* it as the value of an attribute.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the attribute to create or alter.
* @param qualifiedName The <em>qualified name</em> of the
* attribute to create or alter.
* @param value The value to set in string form.
* @exception DOMException
* INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an
* illegal character.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
* <br>
* NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
* malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
* <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
* if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and the
* <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/XML/1998/namespace", if the
* <CODE>qualifiedName</CODE> has a prefix that is "xmlns" and the
* <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/2000/xmlns/", or if the
* <CODE>qualifiedName</CODE> is "xmlns" and the
* <CODE>namespaceURI</CODE> is different from
* "http://www.w3.org/2000/xmlns/".
*/
virtual void setAttributeNS(const XMLCh *namespaceURI,
const XMLCh *qualifiedName, const XMLCh *value)/* = 0*/;
/**
* Removes an attribute by local name and namespace URI. If the
* removed attribute has a default value it is immediately replaced.
* The replacing attribute has the same namespace URI and local name, as well as
* the original prefix.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the attribute to remove.
* @param localName The <em>local name</em> of the
* attribute to remove.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual void removeAttributeNS(const XMLCh *namespaceURI,
const XMLCh *localName)/* = 0*/;
/**
* Retrieves an <code>IDOM_Attr</code> node by local name and namespace URI.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the attribute to retrieve.
* @param localName The <em>local name</em> of the
* attribute to retrieve.
* @return The <code>IDOM_Attr</code> node with the specified attribute local
* name and namespace URI or <code>null</code> if there is no such attribute.
*/
virtual IDOM_Attr * getAttributeNodeNS(const XMLCh *namespaceURI,
const XMLCh *localName) const/* = 0*/;
/**
* Adds a new attribute.
*
* If an attribute with that local name and namespace URI is already present
* in the element, it is replaced by the new one.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param newAttr The <code>IDOM_Attr</code> node to add to the attribute list.
* @return If the <code>newAttr</code> attribute replaces an existing
* attribute with the same <em>local name</em> and <em>namespace URI</em>,
* the replaced <code>IDOM_Attr</code> node is
* returned, otherwise <code>null</code> is returned.
* @exception DOMException
* WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
* different document than the one that created the element.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
* <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
* attribute of another <code>IDOM_Element</code> object. The DOM user must
* explicitly clone <code>IDOM_Attr</code> nodes to re-use them in other
* elements.
*/
virtual IDOM_Attr * setAttributeNodeNS(IDOM_Attr *newAttr)/* = 0*/;
/**
* Returns a <code>IDOM_NodeList</code> of all the <code>IDOM_Element</code>s
* with a given local name and namespace URI in the order in which they
* would be encountered in a preorder traversal of the
* <code>IDOM_Document</code> tree, starting from this node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the elements to match on. The special value "*" matches all
* namespaces.
* @param localName The <em>local name</em> of the
* elements to match on. The special value "*" matches all local names.
* @return A new <code>IDOM_NodeList</code> object containing all the matched
* <code>IDOM_Element</code>s.
*/
virtual IDOM_NodeList * getElementsByTagNameNS(const XMLCh *namespaceURI,
const XMLCh *localName) const/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Entity.hpp
Index: IDOM_Entity.hpp
===================================================================
#ifndef IDOM_Entity_HEADER_GUARD_
#define IDOM_Entity_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_Entity.hpp,v $
* Revision 1.1 2001/07/09 15:20:09 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:52 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:30 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
/**
* This interface represents an entity, either parsed or unparsed, in an XML
* document.
*
* Note that this models the entity itself not the entity
* declaration. <code>Entity</code> declaration modeling has been left for a
* later Level of the DOM specification.
* <p>The <code>nodeName</code> attribute that is inherited from
* <code>Node</code> contains the name of the entity.
* <p>An XML processor may choose to completely expand entities before the
* structure model is passed to the DOM; in this case there will be no
* <code>EntityReference</code> nodes in the document tree.
*
* <p>Note: the first release of this parser does not create entity
* nodes when reading an XML document. Entities may be
* programatically created using DOM_Document::createEntity().
*/
class /*CDOM_EXPORT*/ IDOM_Entity: public IDOM_Node {
// protected:
// IDOM_Entity() {};
// IDOM_Entity(const IDOM_Entity &other) {};
// IDOM_Entity & operator = (const IDOM_Entity &other) {return *this;};
public:
// virtual ~IDOM_Entity() {};
/** @name Get functions. */
//@{
/**
* The public identifier associated with the entity, if specified.
*
* If the public identifier was not specified, this is <code>null</code>.
*/
virtual const XMLCh * getPublicId() const/* = 0*/;
/**
* The system identifier associated with the entity, if specified.
*
* If the system identifier was not specified, this is <code>null</code>.
*/
virtual const XMLCh * getSystemId() const/* = 0*/;
/**
* For unparsed entities, the name of the notation for the entity.
*
* For parsed entities, this is <code>null</code>.
*/
virtual const XMLCh * getNotationName() const/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_EntityReference.hpp
Index: IDOM_EntityReference.hpp
===================================================================
#ifndef IDOM_EntityReference_HEADER_GUARD_
#define IDOM_EntityReference_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_EntityReference.hpp,v $
* Revision 1.1 2001/07/09 15:20:10 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:52 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:30 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
/**
* <code>EntityReference</code> nodes will appear in the structure
* model when an entity reference is in the source document, or when the user
* wishes to insert an entity reference.
*
* The expansion of the entity will appear as child nodes of the entity
* reference node. The expansion may be just simple text, or it may
* be more complex, containing additional entity refs.
*
*/
class /*CDOM_EXPORT*/ IDOM_EntityReference: public IDOM_Node {
// protected:
// /** @name Constructors and assignment operator */
// //@{
// IDOM_EntityReference() {};
//
// IDOM_EntityReference(const IDOM_EntityReference &other) {};
//
// IDOM_EntityReference & operator = (const IDOM_EntityReference &other) {return *this;};
public:
// virtual ~IDOM_EntityReference() {};
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_NamedNodeMap.hpp
Index: IDOM_NamedNodeMap.hpp
===================================================================
#ifndef IDOM_NamedNodeMap_HEADER_GUARD_
#define IDOM_NamedNodeMap_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_NamedNodeMap.hpp,v $
* Revision 1.1 2001/07/09 15:20:10 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:53 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:30 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
//
// class IDOM_Node;
/**
* <code>NamedNodeMap</code>s are used to
* represent collections of nodes that can be accessed by name.
*
* Note that <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>;
* <code>NamedNodeMap</code>s are not maintained in any particular order.
* Nodes contained in a <code>NamedNodeMap</code> may
* also be accessed by an ordinal index, but this is simply to allow
* convenient enumeration of the contents, and
* does not imply that the DOM specifies an order to these Nodes.
*/
class /*CDOM_EXPORT*/ IDOM_NamedNodeMap {
// protected:
// IDOM_NamedNodeMap() {};
// IDOM_NamedNodeMap(const IDOM_NamedNodeMap &other) {};
// IDOM_NamedNodeMap & operator = (const IDOM_NamedNodeMap &other) {return *this;};
public:
/** @name Destructor. */
//@{
// virtual ~IDOM_NamedNodeMap() {};
//@}
/** @name Set functions. */
//@{
/**
* Adds a node using its <code>nodeName</code> attribute.
*
* <br>As the <code>nodeName</code> attribute is used to derive the name
* which the node must be stored under, multiple nodes of certain types
* (those that have a "special" string value) cannot be stored as the names
* would clash. This is seen as preferable to allowing nodes to be aliased.
* @param arg A node to store in a named node map. The node will later be
* accessible using the value of the <code>nodeName</code> attribute of
* the node. If a node with that name is already present in the map, it
* is replaced by the new one.
* @return If the new <code>Node</code> replaces an existing node the
* replaced <code>Node</code> is returned,
* otherwise <code>null</code> is returned.
* @exception DOMException
* WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
* different document than the one that created the
* <code>NamedNodeMap</code>.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
* <code>NamedNodeMap</code> is readonly.
* <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
* <code>Attr</code> that is already an attribute of another
* <code>Element</code> object. The DOM user must explicitly clone
* <code>Attr</code> nodes to re-use them in other elements.
*/
virtual IDOM_Node *setNamedItem(IDOM_Node *arg)/* = 0*/;
//@}
/** @name Get functions. */
//@{
/**
* Returns the <code>index</code>th item in the map.
*
* If <code>index</code>
* is greater than or equal to the number of nodes in the map, this returns
* <code>null</code>.
* @param index Index into the map.
* @return The node at the <code>index</code>th position in the
* <code>NamedNodeMap</code>, or <code>null</code> if that is not a valid
* index.
*/
virtual IDOM_Node *item(unsigned int index) const/* = 0*/;
/**
* Retrieves a node specified by name.
*
* @param name The <code>nodeName</code> of a node to retrieve.
* @return A <code>IDOM_Node</code> (of any type) with the specified <code>nodeName</code>, or
* <code>null</code> if it does not identify any node in
* the map.
*/
virtual IDOM_Node *getNamedItem(const XMLCh *name) const/* = 0*/;
/**
* The number of nodes in the map.
*
* The range of valid child node indices is
* 0 to <code>length-1</code> inclusive.
*/
virtual unsigned int getLength() const/* = 0*/;
//@}
/** @name Functions to change the node collection. */
//@{
/**
* Removes a node specified by name.
*
* If the removed node is an
* <code>Attr</code> with a default value it is immediately replaced.
* @param name The <code>nodeName</code> of a node to remove.
* @return The node removed from the map or <code>null</code> if no node
* with such a name exists.
* @exception DOMException
* NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
* the map.
* <br>
* NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>NamedNodeMap</code>
* is readonly.
*/
virtual IDOM_Node *removeNamedItem(const XMLCh *name)/* = 0*/;
//@}
/** @name Functions introduced in DOM Level 2. */
//@{
/**
* Retrieves a node specified by local name and namespace URI.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the node to retrieve.
* @param localName The <em>local name</em> of the node to retrieve.
* @return A <code>IDOM_Node</code> (of any type) with the specified
* local name and namespace URI, or <code>null</code> if they do not
* identify any node in the map.
*/
virtual IDOM_Node *getNamedItemNS(const XMLCh *namespaceURI,
const XMLCh *localName) const/* = 0*/;
/**
* Adds a node using its <CODE>namespaceURI</CODE> and <CODE>localName</CODE>.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param arg A node to store in a named node map. The node will later be
* accessible using the value of the <CODE>namespaceURI</CODE> and
* <CODE>localName</CODE> attribute of the node. If a node with those
* namespace URI and local name is already present in the map, it is
* replaced by the new one.
* @return If the new <code>IDOM_Node</code> replaces an existing node the
* replaced <code>IDOM_Node</code> is returned,
* otherwise <code>null</code> is returned.
* @exception DOMException
* WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
* different document than the one that created the
* <code>IDOM_NamedNodeMap</code>.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
* <code>vNamedNodeMap</code> is readonly.
* <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
* <code>DOM_Attr</code> that is already an attribute of another
* <code>DOM_Element</code> object. The DOM user must explicitly clone
* <code>DOM_Attr</code> nodes to re-use them in other elements.
*/
virtual IDOM_Node *setNamedItemNS(IDOM_Node *arg)/* = 0*/;
/**
* Removes a node specified by local name and namespace URI.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param namespaceURI The <em>namespace URI</em> of
* the node to remove.
* @param localName The <em>local name</em> of the
* node to remove. When this <code>IDOM_NamedNodeMap</code> contains the
* attributes attached to an element, as returned by the attributes
* attribute of the <code>IDOM_Node</code> interface, if the removed
* attribute is known to have a default value, an attribute
* immediately appears containing the default value
* as well as the corresponding namespace URI, local name, and prefix.
* @return The node removed from the map if a node with such a local name
* and namespace URI exists.
* @exception DOMException
* NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
* the map.
* <br>
* NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>IDOM_NamedNodeMap</code>
* is readonly.
*/
virtual IDOM_Node *removeNamedItemNS(const XMLCh *namespaceURI,
const XMLCh *localName)/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Node.hpp
Index: IDOM_Node.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: IDOM_Node.hpp,v 1.1 2001/07/09 15:20:10 jasons Exp $
*/
#ifndef IDOM_Node_HEADER_GUARD_
#define IDOM_Node_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
//
//
// class IDOM_Document;
// class IDOM_NamedNodeMap;
// class IDOM_NodeList;
/**
* The <code>Node</code> interface is the primary datatype for the entire
* Document Object Model.
*
* It represents a single node in the document tree.
* While all objects implementing the <code>Node</code> interface expose
* methods for dealing with children, not all objects implementing the
* <code>Node</code> interface may have children. For example,
* <code>Text</code> nodes may not have children, and adding children to such
* nodes results in a <code>DOMException</code> being raised.
* <p>The attributes <code>nodeName</code>, <code>nodeValue</code> and
* <code>attributes</code> are included as a mechanism to get at node
* information without casting down to the specific derived interface. In
* cases where there is no obvious mapping of these attributes for a specific
* <code>nodeType</code> (e.g., <code>nodeValue</code> for an Element or
* <code>attributes</code> for a Comment), this returns <code>null</code>.
* Note that the specialized interfaces may contain additional and more
* convenient mechanisms to get and set the relevant information.
*/
class /*CDOM_EXPORT*/ IDOM_Node {
// protected:
// /** @name Constructors and assignment operators */
// //@{
// /**
// * Default constructor for IDOM_Node. Protected, because
// * IDOM_Node is an abstract base class.
// *
// */
// IDOM_Node() {};
//
// /**
// * Copy constructor.
// *
// * @param other The object to be copied.
// */
// IDOM_Node(const IDOM_Node &other) {};
//
// /**
// * Assignment operator.
// *
// * @param other The source to be assigned.
// */
// IDOM_Node & operator = (const IDOM_Node &other) {return *this;};
public:
//@}
/** @name Destructor. */
//@{
/**
* Destructor for IDOM_Node.
*
*/
// virtual ~IDOM_Node() {};
//@}
enum NodeType {
ELEMENT_NODE = 1,
ATTRIBUTE_NODE = 2,
TEXT_NODE = 3,
CDATA_SECTION_NODE = 4,
ENTITY_REFERENCE_NODE = 5,
ENTITY_NODE = 6,
PROCESSING_INSTRUCTION_NODE = 7,
COMMENT_NODE = 8,
DOCUMENT_NODE = 9,
DOCUMENT_TYPE_NODE = 10,
DOCUMENT_FRAGMENT_NODE = 11,
NOTATION_NODE = 12,
XML_DECL_NODE = 13
};
/** @name Get functions. */
//@{
/**
* The name of this node, depending on its type; see the table above.
*/
virtual const XMLCh * getNodeName() const/* = 0*/;
/**
* Gets the value of this node, depending on its type.
*
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
*/
virtual const XMLCh * getNodeValue() const/* = 0*/;
/**
* An enum value representing the type of the underlying object.
*/
virtual short getNodeType() const/* = 0*/;
/**
* Gets the parent of this node.
*
* All nodes, except <code>Document</code>,
* <code>DocumentFragment</code>, and <code>Attr</code> may have a parent.
* However, if a node has just been created and not yet added to the tree,
* or if it has been removed from the tree, a <code>null</code> IDOM_Node
* is returned.
*/
virtual IDOM_Node *getParentNode() const/* = 0*/;
/**
* Gets a <code>NodeList</code> that contains all children of this node.
*
* If there
* are no children, this is a <code>NodeList</code> containing no nodes.
* The content of the returned <code>NodeList</code> is "live" in the sense
* that, for instance, changes to the children of the node object that
* it was created from are immediately reflected in the nodes returned by
* the <code>NodeList</code> accessors; it is not a static snapshot of the
* content of the node. This is true for every <code>NodeList</code>,
* including the ones returned by the <code>getElementsByTagName</code>
* method.
*/
virtual IDOM_NodeList *getChildNodes() const/* = 0*/;
/**
* Gets the first child of this node.
*
* If there is no such node, this returns <code>null</code>.
*/
virtual IDOM_Node *getFirstChild() const/* = 0*/;
/**
* Gets the last child of this node.
*
* If there is no such node, this returns <code>null</code>.
*/
virtual IDOM_Node *getLastChild() const/* = 0*/;
/**
* Gets the node immediately preceding this node.
*
* If there is no such node, this returns <code>null</code>.
*/
virtual IDOM_Node *getPreviousSibling() const/* = 0*/;
/**
* Gets the node immediately following this node.
*
* If there is no such node, this returns <code>null</code>.
*/
virtual IDOM_Node *getNextSibling() const/* = 0*/;
/**
* Gets a <code>NamedNodeMap</code> containing the attributes of this node (if it
* is an <code>Element</code>) or <code>null</code> otherwise.
*/
virtual IDOM_NamedNodeMap *getAttributes() const/* = 0*/;
/**
* Gets the <code>IDOM_Document</code> object associated with this node.
*
* This is also
* the <code>IDOM_Document</code> object used to create new nodes. When this
* node is a <code>IDOM_Document</code> or a <code>IDOM_DocumentType</code>
* which is not used with any <code>IDOM_Document</code> yet, this is
* <code>null</code>.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Document *getOwnerDocument() const/* = 0*/;
//@}
/** @name Cloning function. */
//@{
/**
* Returns a duplicate of this node.
*
* This function serves as a generic copy constructor for nodes.
*
* The duplicate node has no parent (
* <code>parentNode</code> returns <code>null</code>.).
* <br>Cloning an <code>Element</code> copies all attributes and their
* values, including those generated by the XML processor to represent
* defaulted attributes, but this method does not copy any text it contains
* unless it is a deep clone, since the text is contained in a child
* <code>Text</code> node. Cloning any other type of node simply returns a
* copy of this node.
* @param deep If <code>true</code>, recursively clone the subtree under the
* specified node; if <code>false</code>, clone only the node itself (and
* its attributes, if it is an <code>Element</code>).
* @return The duplicate node.
*/
virtual IDOM_Node * cloneNode(bool deep) const/* = 0*/;
//@}
/** @name Functions to modify the DOM Node. */
//@{
/**
* Inserts the node <code>newChild</code> before the existing child node
* <code>refChild</code>.
*
* If <code>refChild</code> is <code>null</code>,
* insert <code>newChild</code> at the end of the list of children.
* <br>If <code>newChild</code> is a <code>DocumentFragment</code> object,
* all of its children are inserted, in the same order, before
* <code>refChild</code>. If the <code>newChild</code> is already in the
* tree, it is first removed. Note that a <code>IDOM_Node</code> that
* has never been assigned to refer to an actual node is == null.
* @param newChild The node to insert.
* @param refChild The reference node, i.e., the node before which the new
* node must be inserted.
* @return The node being inserted.
* @exception DOMException
* HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
* allow children of the type of the <code>newChild</code> node, or if
* the node to insert is one of this node's ancestors.
* <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
* from a different document than the one that created this node.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being
* inserted is readonly.
* <br>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of
* this node.
*/
virtual IDOM_Node *insertBefore(IDOM_Node *newChild,
IDOM_Node *refChild)/* = 0*/;
/**
* Replaces the child node <code>oldChild</code> with <code>newChild</code>
* in the list of children, and returns the <code>oldChild</code> node.
*
* If <CODE>newChild</CODE> is a <CODE>IDOM_DocumentFragment</CODE> object,
* <CODE>oldChild</CODE> is replaced by all of the <CODE>IDOM_DocumentFragment</CODE>
* children, which are inserted in the same order.
*
* If the <code>newChild</code> is already in the tree, it is first removed.
* @param newChild The new node to put in the child list.
* @param oldChild The node being replaced in the list.
* @return The node replaced.
* @exception DOMException
* HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
* allow children of the type of the <code>newChild</code> node, or it
* the node to put in is one of this node's ancestors.
* <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
* from a different document than the one that created this node.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
* <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
* this node.
*/
virtual IDOM_Node *replaceChild(IDOM_Node *newChild,
IDOM_Node *oldChild)/* = 0*/;
/**
* Removes the child node indicated by <code>oldChild</code> from the list
* of children, and returns it.
*
* @param oldChild The node being removed.
* @return The node removed.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
* <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
* this node.
*/
virtual IDOM_Node *removeChild(IDOM_Node *oldChild)/* = 0*/;
/**
* Adds the node <code>newChild</code> to the end of the list of children of
* this node.
*
* If the <code>newChild</code> is already in the tree, it is
* first removed.
* @param newChild The node to add.If it is a <code>DocumentFragment</code>
* object, the entire contents of the document fragment are moved into
* the child list of this node
* @return The node added.
* @exception DOMException
* HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
* allow children of the type of the <code>newChild</code> node, or if
* the node to append is one of this node's ancestors.
* <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
* from a different document than the one that created this node.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being
* appended is readonly.
*/
virtual IDOM_Node *appendChild(IDOM_Node *newChild)/* = 0*/;
//@}
/** @name Query functions. */
//@{
/**
* This is a convenience method to allow easy determination of whether a
* node has any children.
*
* @return <code>true</code> if the node has any children,
* <code>false</code> if the node has no children.
*/
virtual bool hasChildNodes() const/* = 0*/;
//@}
/** @name Set functions. */
//@{
/**
* Sets the value of the node.
*
* Any node which can have a nodeValue (@see getNodeValue) will
* also accept requests to set it to a string. The exact response to
* this varies from node to node -- Attribute, for example, stores
* its values in its children and has to replace them with a new Text
* holding the replacement value.
*
* For most types of Node, value is null and attempting to set it
* will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will
* also be thrown if the node is read-only.
*/
virtual void setNodeValue(const XMLCh *nodeValue)/* = 0*/;
//@}
/** @name Functions introduced in DOM Level 2. */
//@{
/**
* Puts all <CODE>IDOM_Text</CODE>
* nodes in the full depth of the sub-tree underneath this <CODE>IDOM_Node</CODE>,
* including attribute nodes, into a "normal" form where only markup (e.g.,
* tags, comments, processing instructions, CDATA sections, and entity
* references) separates <CODE>IDOM_Text</CODE>
* nodes, i.e., there are neither adjacent <CODE>IDOM_Text</CODE>
* nodes nor empty <CODE>IDOM_Text</CODE>
* nodes. This can be used to ensure that the DOM view of a document is the
* same as if it were saved and re-loaded, and is useful when operations
* (such as XPointer lookups) that depend on a particular document tree
* structure are to be used.
* <P><B>Note:</B> In cases where the document contains <CODE>IDOM_CDATASections</CODE>,
* the normalize operation alone may not be sufficient, since XPointers do
* not differentiate between <CODE>IDOM_Text</CODE>
* nodes and <CODE>IDOM_CDATASection</CODE>
* nodes.</P>
*
*
*/
virtual void normalize()/* = 0*/;
/**
* Tests whether the DOM implementation implements a specific
* feature and that feature is supported by this node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param feature The string of the feature to test. This is the same
* name as what can be passed to the method <code>hasFeature</code> on
* <code>IDOM_DOMImplementation</code>.
* @param version This is the version number of the feature to test. In
* Level 2, version 1, this is the string "2.0". If the version is not
* specified, supporting any version of the feature will cause the
* method to return <code>true</code>.
* @return Returns <code>true</code> if the specified feature is supported
* on this node, <code>false</code> otherwise.
*/
virtual bool supports(const XMLCh *feature,
const XMLCh *version) const/* = 0*/;
/**
* Get the <em>namespace URI</em> of
* this node, or <code>null</code> if it is unspecified.
* <p>
* This is not a computed value that is the result of a namespace lookup
* based on an examination of the namespace declarations in scope. It is
* merely the namespace URI given at creation time.
* <p>
* For nodes of any type other than <CODE>ELEMENT_NODE</CODE> and
* <CODE>ATTRIBUTE_NODE</CODE> and nodes created with a DOM Level 1 method,
* such as <CODE>createElement</CODE> from the <CODE>IDOM_Document</CODE>
* interface, this is always <CODE>null</CODE>.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual const XMLCh * getNamespaceURI() const/* = 0*/;
/**
* Get the <em>namespace prefix</em>
* of this node, or <code>null</code> if it is unspecified.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual const XMLCh * getPrefix() const/* = 0*/;
/**
* Returns the local part of the <em>qualified name</em> of this node.
* <p>
* For nodes created with a DOM Level 1 method, such as
* <code>createElement</code> from the <code>IDOM_Document</code> interface,
* it is null.
*
*
*/
virtual const XMLCh * getLocalName() const/* = 0*/;
/**
* Set the <em>namespace prefix</em> of this node.
* <p>
* Note that setting this attribute, when permitted, changes
* the <CODE>nodeName</CODE> attribute, which holds the <EM>qualified
* name</EM>, as well as the <CODE>tagName</CODE> and <CODE>name</CODE>
* attributes of the <CODE>IDOM_Element</CODE> and <CODE>IDOM_Attr</CODE>
* interfaces, when applicable.
* <p>
* Note also that changing the prefix of an
* attribute, that is known to have a default value, does not make a new
* attribute with the default value and the original prefix appear, since the
* <CODE>namespaceURI</CODE> and <CODE>localName</CODE> do not change.
*
*
* @param prefix The prefix of this node.
* @exception DOMException
* INVALID_CHARACTER_ERR: Raised if the specified prefix contains
* an illegal character.
* <br>
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
* <br>
* NAMESPACE_ERR: Raised if the specified <CODE>prefix</CODE> is
* malformed, if the <CODE>namespaceURI</CODE> of this node is
* <CODE>null</CODE>, if the specified prefix is "xml" and the
* <CODE>namespaceURI</CODE> of this node is different from
* "http://www.w3.org/XML/1998/namespace", if this node is an attribute
* and the specified prefix is "xmlns" and the
* <CODE>namespaceURI</CODE> of this node is different from
* "http://www.w3.org/2000/xmlns/", or if this node is an attribute and
* the <CODE>qualifiedName</CODE> of this node is "xmlns".
*/
virtual void setPrefix(const XMLCh * prefix)/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_NodeFilter.hpp
Index: IDOM_NodeFilter.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_NodeFilter.hpp,v $
* Revision 1.1 2001/07/09 15:20:10 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.3 2001/06/04 20:11:53 tng
* IDOM: Complete IDNodeIterator, IDTreeWalker, IDNodeFilter.
*
* Revision 1.2 2001/05/11 13:25:53 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:31 andyh
* IDOM
*
*/
// IDOM_NodeFilter.h: interface for the IDOM_NodeFilter class.
//
//////////////////////////////////////////////////////////////////////
#ifndef IDOM_NodeFilter_HEADER_GUARD_
#define IDOM_NodeFilter_HEADER_GUARD_
// #include "IDOM_Node.hpp"
//
// class IDNodeFilterImpl;
/**
* Filters are objects that know how to "filter out" nodes. If a
* <code>IDOM_NodeIterator</code> or <code>IDOM_TreeWalker</code> is given a
* filter, it applies the filter before it returns the next node.
*
* If the filter says to accept the node, the iterator returns it; otherwise, the
* iterator looks for the next node and pretends that the node that was rejected
* was not there.
*
* The DOM does not provide any filters. Filter is just an interface that users can
* implement to provide their own filters.
*
* Filters do not need to know how to iterate, nor do they need to know anything
* about the data structure that is being iterated. This makes it very easy to write
* filters, since the only thing they have to know how to do is evaluate a single node.
* One filter may be used with a number of different kinds of iterators, encouraging
* code reuse.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
class /*CDOM_EXPORT*/ IDOM_NodeFilter
{
// protected:
// IDOM_NodeFilter() {};
// IDOM_NodeFilter(const IDOM_NodeFilter &other) {};
// IDOM_NodeFilter & operator = (const IDOM_NodeFilter &other) {return *this;};
public:
/** @name Enumerators for Node Filter */
//@{
/*
* <table><tr><td>FILTER_ACCEPT</td>
* <td>Accept the node. Navigation methods defined for
* NodeIterator or TreeWalker will return this node.</td>
* </tr>
* <tr>
* <td>FILTER_REJECT</td>
* <td>Reject the node. Navigation methods defined for
* NodeIterator or TreeWalker will not return this
* node. For TreeWalker, the children of this node will
* also be rejected. Iterators treat this as a synonym
* for FILTER_SKIP.</td>
* </tr>
* <tr><td>FILTER_SKIP</td>
* <td>Reject the node. Navigation methods defined for
* NodeIterator or TreeWalker will not return this
* node. For both NodeIterator and Treewalker, the
* children of this node will still be considered.</td>
* </tr>
* </table>
*
*/
enum FilterAction {FILTER_ACCEPT = 1,
FILTER_REJECT = 2,
FILTER_SKIP = 3};
enum ShowType {
SHOW_ALL = 0x0000FFFF,
SHOW_ELEMENT = 0x00000001,
SHOW_ATTRIBUTE = 0x00000002,
SHOW_TEXT = 0x00000004,
SHOW_CDATA_SECTION = 0x00000008,
SHOW_ENTITY_REFERENCE = 0x00000010,
SHOW_ENTITY = 0x00000020,
SHOW_PROCESSING_INSTRUCTION = 0x00000040,
SHOW_COMMENT = 0x00000080,
SHOW_DOCUMENT = 0x00000100,
SHOW_DOCUMENT_TYPE = 0x00000200,
SHOW_DOCUMENT_FRAGMENT = 0x00000400,
SHOW_NOTATION = 0x00000800
};
//@}
/** @name Test function. */
//@{
/**
* Test whether a specified node is visible in the logical view of a IDOM_TreeWalker
* or IDOM_NodeIterator. This function will be called by the implementation of
* IDOM_TreeWalker and IDOM_NodeIterator; it is not intended to be called directly from user
* code.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @param node The node to check to see if it passes the filter or not.
* @return A constant to determine whether the node is accepted, rejected, or skipped.
*/
virtual short acceptNode (const IDOM_Node* node) const/* =0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_NodeIterator.hpp
Index: IDOM_NodeIterator.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_NodeIterator.hpp,v $
* Revision 1.1 2001/07/09 15:20:11 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.3 2001/06/04 20:11:53 tng
* IDOM: Complete IDNodeIterator, IDTreeWalker, IDNodeFilter.
*
* Revision 1.2 2001/05/11 13:25:53 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:31 andyh
* IDOM
*
*/
#ifndef IDOM_NodeIterator_HEADER_GUARD_
#define IDOM_NodeIterator_HEADER_GUARD_
// #include "IDOM_NodeFilter.hpp"
// #include "IDOM_Node.hpp"
//
// class IDNodeIteratorImpl;
/**
* NodeIterators are used to step through a set of nodes
* e.g. the set of nodes in a NodeList, the document subtree governed by
* a particular node, the results of a query, or any other set of nodes.
* The set of nodes to be iterated is determined by the implementation
* of the NodeIterator. DOM Level 2 specifies a single NodeIterator
* implementation for document-order traversal of a document
* subtree. Instances of these iterators are created by calling
* <code>DocumentTraversal.createNodeIterator()</code>.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
class /*CDOM_EXPORT*/ IDOM_NodeIterator
{
// protected:
// IDOM_NodeIterator() {};
// IDOM_NodeIterator(const IDOM_NodeIterator &other) {};
// IDOM_NodeIterator & operator = (const IDOM_NodeIterator &other) {return *this;};
public:
/** @name Get functions. */
//@{
/**
* Return which node types are presented via the iterator.
* The available set of constants is defined in the IDOM_NodeFilter interface.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual unsigned long getWhatToShow()/* = 0*/;
/**
* Return The filter used to screen nodes.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_NodeFilter* getFilter()/* = 0*/;
/**
* Return the expandEntityReferences flag.
* The value of this flag determines whether the children of entity reference
* nodes are visible to the IDOM_NodeFilter. If false, they will be skipped over.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual bool getExpandEntityReferences()/* = 0*/;
/**
* Returns the next node in the set and advances the position of the iterator
* in the set. After a IDOM_NodeIterator is created, the first call to nextNode()
* returns the first node in the set.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @exception DOMException
* INVALID_STATE_ERR: Raised if this method is called after the
* <code>detach</code> method was invoked.
*/
virtual IDOM_Node* nextNode()/* = 0*/;
/**
* Returns the previous node in the set and moves the position of the iterator
* backwards in the set.
*
* <p><b>"Experimental - subject to change"</b></p>
*
* @exception DOMException
* INVALID_STATE_ERR: Raised if this method is called after the
* <code>detach</code> method was invoked.
*/
virtual IDOM_Node* previousNode()/* = 0*/;
//@}
/** @name Detaching functions. */
//@{
/**
* Detaches the iterator from the set which it iterated over, releasing any
* computational resources and placing the iterator in the INVALID state. After
* <code>detach</code> has been invoked, calls to <code>nextNode</code> or
* <code>previousNode</code> will raise the exception INVALID_STATE_ERR.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual void detach()/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_NodeList.hpp
Index: IDOM_NodeList.hpp
===================================================================
#ifndef IDOM_NodeList_HEADER_GUARD_
#define IDOM_NodeList_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_NodeList.hpp,v $
* Revision 1.1 2001/07/09 15:20:11 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.3 2001/06/04 14:55:35 tng
* IDOM: Add IRange and IDeepNodeList Support.
*
* Revision 1.2 2001/05/11 13:25:54 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:31 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
//
// class IDOM_Node;
/**
* The <code>NodeList</code> interface provides the abstraction of an ordered
* collection of nodes. NodeLists are created by DOM_Document::getElementsByTagName(),
* DOM_Node::getChildNodes(),
*
* <p>The items in the <code>NodeList</code> are accessible via an integral
* index, starting from 0.
*
* NodeLists are "live", in that any changes to the document tree are immediately
* reflected in any NodeLists that may have been created for that tree.
*/
class /*CDOM_EXPORT*/ IDOM_NodeList {
// protected:
// IDOM_NodeList() {};
// IDOM_NodeList(const IDOM_NodeList &other) {};
// IDOM_NodeList & operator = (const IDOM_NodeList &other) {return *this;};
public:
/** @name Destructor. */
//@{
// virtual ~IDOM_NodeList() {};
//@}
/** @name Get functions. */
//@{
/**
* Returns the <code>index</code>th item in the collection.
*
* If <code>index</code> is greater than or equal to the number of nodes in
* the list, this returns <code>null</code>.
*
* @param index Index into the collection.
* @return The node at the <code>index</code>th position in the
* <code>NodeList</code>, or <code>null</code> if that is not a valid
* index.
*/
virtual IDOM_Node *item(unsigned int index)/* = 0*/;
/**
* Returns the number of nodes in the list.
*
* The range of valid child node indices is 0 to <code>length-1</code> inclusive.
*/
virtual unsigned int getLength()/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Notation.hpp
Index: IDOM_Notation.hpp
===================================================================
#ifndef IDOM_Notation_HEADER_GUARD_
#define IDOM_Notation_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_Notation.hpp,v $
* Revision 1.1 2001/07/09 15:20:11 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:54 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:32 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
/**
* This interface represents a notation declared in the DTD. A notation either
* declares, by name, the format of an unparsed entity (see section 4.7 of
* the XML 1.0 specification), or is used for formal declaration of
* Processing Instruction targets (see section 2.6 of the XML 1.0
* specification). The <code>nodeName</code> attribute inherited from
* <code>Node</code> is set to the declared name of the notation.
* <p>The DOM Level 1 does not support editing <code>Notation</code> nodes;
* they are therefore readonly.
* <p>A <code>Notation</code> node does not have any parent.
*/
class /*CDOM_EXPORT*/ IDOM_Notation: public IDOM_Node {
// protected:
// IDOM_Notation() {};
// IDOM_Notation(const IDOM_Notation &other) {};
// IDOM_Notation & operator = (const IDOM_Notation &other) {return *this;};
public:
// virtual ~IDOM_Notation() {};
/** @name Get functions. */
//@{
/**
* Get the public identifier of this notation.
*
* If the public identifier was not
* specified, this is <code>null</code>.
* @return Returns the public identifier of the notation
*/
virtual const XMLCh *getPublicId() const/* = 0*/;
/**
* Get the system identifier of this notation.
*
* If the system identifier was not
* specified, this is <code>null</code>.
* @return Returns the system identifier of the notation
*/
virtual const XMLCh *getSystemId() const/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_ProcessingInstruction.hpp
Index: IDOM_ProcessingInstruction.hpp
===================================================================
#ifndef IDOM_ProcessingInstruction_HEADER_GUARD_
#define IDOM_ProcessingInstruction_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_ProcessingInstruction.hpp,v $
* Revision 1.1 2001/07/09 15:20:11 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:54 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:32 andyh
* IDOM
*
*/
// #include <util/XercesDefs.hpp>
// #include "IDOM_Node.hpp"
/**
* The <code>ProcessingInstruction</code> interface represents a "processing
* instruction", used in XML as a way to keep processor-specific information
* in the text of the document.
*/
class /*CDOM_EXPORT*/ IDOM_ProcessingInstruction: public IDOM_Node {
// protected:
// IDOM_ProcessingInstruction() {};
//
// IDOM_ProcessingInstruction(const IDOM_ProcessingInstruction &other) {};
// IDOM_ProcessingInstruction & operator = (const IDOM_ProcessingInstruction &other) {return *this;};
public:
// virtual ~IDOM_ProcessingInstruction() {};
//@}
/** @name Get functions. */
//@{
/**
* The target of this processing instruction.
*
* XML defines this as being the
* first token following the markup that begins the processing instruction.
*/
virtual const XMLCh * getTarget() const/* = 0*/;
/**
* The content of this processing instruction.
*
* This is from the first non
* white space character after the target to the character immediately
* preceding the <code>?></code>.
* @exception DOMException
* NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
*/
virtual const XMLCh * getData() const/* = 0*/;
//@}
/** @name Set functions. */
//@{
/**
* Sets the content of this processing instruction.
*
* This is from the first non
* white space character after the target to the character immediately
* preceding the <code>?></code>.
* @param data The string containing the processing instruction
*/
virtual void setData(const XMLCh * data)/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Range.hpp
Index: IDOM_Range.hpp
===================================================================
#ifndef IDOM_Range_HEADER_GUARD_
#define IDOM_Range_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: IDOM_Range.hpp,v 1.1 2001/07/09 15:20:12 jasons Exp $
*/
// #include <util/XercesDefs.hpp>
//
// class IDOM_Node;
// class IDOM_DocumentFragment;
//
class /*CDOM_EXPORT*/ IDOM_Range {
// protected:
// IDOM_Range() {};
// IDOM_Range(const IDOM_Range &other) {};
// IDOM_Range & operator = (const IDOM_Range &other) {return *this;};
public:
enum CompareHow {
START_TO_START = 0,
START_TO_END = 1,
END_TO_END = 2,
END_TO_START = 3
};
// virtual ~IDOM_Range() {};
//getter functions
virtual IDOM_Node* getStartContainer() const/* = 0*/;
virtual unsigned int getStartOffset() const/* = 0*/;
virtual IDOM_Node* getEndContainer() const/* = 0*/;
virtual unsigned int getEndOffset() const/* = 0*/;
virtual bool getCollapsed() const/* = 0*/;
virtual const IDOM_Node* getCommonAncestorContainer() const/* = 0*/;
//setter functions
virtual void setStart(const IDOM_Node *parent, unsigned int offset)/* = 0*/;
virtual void setEnd(const IDOM_Node *parent, unsigned int offset)/* = 0*/;
virtual void setStartBefore(const IDOM_Node *refNode)/* = 0*/;
virtual void setStartAfter(const IDOM_Node *refNode)/* = 0*/;
virtual void setEndBefore(const IDOM_Node *refNode)/* = 0*/;
virtual void setEndAfter(const IDOM_Node *refNode)/* = 0*/;
//misc functions
virtual void collapse(bool toStart)/* = 0*/;
virtual void selectNode(const IDOM_Node *node)/* = 0*/;
virtual void selectNodeContents(const IDOM_Node *node)/* = 0*/;
//Functions related to comparing range Boundrary-Points
virtual short compareBoundaryPoints(CompareHow how, const IDOM_Range* range) const/* = 0*/;
virtual void deleteContents()/* = 0*/;
virtual IDOM_DocumentFragment* extractContents()/* = 0*/;
virtual IDOM_DocumentFragment* cloneContents() const/* = 0*/;
virtual void insertNode(IDOM_Node *node)/* = 0*/;
//Misc functions
virtual void surroundContents(IDOM_Node *node)/* = 0*/;
virtual IDOM_Range* cloneRange() const/* = 0*/;
virtual const XMLCh* toString() const/* = 0*/;
virtual void detach()/* = 0*/;
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_RangeException.hpp
Index: IDOM_RangeException.hpp
===================================================================
#ifndef IDOM_RangeException_HEADER_GUARD_
#define IDOM_RangeException_HEADER_GUARD_
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_RangeException.hpp,v $
* Revision 1.1 2001/07/09 15:20:12 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.3 2001/06/04 14:55:36 tng
* IDOM: Add IRange and IDeepNodeList Support.
*
* Revision 1.2 2001/05/11 13:25:55 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:32 andyh
* IDOM
*
*/
// #include <idom/IDOM_DOMException.hpp>
/**
* Encapsulate range related DOM error or warning. DOM level 2 implementation.
*
* <p> The DOM will create and throw an instance of IDOM_RangeException
* when an error condition in range is detected. Exceptions can occur
* when an application directly manipulates the range elements in DOM document
* tree that is produced by the parser.
*
* <p>Unlike the other classes in the C++ DOM API, IDOM_RangeException
* is NOT a reference to an underlying implementation class, and
* does not provide automatic memory management. Code that catches
* a DOM Range exception is responsible for deleting it, or otherwise
* arranging for its disposal.
*
*/
class /*CDOM_EXPORT*/ IDOM_RangeException : public IDOM_DOMException {
public:
/** @name Enumerators for DOM Range Exceptions */
//@{
enum RangeExceptionCode {
BAD_BOUNDARYPOINTS_ERR = 1,
INVALID_NODE_TYPE_ERR = 2
};
//@}
public:
/** @name Constructors and assignment operator */
//@{
/**
* Default constructor for IDOM_RangeException.
*
*/
IDOM_RangeException();
/**
* Constructor which takes an error code and a message.
*
* @param code The error code which indicates the exception
* @param message The string containing the error message
*/
IDOM_RangeException(RangeExceptionCode code, const XMLCh* message);
/**
* Copy constructor.
*
* @param other The object to be copied.
*/
IDOM_RangeException(const IDOM_RangeException &other);
//@}
/** @name Destructor. */
//@{
/**
* Destructor for IDOM_RangeException. Applications are responsible
* for deleting IDOM_RangeException objects that they catch after they
* have completed their exception processing.
*
*/
// virtual ~IDOM_RangeException();
//@}
/** @name Public variables. */
//@{
/**
* A code value, from the set defined by the RangeExceptionCode enum,
* indicating the type of error that occured.
*/
IDOM_RangeException::RangeExceptionCode code;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_Text.hpp
Index: IDOM_Text.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_Text.hpp,v $
* Revision 1.1 2001/07/09 15:20:12 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.2 2001/05/11 13:25:55 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:32 andyh
* IDOM
*
*/
#ifndef IDOM_Text_HEADER_GUARD_
#define IDOM_Text_HEADER_GUARD_
// #include <util/XercesDefs.hpp>
// #include "IDOM_CharacterData.hpp"
/**
* The <code>Text</code> interface represents the textual content (termed
* character data in XML) of an <code>Element</code> or <code>Attr</code>.
* If there is no markup inside an element's content, the text is contained
* in a single object implementing the <code>Text</code> interface that is
* the only child of the element. If there is markup, it is parsed into a
* list of elements and <code>Text</code> nodes that form the list of
* children of the element.
* <p>When a document is first made available via the DOM, there is only one
* <code>Text</code> node for each block of text. Users may create adjacent
* <code>Text</code> nodes that represent the contents of a given element
* without any intervening markup, but should be aware that there is no way
* to represent the separations between these nodes in XML, so they
* will not (in general) persist between DOM editing sessions. The
* <code>normalize()</code> method on <code>Element</code> merges any such
* adjacent <code>Text</code> objects into a single node for each block of
* text; this is recommended before employing operations that depend on a
* particular document structure, such as navigation with
* <code>XPointers.</code>
*/
class /*CDOM_EXPORT*/ IDOM_Text: public IDOM_CharacterData {
// protected:
// /** @name Constructors and assignment operator */
// //@{
// IDOM_Text() {};
//
// IDOM_Text(const IDOM_Text &other) {};
//
// IDOM_Text & operator = (const IDOM_Text &other) {return *this;};
//@}
public:
/** @name Destructor. */
//@{
/**
* Destructor for IDOM_Text. The object being destroyed is the reference
* object, not the underlying Comment node itself.
*
*/
// virtual ~IDOM_Text() {};
//@}
/** @name Functions to modify the Text node. */
//@{
/**
* Breaks this node into two nodes at the specified
* offset, keeping both in the tree as siblings.
*
* This node then only
* contains all the content up to the <code>offset</code> point. And a new
* node of the same nodeType, which is inserted as the next sibling of this
* node, contains all the content at and after the <code>offset</code>
* point. When the <code>offset</code> is equal to the lenght of this node,
* the new node has no data.
* @param offset The offset at which to split, starting from 0.
* @return The new <code>Text</code> node.
* @exception DOMException
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
* than the number of characters in <code>data</code>.
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
*/
virtual IDOM_Text *splitText(unsigned int offset)/* = 0*/;
//@}
/** @name Non-standard (not defined by the DOM specification) functions. */
//@{
/**
*
* <p><b>"Experimental - subject to change"</b></p>
*
* Return true if this node contains ignorable whitespaces only.
* @return True if this node contains ignorable whitespaces only.
*/
virtual bool isIgnorableWhitespace() const/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/idom/IDOM_TreeWalker.hpp
Index: IDOM_TreeWalker.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: IDOM_TreeWalker.hpp,v $
* Revision 1.1 2001/07/09 15:20:12 jasons
* New headers/tests for IDOM support and Exception handling
*
* Revision 1.3 2001/06/04 20:11:53 tng
* IDOM: Complete IDNodeIterator, IDTreeWalker, IDNodeFilter.
*
* Revision 1.2 2001/05/11 13:25:56 tng
* Copyright update.
*
* Revision 1.1.1.1 2001/04/03 00:14:33 andyh
* IDOM
*
*/
#ifndef IDOM_TreeWalker_HEADER_GUARD_
#define IDOM_TreeWalker_HEADER_GUARD_
// #include "IDOM_Node.hpp"
// #include "IDOM_NodeFilter.hpp"
/**
* <code>IDOM_TreeWalker</code> objects are used to navigate a document tree or
* subtree using the view of the document defined by its <code>whatToShow</code>
* flags and any filters that are defined for the <code>IDOM_TreeWalker</code>. Any
* function which performs navigation using a <code>IDOM_TreeWalker</code> will
* automatically support any view defined by a <code>IDOM_TreeWalker</code>.
*
* Omitting nodes from the logical view of a subtree can result in a structure that is
* substantially different from the same subtree in the complete, unfiltered document. Nodes
* that are siblings in the IDOM_TreeWalker view may be children of different, widely separated
* nodes in the original view. For instance, consider a Filter that skips all nodes except for
* Text nodes and the root node of a document. In the logical view that results, all text
* nodes will be siblings and appear as direct children of the root node, no matter how
* deeply nested the structure of the original document.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
class /*CDOM_EXPORT*/ IDOM_TreeWalker {
// protected:
// IDOM_TreeWalker() {};
// IDOM_TreeWalker(const IDOM_TreeWalker &other) {};
// IDOM_TreeWalker & operator = (const IDOM_TreeWalker &other) {return *this;};
public:
/** @name Get functions. */
//@{
/**
* Return which node types are presented via the IDOM_TreeWalker.
* These constants are defined in the IDOM_NodeFilter interface.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual unsigned long getWhatToShow()/* = 0*/;
/**
* Return The filter used to screen nodes.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_NodeFilter* getFilter()/* = 0*/;
/**
* Return the expandEntityReferences flag.
* The value of this flag determines whether the children of entity reference
* nodes are visible to the IDOM_TreeWalker. If false, they will be skipped over.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual bool getExpandEntityReferences()/* = 0*/;
/**
* Return the node at which the IDOM_TreeWalker is currently positioned.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* getCurrentNode()/* = 0*/;
/**
* Moves to and returns the closest visible ancestor node of the current node.
* If the search for parentNode attempts to step upward from the IDOM_TreeWalker's root
* node, or if it fails to find a visible ancestor node, this method retains the
* current position and returns null.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* parentNode()/* = 0*/;
/**
* Moves the <code>IDOM_TreeWalker</code> to the first child of the current node,
* and returns the new node. If the current node has no children, returns
* <code>null</code>, and retains the current node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* firstChild()/* = 0*/;
/**
* Moves the <code>IDOM_TreeWalker</code> to the last child of the current node, and
* returns the new node. If the current node has no children, returns
* <code>null</code>, and retains the current node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* lastChild()/* = 0*/;
/**
* Moves the <code>IDOM_TreeWalker</code> to the previous sibling of the current
* node, and returns the new node. If the current node has no previous sibling,
* returns <code>null</code>, and retains the current node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* previousSibling()/* = 0*/;
/**
* Moves the <code>IDOM_TreeWalker</code> to the next sibling of the current node,
* and returns the new node. If the current node has no next sibling, returns
* <code>null</code>, and retains the current node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* nextSibling()/* = 0*/;
/**
* Moves the <code>IDOM_TreeWalker</code> to the previous visible node in document
* order relative to the current node, and returns the new node. If the current
* node has no previous node,
* or if the search for previousNode attempts to step upward from the IDOM_TreeWalker's
* root node, returns <code>null</code>, and retains the current node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* previousNode()/* = 0*/;
/**
* Moves the <code>IDOM_TreeWalker</code> to the next visible node in document order
* relative to the current node, and returns the new node. If the current node has
* no next node,
* or if the search for nextNode attempts to step upward from the IDOM_TreeWalker's
* root node, returns <code>null</code>, and retains the current node.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual IDOM_Node* nextNode()/* = 0*/;
//@}
/** @name Set functions. */
//@{
/**
* Set the node at which the IDOM_TreeWalker is currently positioned.
*
* <p><b>"Experimental - subject to change"</b></p>
*
*/
virtual void setCurrentNode(IDOM_Node* currentNode)/* = 0*/;
//@}
};
#endif
1.1 xml-xerces/perl/Xerces_headers/parsers/IDOMParser.hpp
Index: IDOMParser.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 2001, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: IDOMParser.hpp,v 1.1 2001/07/09 15:20:15 jasons Exp $
*
*/
#if !defined(IDOMPARSER_HPP)
#define IDOMPARSER_HPP
// #include <idom/IDOM_Document.hpp>
#include <framework/XMLDocumentHandler.hpp>
#include <framework/XMLErrorReporter.hpp>
#include <framework/XMLEntityHandler.hpp>
// #include <util/ValueStackOf.hpp>
//
// #include <validators/DTD/DocTypeHandler.hpp>
// #include <idom/IDOM_DocumentType.hpp>
// #include <validators/DTD/DTDElementDecl.hpp>
//
// class EntityResolver;
// class ErrorHandler;
// class XMLPScanToken;
// class XMLScanner;
// class XMLValidator;
// class IDDocumentImpl;
// class IDDocumentTypeImpl;
/**
* This class implements the Document Object Model (DOM) interface.
* It should be used by applications which choose to parse and
* process the XML document using the DOM api's. This implementation
* also allows the applications to install an error and an entitty
* handler (useful extensions to the DOM specification).
*
* <p>It can be used to instantiate a validating or non-validating
* parser, by setting a member flag.</p>
*/
class /*PARSERS_EXPORT*/ IDOMParser : public XMLDocumentHandler , public XMLErrorReporter , public XMLEntityHandler , public DocTypeHandler {
public :
// -----------------------------------------------------------------------
// Class types
// -----------------------------------------------------------------------
enum ValSchemes
{
Val_Never
, Val_Always
, Val_Auto
};
// -----------------------------------------------------------------------
// Constructors and Detructor
// -----------------------------------------------------------------------
/** @name Constructors and Destructor */
//@{
/** Construct a IDOMParser, with an optional validator
*
* Constructor with an instance of validator class to use for
* validation. If you don't provide a validator, a default one will
* be created for you in the scanner.
*
* @param valToAdopt Pointer to the validator instance to use. The
* parser is responsible for freeing the memory.
*/
IDOMParser(/*XMLValidator* const valToAdopt = 0*/);
/**
* Destructor
*/
// ~IDOMParser();
//@}
/** Reset the parser
*
* This method resets the state of the IDOM driver and makes
* it ready for a fresh parse run.
*/
void reset();
// -----------------------------------------------------------------------
// Getter methods
// -----------------------------------------------------------------------
/** @name Getter methods */
//@{
/** Get the IDOM document
*
* This method returns the IDOM_Document object representing the
* root of the document tree. This object provides the primary
* access to the document's data.
*
* @return The IDOM_Document object which represents the entire
* XML document.
*/
IDOM_Document* getDocument();
/** Get a pointer to the error handler
*
* This method returns the installed error handler. If no handler
* has been installed, then it will be a zero pointer.
*
* @return The pointer to the installed error handler object.
*/
ErrorHandler* getErrorHandler();
/** Get a const pointer to the error handler
*
* This method returns the installed error handler. If no handler
* has been installed, then it will be a zero pointer.
*
* @return A const pointer to the installed error handler object.
*/
const ErrorHandler* getErrorHandler() const;
/** Get a pointer to the entity resolver
*
* This method returns the installed entity resolver. If no resolver
* has been installed, then it will be a zero pointer.
*
* @return The pointer to the installed entity resolver object.
*/
EntityResolver* getEntityResolver();
/** Get a const pointer to the entity resolver
*
* This method returns the installed entity resolver. If no resolver
* has been installed, then it will be a zero pointer.
*
* @return A const pointer to the installed entity resolver object.
*/
const EntityResolver* getEntityResolver() const;
/** Get a const reference to the underlying scanner
*
* This method returns a reference to the underlying scanner object.
* It allows read only access to data maintained in the scanner.
*
* @return A const reference to the underlying scanner object.
*/
const XMLScanner& getScanner() const;
/** Get a const reference to the validator
*
* This method returns a reference to the parser's installed
* validator.
*
* @return A const reference to the installed validator object.
*/
const XMLValidator& getValidator() const;
/**
* This method returns an enumerated value that indicates the current
* validation scheme set on this parser.
*
* @return The ValSchemes value current set on this parser.
* @see #setValidationScheme
*/
ValSchemes getValidationScheme() const;
/** Get the 'do schema' flag
*
* This method returns the state of the parser's schema processing
* flag.
*
* @return true, if the parser is currently configured to
* understand schema, false otherwise.
*
* @see #setDoSchema
*/
bool getDoSchema() const;
/** Get error count from the last parse operation.
*
* This method returns the error count from the last parse
* operation. Note that this count is actually stored in the
* scanner, so this method simply returns what the
* scanner reports.
*
* @return number of errors encountered during the latest
* parse operation.
*
*/
int getErrorCount() const;
/** Get the 'do namespaces' flag
*
* This method returns the state of the parser's namespace processing
* flag.
*
* @return true, if the parser is currently configured to
* understand namespaces, false otherwise.
*
* @see #setDoNamespaces
*/
bool getDoNamespaces() const;
/** Get the 'exit on first error' flag
*
* This method returns the state of the parser's
* exit-on-First-Fatal-Error flag. If this flag is true, then the
* parse will exit the first time it sees any non-wellformed XML or
* any validity error. The default state is true.
*
* @return true, if the parser is currently configured to
* exit on the first fatal error, false otherwise.
*
* @see #setExitOnFirstFatalError
*/
bool getExitOnFirstFatalError() const;
/**
* This method returns the state of the parser's
* validation-constraint-fatal flag.
*
* @return true, if the parser is currently configured to
* set validation constraint errors as fatal, false
* otherwise.
*
* @see #setValidationContraintFatal
*/
bool getValidationConstraintFatal() const;
/** Get the 'expand entity references' flag.
* DEPRECATED Use getCreateEntityReferenceNodes() instead.
*
* This method returns the state of the parser's expand entity
* references flag.
*
* @return 'true' if the expand entity reference flag is set on
* the parser, 'false' otherwise.
*
* @see #setExpandEntityReferences
*/
bool getExpandEntityReferences() const;
/** Get the 'include entity references' flag
*
* This flag specifies whether the parser is
* creating entity reference nodes in the DOM tree being produced.
* When the 'create' flag is
* true, the DOM tree will contain entity reference nodes.
* When the 'create' flag is false, no entity reference nodes
* are included in the DOM tree.
* <p>The replacement text
* of the entity is included in either case, either as a
* child of the Entity Reference node or in place at the location
* of the reference.
*
* @return The state of the create entity reference node
* flag.
* @see #setCreateEntityReferenceNodes
*/
bool getCreateEntityReferenceNodes()const;
/** Get the 'include ignorable whitespace' flag.
*
* This method returns the state of the parser's include ignorable
* whitespace flag.
*
* @return 'true' if the include ignorable whitespace flag is set on
* the parser, 'false' otherwise.
*
* @see #setIncludeIgnorableWhitespace
*/
bool getIncludeIgnorableWhitespace() const;
//@}
// -----------------------------------------------------------------------
// Setter methods
// -----------------------------------------------------------------------
/** @name Setter methods */
//@{
/** Set the error handler
*
* This method allows applications to install their own error handler
* to trap error and warning messages.
*
* <i>Any previously set handler is merely dropped, since the parser
* does not own them.</i>
*
* @param handler A const pointer to the user supplied error
* handler.
*
* @see #getErrorHandler
*/
void setErrorHandler(ErrorHandler* /*const*/ handler);
/** Set the entity resolver
*
* This method allows applications to install their own entity
* resolver. By installing an entity resolver, the applications
* can trap and potentially redirect references to external
* entities.
*
* <i>Any previously set resolver is merely dropped, since the parser
* does not own them.</i>
*
* @param handler A const pointer to the user supplied entity
* resolver.
*
* @see #getEntityResolver
*/
void setEntityResolver(EntityResolver* /*const*/ handler);
/** Set the 'do namespaces' flag
*
* This method allows users to enable or disable the parser's
* namespace processing. When set to true, parser starts enforcing
* all the constraints and rules specified by the NameSpace
* specification.
*
* The parser's default state is: false.
*
* This flag is ignored by the underlying scanner if the installed
* validator indicates that namespace constraints should be
* enforced.
*
* @param newState The value specifying whether NameSpace rules should
* be enforced or not.
*
* @see #getDoNamespaces
*/
void setDoNamespaces(const bool newState);
/** Set the 'exit on first error' flag
*
* This method allows users to set the parser's behaviour when it
* encounters the first fatal error. If set to true, the parser
* will exit at the first fatal error. If false, then it will
* report the error and continue processing.
*
* The default value is 'true' and the parser exits on the
* first fatal error.
*
* @param newState The value specifying whether the parser should
* continue or exit when it encounters the first
* fatal error.
*
* @see #getExitOnFirstFatalError
*/
void setExitOnFirstFatalError(const bool newState);
/**
* This method allows users to set the parser's behaviour when it
* encounters a validtion constraint error. If set to true, and the
* the parser is set to exit when it encounter the first fatal error,
* the parser will exit at the first encounter. If false, then it will
* report the error and continue processing.
*
* <p>The default value is 'false'.</p>
*
* @param newState The value specifying whether the parser should
* continue or exit when it encounters a validation
* constraint error.
*
* @see #getValidationConstraintFatal
*/
void setValidationConstraintFatal(const bool newState);
/** Set the 'expand entity references' flag
*
* DEPRECATED. USE setCreateEntityReferenceNodes instead.
* This method allows the user to specify whether the parser should
* expand all entity reference nodes. When the 'do expansion' flag is
* true, the DOM tree does not have any entity reference nodes. It is
* replaced by the sub-tree representing the replacement text of the
* entity. When the 'do expansion' flag is false, the DOM tree
* contains an extra entity reference node, whose children is the
* sub tree of the replacement text.
*
* @param expand The new state of the expand entity reference
* flag.
*/
void setExpandEntityReferences(const bool expand);
/** Set the 'include entity references' flag
*
* This method allows the user to specify whether the parser should
* create entity reference nodes in the DOM tree being produced.
* When the 'create' flag is
* true, the DOM tree constains entity reference nodes.
* When the 'create' flag is false, no entity reference nodes
* are included in the DOM tree.
* <p>The replacement text
* of the entity is included in either case, either as a
* child of the Entity Reference node or in place at the location
* of the reference.
*
* @param create The new state of the create entity reference nodes
* flag.
*/
void setCreateEntityReferenceNodes(const bool create);
/** Set the 'include ignorable whitespace' flag
*
* This method allows the user to specify whether a validating parser
* should include ignorable whitespaces as text nodes. It has no effect
* on non-validating parsers which always include non-markup text.
* <p>When set to true (also the default), ignorable whitespaces will be
* added to the DOM tree as text nodes. The method
* IDOM_Text::isIgnorableWhitespace() will return true for those text
* nodes only.
* <p>When set to false, all ignorable whitespace will be discarded and
* no text node is added to the DOM tree. Note: applications intended
* to process the "xml:space" attribute should not set this flag to false.
* And this flag also overrides any schema datateye whitespace facets,
* that is, all ignorable whitespace will be discarded even though
* 'preserve' is set in schema datatype whitespace facets.
*
* @param include The new state of the include ignorable whitespace
* flag.
*
* @see #getIncludeIgnorableWhitespace
*/
void setIncludeIgnorableWhitespace(const bool include);
/**
* This method allows users to set the validation scheme to be used
* by this parser. The value is one of the ValSchemes enumerated values
* defined by this class:
*
* <br> Val_Never - turn off validation
* <br> Val_Always - turn on validation
* <br> Val_Auto - turn on validation if any internal/external
* DTD subset have been seen
*
* <p>The parser's default state is: Val_Auto.</p>
*
* @param newScheme The new validation scheme to use.
*
* @see #getValidationScheme
*/
void setValidationScheme(const ValSchemes newScheme);
/** Set the 'do schema' flag
*
* This method allows users to enable or disable the parser's
* schema processing. When set to false, parser will not process
* any schema found.
*
* The parser's default state is: true.
*
* @param newState The value specifying whether schema support should
* be enforced or not.
*
* @see #getDoSchema
*/
void setDoSchema(const bool newState);
//@}
// -----------------------------------------------------------------------
// Parsing methods
// -----------------------------------------------------------------------
/** @name Parsing methods */
//@{
/** Parse via an input source object
*
* This method invokes the parsing process on the XML file specified
* by the InputSource parameter. This API is borrowed from the
* SAX Parser interface.
*
* @param source A const reference to the InputSource object which
* points to the XML file to be parsed.
* @param reuseGrammar The flag indicating whether the existing Grammar
* should be reused or not for this parsing run.
* If true, there cannot be any internal subset.
* @see Parser#parse(InputSource)
*/
void parse(const InputSource& source, const bool reuseGrammar = false);
/** Parse via a file path or URL
*
* This method invokes the parsing process on the XML file specified by
* the Unicode string parameter 'systemId'. This method is borrowed
* from the SAX Parser interface.
*
* @param systemId A const XMLCh pointer to the Unicode string which
* contains the path to the XML file to be parsed.
* @param reuseGrammar The flag indicating whether the existing Grammar
* should be reused or not for this parsing run.
* If true, there cannot be any internal subset.
*
* @see Parser#parse(XMLCh*)
*/
void parse(const XMLCh* /*const*/ systemId, const bool reuseGrammar = false);
/** Parse via a file path or URL (in the local code page)
*
* This method invokes the parsing process on the XML file specified by
* the native char* string parameter 'systemId'.
*
* @param systemId A const char pointer to a native string which
* contains the path to the XML file to be parsed.
* @param reuseGrammar The flag indicating whether the existing Grammar
* should be reused or not for this parsing run.
* If true, there cannot be any internal subset.
*/
void parse(const char* /*const*/ systemId, const bool reuseGrammar = false);
/** Begin a progressive parse operation
*
* This method is used to start a progressive parse on a XML file.
* To continue parsing, subsequent calls must be to the parseNext
* method.
*
* It scans through the prolog and returns a token to be used on
* subsequent scanNext() calls. If the return value is true, then the
* token is legal and ready for further use. If it returns false, then
* the scan of the prolog failed and the token is not going to work on
* subsequent scanNext() calls.
*
* @param systemId A pointer to a Unicode string represting the path
* to the XML file to be parsed.
* @param toFill A token maintaing state information to maintain
* internal consistency between invocation of 'parseNext'
* calls.
* @param reuseGrammar The flag indicating whether the existing Grammar
* should be reused or not for this parsing process.
* If true, there cannot be any internal subset.
* @return 'true', if successful in parsing the prolog. It indicates the
* user can go ahead with parsing the rest of the file. It
* returns 'false' to indicate that the parser could not parse
* the prolog.
*
* @see #parseNext
* @see #parseFirst(char*,...)
* @see #parseFirst(InputSource&,...)
*/
bool parseFirst
(
const XMLCh* /*const*/ systemId
, XMLPScanToken& toFill
, const bool reuseGrammar = false
);
/** Begin a progressive parse operation
*
* This method is used to start a progressive parse on a XML file.
* To continue parsing, subsequent calls must be to the parseNext
* method.
*
* It scans through the prolog and returns a token to be used on
* subsequent scanNext() calls. If the return value is true, then the
* token is legal and ready for further use. If it returns false, then
* the scan of the prolog failed and the token is not going to work on
* subsequent scanNext() calls.
*
* @param systemId A pointer to a regular native string represting
* the path to the XML file to be parsed.
* @param toFill A token maintaing state information to maintain
* internal consistency between invocation of 'parseNext'
* calls.
* @param reuseGrammar The flag indicating whether the existing Grammar
* should be reused or not for this parsing run.
* If true, there cannot be any internal subset.
*
* @return 'true', if successful in parsing the prolog. It indicates the
* user can go ahead with parsing the rest of the file. It
* returns 'false' to indicate that the parser could not parse
* the prolog.
*
* @see #parseNext
* @see #parseFirst(XMLCh*,...)
* @see #parseFirst(InputSource&,...)
*/
bool parseFirst
(
const char* /*const*/ systemId
, XMLPScanToken& toFill
, const bool reuseGrammar = false
);
/** Begin a progressive parse operation
*
* This method is used to start a progressive parse on a XML file.
* To continue parsing, subsequent calls must be to the parseNext
* method.
*
* It scans through the prolog and returns a token to be used on
* subsequent scanNext() calls. If the return value is true, then the
* token is legal and ready for further use. If it returns false, then
* the scan of the prolog failed and the token is not going to work on
* subsequent scanNext() calls.
*
* @param source A const reference to the InputSource object which
* points to the XML file to be parsed.
* @param toFill A token maintaing state information to maintain
* internal consistency between invocation of 'parseNext'
* calls.
* @param reuseGrammar The flag indicating whether the existing Grammar
* should be reused or not for this parsing process.
* If true, there cannot be any internal subset.
*
* @return 'true', if successful in parsing the prolog. It indicates the
* user can go ahead with parsing the rest of the file. It
* returns 'false' to indicate that the parser could not parse
* the prolog.
*
* @see #parseNext
* @see #parseFirst(XMLCh*,...)
* @see #parseFirst(char*,...)
*/
bool parseFirst
(
const InputSource& source
, XMLPScanToken& toFill
, const bool reuseGrammar = false
);
/** Continue a progressive parse operation
*
* This method is used to continue with progressive parsing of
* XML files started by a call to 'parseFirst' method.
*
* It parses the XML file and stops as soon as it comes across
* a XML token (as defined in the XML specification).
*
* @param token A token maintaing state information to maintain
* internal consistency between invocation of 'parseNext'
* calls.
*
* @return 'true', if successful in parsing the next XML token.
* It indicates the user can go ahead with parsing the rest
* of the file. It returns 'false' to indicate that the parser
* could not find next token as per the XML specification
* production rule.
*
* @see #parseFirst(XMLCh*,...)
* @see #parseFirst(char*,...)
* @see #parseFirst(InputSource&,...)
*/
bool parseNext(XMLPScanToken& token);
/** Reset the parser after a progressive parse
*
* If a progressive parse loop exits before the end of the document
* is reached, the parser has no way of knowing this. So it will leave
* open any files or sockets or memory buffers that were in use at
* the time that the parse loop exited.
*
* The next parse operation will cause these open files and such to
* be closed, but the next parse operation might occur at some unknown
* future point. To avoid this problem, you should reset the parser if
* you exit the loop early.
*
* If you exited because of an error, then this cleanup will be done
* for you. Its only when you exit the file prematurely of your own
* accord, because you've found what you wanted in the file most
* likely.
*
* @param token A token maintaing state information to maintain
* internal consistency between invocation of 'parseNext'
* calls.
*
* @see #parseFirst(XMLCh*,...)
* @see #parseFirst(char*,...)
* @see #parseFirst(InputSource&,...)
*/
void parseReset(XMLPScanToken& token);
//@}
// -----------------------------------------------------------------------
// Implementation of the XMLErrorReporter interface.
// -----------------------------------------------------------------------
/** @name Implementation of the XMLErrorReporter interface. */
//@{
/** Handle errors reported from the parser
*
* This method is used to report back errors found while parsing the
* XML file. This method is also borrowed from the SAX specification.
* It calls the corresponding user installed Error Handler method:
* 'fatal', 'error', 'warning' depending on the severity of the error.
* This classification is defined by the XML specification.
*
* @param errCode An integer code for the error.
* @param msgdomain A const pointer to an Unicode string representing
* the message domain to use.
* @param errType An enumeration classifying the severity of the error.
* @param errorText A const pointer to an Unicode string representing
* the text of the error message.
* @param systemId A const pointer to an Unicode string representing
* the system id of the XML file where this error
* was discovered.
* @param publicId A const pointer to an Unicode string representing
* the public id of the XML file where this error
* was discovered.
* @param lineNum The line number where the error occurred.
* @param colNum The column number where the error occurred.
* @see ErrorHandler
*/
virtual void error
(
const unsigned int errCode
, const XMLCh* /*const*/ msgDomain
, const XMLErrorReporter::ErrTypes errType
, const XMLCh* /*const*/ errorText
, const XMLCh* /*const*/ systemId
, const XMLCh* /*const*/ publicId
, const unsigned int lineNum
, const unsigned int colNum
);
/** Reset any error data before a new parse
*
* This method allows the user installed Error Handler callback to
* 'reset' itself.
*
* <b><font color="#FF0000">This method is a no-op for this IDOM
* implementation.</font></b>
*/
virtual void resetErrors();
//@}
// -----------------------------------------------------------------------
// Implementation of the XMLEntityHandler interface.
// -----------------------------------------------------------------------
/** @name Implementation of the XMLEntityHandler interface. */
//@{
/** Handle an end of input source event
*
* This method is used to indicate the end of parsing of an external
* entity file.
*
* <b><font color="#FF0000">This method is a no-op for this IDOM
* implementation.</font></b>
*
* @param inputSource A const reference to the InputSource object
* which points to the XML file being parsed.
* @see InputSource
*/
virtual void endInputSource(const InputSource& inputSource);
/** Expand a system id
*
* This method allows an installed XMLEntityHandler to further
* process any system id's of enternal entities encountered in
* the XML file being parsed, such as redirection etc.
*
* <b><font color="#FF0000">This method always returns 'false'
* for this IDOM implementation.</font></b>
*
* @param systemId A const pointer to an Unicode string representing
* the system id scanned by the parser.
* @param toFill A pointer to a buffer in which the application
* processed system id is stored.
* @return 'true', if any processing is done, 'false' otherwise.
*/
virtual bool expandSystemId
(
const XMLCh* /*const*/ systemId
, XMLBuffer& toFill
);
/** Reset any entity handler information
*
* This method allows the installed XMLEntityHandler to reset
* itself.
*
* <b><font color="#FF0000">This method is a no-op for this IDOM
* implementation.</font></b>
*/
virtual void resetEntities();
/** Resolve a public/system id
*
* This method allows a user installed entity handler to further
* process any pointers to external entities. The applications can
* implement 'redirection' via this callback. This method is also
* borrowed from the SAX specification.
*
* @param publicId A const pointer to a Unicode string representing the
* public id of the entity just parsed.
* @param systemId A const pointer to a Unicode string representing the
* system id of the entity just parsed.
* @return The value returned by the user installed resolveEntity
* method or NULL otherwise to indicate no processing was done.
* @see EntityResolver
*/
virtual InputSource* resolveEntity
(
const XMLCh* /*const*/ publicId
, const XMLCh* /*const*/ systemId
);
/** Handle a 'start input source' event
*
* This method is used to indicate the start of parsing an external
* entity file.
*
* <b><font color="#FF0000">This method is a no-op for this IDOM parse
* implementation.</font></b>
*
* @param inputSource A const reference to the InputSource object
* which points to the external entity
* being parsed.
*/
virtual void startInputSource(const InputSource& inputSource);
//@}
// -----------------------------------------------------------------------
// Implementation of the XMLDocumentHandler interface.
// -----------------------------------------------------------------------
/** @name Implementation of the XMLDocumentHandler interface. */
//@{
/** Handle document character events
*
* This method is used to report all the characters scanned by the
* parser. This IDOM implementation stores this data in the appropriate
* IDOM node, creating one if necessary.
*
* @param chars A const pointer to a Unicode string representing the
* character data.
* @param length The length of the Unicode string returned in 'chars'.
* @param cdataSection A flag indicating if the characters represent
* content from the CDATA section.
*/
virtual void docCharacters
(
const XMLCh* /*const*/ chars
, const unsigned int length
, const bool cdataSection
);
/** Handle a document comment event
*
* This method is used to report any comments scanned by the parser.
* A new comment node is created which stores this data.
*
* @param comment A const pointer to a null terminated Unicode
* string representing the comment text.
*/
virtual void docComment
(
const XMLCh* /*const*/ comment
);
/** Handle a document PI event
*
* This method is used to report any PI scanned by the parser. A new
* PI node is created and appended as a child of the current node in
* the tree.
*
* @param target A const pointer to a Unicode string representing the
* target of the PI declaration.
* @param data A const pointer to a Unicode string representing the
* data of the PI declaration. See the PI production rule
* in the XML specification for details.
*/
virtual void docPI
(
const XMLCh* /*const*/ target
, const XMLCh* /*const*/ data
);
/** Handle the end of document event
*
* This method is used to indicate the end of the current document.
*/
virtual void endDocument();
/** Handle and end of element event
*
* This method is used to indicate the end tag of an element. The
* IDOMParse pops the current element off the top of the element
* stack, and make it the new current element.
*
* @param elemDecl A const reference to the object containing element
* declaration information.
* @param urlId An id referring to the namespace prefix, if
* namespaces setting is switched on.
* @param isRoot A flag indicating whether this element was the
* root element.
*/
virtual void endElement
(
const XMLElementDecl& elemDecl
, const unsigned int urlId
, const bool isRoot
);
/** Handle and end of entity reference event
*
* This method is used to indicate that an end of an entity reference
* was just scanned.
*
* @param entDecl A const reference to the object containing the
* entity declaration information.
*/
virtual void endEntityReference
(
const XMLEntityDecl& entDecl
);
/** Handle an ignorable whitespace vent
*
* This method is used to report all the whitespace characters, which
* are determined to be 'ignorable'. This distinction between characters
* is only made, if validation is enabled.
*
* Any whitespace before content is ignored. If the current node is
* already of type IDOM_Node::TEXT_NODE, then these whitespaces are
* appended, otherwise a new Text node is created which stores this
* data. Essentially all contiguous ignorable characters are collected
* in one node.
*
* @param chars A const pointer to a Unicode string representing the
* ignorable whitespace character data.
* @param length The length of the Unicode string 'chars'.
* @param cdataSection A flag indicating if the characters represent
* content from the CDATA section.
*/
virtual void ignorableWhitespace
(
const XMLCh* /*const*/ chars
, const unsigned int length
, const bool cdataSection
);
/** Handle a document reset event
*
* This method allows the user installed Document Handler to 'reset'
* itself, freeing all the memory resources. The scanner calls this
* method before starting a new parse event.
*/
virtual void resetDocument();
/** Handle a start document event
*
* This method is used to report the start of the parsing process.
*/
virtual void startDocument();
/** Handle a start element event
*
* This method is used to report the start of an element. It is
* called at the end of the element, by which time all attributes
* specified are also parsed. A new IDOM Element node is created
* along with as many attribute nodes as required. This new element
* is added appended as a child of the current node in the tree, and
* then replaces it as the current node (if the isEmpty flag is false.)
*
* @param elemDecl A const reference to the object containing element
* declaration information.
* @param urlId An id referring to the namespace prefix, if
* namespaces setting is switched on.
* @param elemPrefix A const pointer to a Unicode string containing
* the namespace prefix for this element. Applicable
* only when namespace processing is enabled.
* @param attrList A const reference to the object containing the
* list of attributes just scanned for this element.
* @param attrCount A count of number of attributes in the list
* specified by the parameter 'attrList'.
* @param isEmpty A flag indicating whether this is an empty element
* or not. If empty, then no endElement() call will
* be made.
* @param isRoot A flag indicating whether this element was the
* root element.
* @see DocumentHandler#startElement
*/
virtual void startElement
(
const XMLElementDecl& elemDecl
, const unsigned int urlId
, const XMLCh* /*const*/ elemPrefix
, const RefVectorOf<XMLAttr>& attrList
, const unsigned int attrCount
, const bool isEmpty
, const bool isRoot
);
/** Handle a start entity reference event
*
* This method is used to indicate the start of an entity reference.
* If the expand entity reference flag is true, then a new
* IDOM Entity reference node is created.
*
* @param entDecl A const reference to the object containing the
* entity declaration information.
*/
virtual void startEntityReference
(
const XMLEntityDecl& entDecl
);
/** Handle an XMLDecl event
*
* This method is used to report the XML decl scanned by the parser.
* Refer to the XML specification to see the meaning of parameters.
*
* <b><font color="#FF0000">This method is a no-op for this IDOM
* implementation.</font></b>
*
* @param versionStr A const pointer to a Unicode string representing
* version string value.
* @param encodingStr A const pointer to a Unicode string representing
* the encoding string value.
* @param standaloneStr A const pointer to a Unicode string
* representing the standalone string value.
* @param actualEncodingStr A const pointer to a Unicode string
* representing the actual encoding string
* value.
*/
virtual void XMLDecl
(
const XMLCh* /*const*/ versionStr
, const XMLCh* /*const*/ encodingStr
, const XMLCh* /*const*/ standaloneStr
, const XMLCh* /*const*/ actualEncStr
);
//@}
/** @name Deprecated Methods */
//@{
/**
* This method returns the state of the parser's validation
* handling flag which controls whether validation checks
* are enforced or not.
*
* @return true, if the parser is currently configured to
* do validation, false otherwise.
*
* @see #setDoValidation
*/
bool getDoValidation() const;
/**
* This method allows users to enable or disable the parser's validation
* checks.
*
* <p>By default, the parser does not to any validation. The default
* value is false.</p>
*
* @param newState The value specifying whether the parser should
* do validity checks or not against the DTD in the
* input XML document.
*
* @see #getDoValidation
*/
void setDoValidation(const bool newState);
/**
* Deprecated doctypehandler interfaces
*/
virtual void attDef
(
const DTDElementDecl& elemDecl
, const DTDAttDef& attDef
, const bool ignoring
);
virtual void doctypeComment
(
const XMLCh* /*const*/ comment
);
virtual void doctypeDecl
(
const DTDElementDecl& elemDecl
, const XMLCh* /*const*/ publicId
, const XMLCh* /*const*/ systemId
, const bool hasIntSubset
);
virtual void doctypePI
(
const XMLCh* /*const*/ target
, const XMLCh* /*const*/ data
);
virtual void doctypeWhitespace
(
const XMLCh* /*const*/ chars
, const unsigned int length
);
virtual void elementDecl
(
const DTDElementDecl& decl
, const bool isIgnored
);
virtual void endAttList
(
const DTDElementDecl& elemDecl
);
virtual void endIntSubset();
virtual void endExtSubset();
virtual void entityDecl
(
const DTDEntityDecl& entityDecl
, const bool isPEDecl
, const bool isIgnored
);
virtual void resetDocType();
virtual void notationDecl
(
const XMLNotationDecl& notDecl
, const bool isIgnored
);
virtual void startAttList
(
const DTDElementDecl& elemDecl
);
virtual void startIntSubset();
virtual void startExtSubset();
virtual void TextDecl
(
const XMLCh* /*const*/ versionStr
, const XMLCh* /*const*/ encodingStr
);
//@}
// protected :
// // -----------------------------------------------------------------------
// // Protected getter methods
// // -----------------------------------------------------------------------
//
// /** @name Protected getter methods */
// //@{
// /** Get the current IDOM node
// *
// * This provides derived classes with access to the current node, i.e.
// * the node to which new nodes are being added.
// */
// IDOM_Node* getCurrentNode();
//
// //@}
//
//
// // -----------------------------------------------------------------------
// // Protected setter methods
// // -----------------------------------------------------------------------
//
// /** @name Protected setter methods */
// //@{
//
// /** Set the current IDOM node
// *
// * This method sets the current node maintained inside the parser to
// * the one specified.
// *
// * @param toSet The IDOM node which will be the current node.
// */
// void setCurrentNode(IDOM_Node* toSet);
//
// /** Set the document node
// *
// * This method sets the IDOM Document node to the one specified.
// *
// * @param toSet The new IDOM Document node for this XML document.
// */
// void setDocument(IDOM_Document* toSet);
// //@}
//
//
// private :
// // -----------------------------------------------------------------------
// // Private data members
// //
// // fCurrentNode
// // fCurrentParent
// // Used to track the current node during nested element events. Since
// // the tree must be built from a set of disjoint callbacks, we need
// // these to keep up with where we currently are.
// //
// // fDocument
// // The root document object, filled with the document contents.
// //
// // fEntityResolver
// // The installed SAX entity resolver, if any. Null if none.
// //
// // fErrorHandler
// // The installed SAX error handler, if any. Null if none.
// //
// // fCreateEntityReferenceNode
// // Indicates whether entity reference nodes should be created.
// //
// // fIncludeIgnorableWhitespace
// // Indicates whether ignorable whiltespace should be added to
// // the IDOM tree for validating parsers.
// //
// // fNodeStack
// // Used to track previous parent nodes during nested element events.
// //
// // fParseInProgress
// // Used to prevent multiple entrance to the parser while its doing
// // a parse.
// //
// // fScanner
// // The scanner used for this parser. This is created during the
// // constructor.
// //
// // fWithinElement
// // A flag to indicate that the parser is within at least one level
// // of element processing.
// //
// // fDocumentType
// // Used to store and update the documentType variable information
// // in fDocument
// //
// // -----------------------------------------------------------------------
// IDOM_Node* fCurrentParent;
// IDOM_Node* fCurrentNode;
// IDDocumentImpl* fDocument;
// EntityResolver* fEntityResolver;
// ErrorHandler* fErrorHandler;
// bool fCreateEntityReferenceNodes;
// bool fIncludeIgnorableWhitespace;
// ValueStackOf<IDOM_Node*>* fNodeStack;
// bool fParseInProgress;
// XMLScanner* fScanner;
// bool fWithinElement;
// IDDocumentTypeImpl* fDocumentType;
};
// ---------------------------------------------------------------------------
// IDOMParser: Handlers for the XMLEntityHandler interface
// ---------------------------------------------------------------------------
// inline void IDOMParser::endInputSource(const InputSource&)
// {
// // The IDOM entity resolver doesn't handle this
// }
//
// inline bool IDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
// {
// // The IDOM entity resolver doesn't handle this
// return false;
// }
//
// inline void IDOMParser::resetEntities()
// {
// // Nothing to do on this one
// }
//
// inline void IDOMParser::startInputSource(const InputSource&)
// {
// // The IDOM entity resolver doesn't handle this
// }
//
//
// // ---------------------------------------------------------------------------
// // IDOMParser: Getter methods
// // ---------------------------------------------------------------------------
// inline ErrorHandler* IDOMParser::getErrorHandler()
// {
// return fErrorHandler;
// }
//
// inline const ErrorHandler* IDOMParser::getErrorHandler() const
// {
// return fErrorHandler;
// }
//
// inline EntityResolver* IDOMParser::getEntityResolver()
// {
// return fEntityResolver;
// }
//
// inline const EntityResolver* IDOMParser::getEntityResolver() const
// {
// return fEntityResolver;
// }
//
// inline bool IDOMParser::getExpandEntityReferences() const
// {
// return fCreateEntityReferenceNodes;
// }
// inline bool IDOMParser::getCreateEntityReferenceNodes() const
// {
// return fCreateEntityReferenceNodes;
// }
//
// inline bool IDOMParser::getIncludeIgnorableWhitespace() const
// {
// return fIncludeIgnorableWhitespace;
// }
//
// inline const XMLScanner& IDOMParser::getScanner() const
// {
// return *fScanner;
// }
//
//
// // ---------------------------------------------------------------------------
// // IDOMParser: Setter methods
// // ---------------------------------------------------------------------------
// inline void IDOMParser::setExpandEntityReferences(const bool expand)
// {
// fCreateEntityReferenceNodes = expand;
// }
//
// inline void IDOMParser::setCreateEntityReferenceNodes(const bool create)
// {
// fCreateEntityReferenceNodes = create;
// }
//
// inline void IDOMParser::setIncludeIgnorableWhitespace(const bool include)
// {
// fIncludeIgnorableWhitespace = include;
// }
//
//
// // ---------------------------------------------------------------------------
// // IDOMParser: Protected getter methods
// // ---------------------------------------------------------------------------
// inline IDOM_Node* IDOMParser::getCurrentNode()
// {
// return fCurrentNode;
// }
//
//
// // ---------------------------------------------------------------------------
// // IDOMParser: Protected setter methods
// // ---------------------------------------------------------------------------
// inline void IDOMParser::setCurrentNode(IDOM_Node* toSet)
// {
// fCurrentNode = toSet;
// }
//
// inline void IDOMParser::setDocument(IDOM_Document* toSet)
// {
// fDocument = (IDDocumentImpl *)toSet;
// }
#endif
1.1 xml-xerces/perl/t/DOMException.t
Index: DOMException.t
===================================================================
# Before `make install' is performed this script should be runnable
# with `make test'. After `make install' it should work as `perl
# DOMException.t'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
BEGIN { $| = 1; print "1..7\n"; }
END {print "not ok 1\n" unless $loaded;}
use Carp;
use blib;
use XML::Xerces;
use Config;
use lib 't';
use TestUtils qw(result);
use vars qw($i $loaded $error $code);
use strict;
$loaded = 1;
$i = 1;
result($loaded);
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
# test that we get an DOM_DOMException trying to reuse a DocType
$error = 0;
my $handler = XML::Xerces::PerlExceptionHandler::getInstance();
$handler->setDOMExceptionHandler(sub{
my $exception = shift;
$code = $exception->{code};
$error = 1;
die();
});
my $impl = XML::Xerces::DOM_DOMImplementation::getImplementation();
my $dt = $impl->createDocumentType('Foo', '', 'Foo.dtd');
my $doc = $impl->createDocument('Foo', 'foo',$dt);
eval {
$impl->createDocument('Bar', 'bar',$dt);
};
result($@ &&
$error &&
$code == $XML::Xerces::DOM_DOMException::WRONG_DOCUMENT_ERR
);
# reset the error counter
$error = 0;
# Create a couple of identical test documents
my $document = q[<?xml version="1.0" encoding="utf-8"?>
<contributors>
<person Role="manager">
<name>Mike Pogue</name>
<email>mpogue@us.ibm.com</email>
</person>
<person Role="developer">
<name>Tom Watson</name>
<email>rtwatson@us.ibm.com</email>
</person>
<person Role="tech writer">
<name>Susan Hardenbrook</name>
<email>susanhar@us.ibm.com</email>
</person>
</contributors>];
my $DOM1 = new XML::Xerces::DOMParser;
my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler->new();
$DOM1->setErrorHandler($ERROR_HANDLER);
$DOM1->parse(XML::Xerces::MemBufInputSource->new($document, 'foo'));
my $DOM2 = new XML::Xerces::DOMParser;
$DOM2->setErrorHandler($ERROR_HANDLER);
$DOM2->parse(XML::Xerces::MemBufInputSource->new($document, 'foo'));
my $doc1 = $DOM1->getDocument();
my $doc2 = $DOM2->getDocument();
my $root1 = $doc1->getDocumentElement();
my @persons1 = $doc1->getElementsByTagName('person');
my @names1 = $doc1->getElementsByTagName('name');
my $root2 = $doc2->getDocumentElement();
my @persons2 = $doc2->getElementsByTagName('person');
my @names2 = $doc1->getElementsByTagName('name');
# Trying to append to a DOM_Document node gives a hierarchy error
eval {
$doc1->appendChild($root2);
};
result($@ &&
$error &&
$code == $XML::Xerces::DOM_DOMException::HIERARCHY_REQUEST_ERR);
# reset the error counter
$error = 0;
# Trying to append to a different DOM_Document gives a wrong doc error
eval {
$root1->appendChild($root2);
};
result($@ &&
$error &&
$code == $XML::Xerces::DOM_DOMException::WRONG_DOCUMENT_ERR);
# reset the error counter
$error = 0;
# Trying to insert to a different DOM_Document gives a wrong doc error
eval {
$persons1[0]->insertBefore($persons2[0],$persons1[0]);
};
result($@ &&
$error &&
$code == $XML::Xerces::DOM_DOMException::WRONG_DOCUMENT_ERR);
# reset the error counter
$error = 0;
# Trying to insert to a DOM_Document node gives a wrong doc error
eval {
$doc1->insertBefore($persons2[0],$root1);
};
result($@ &&
$error &&
$code == $XML::Xerces::DOM_DOMException::HIERARCHY_REQUEST_ERR);
# reset the error counter
$error = 0;
# Trying to insert before a node that is not a subnode of the calling node
# gives a not found error
eval {
$persons1[0]->insertBefore($persons1[1],$names1[2]);
};
result($@ &&
$error &&
$code == $XML::Xerces::DOM_DOMException::NOT_FOUND_ERR);
# print STDERR "Code = $code\n";
# print STDERR "Eval = $@\n";
# print STDERR "Error = $error\n";
# reset the error counter
$error = 0;
1.1 xml-xerces/perl/t/IDOMParser.t
Index: IDOMParser.t
===================================================================
# Before `make install' is performed this script should be runnable
# with `make test'. After `make install' it should work as `perl
# IDOMParser.t'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
BEGIN { $| = 1; print "1..2\n"; }
END {print "not ok 1\n" unless $loaded;}
use Carp;
use blib;
use XML::Xerces;
use lib 't';
use TestUtils qw(result $PERSONAL $DOM);
use vars qw($i $loaded);
use strict;
$loaded = 1;
$i = 1;
result($loaded);
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
my $document = q[<?xml version="1.0" encoding="utf-8"?>
<contributors>
<person Role="manager">
<name>Mike Pogue</name>
<email>mpogue@us.ibm.com</email>
</person>
<person Role="developer">
<name>Tom Watson</name>
<email>rtwatson@us.ibm.com</email>
</person>
<person Role="tech writer">
<name>Susan Hardenbrook</name>
<email>susanhar@us.ibm.com</email>
</person>
</contributors>];
# since IDOM can't create XML Decl nodes
$DOM->setToCreateXMLDeclTypeNode(0);
$DOM->parse(XML::Xerces::MemBufInputSource->new($PERSONAL, 'foo'));
$PERSONAL = $DOM->getDocument->serialize;
my $IDOM = XML::Xerces::IDOMParser->new();
$IDOM->parse(XML::Xerces::MemBufInputSource->new($PERSONAL, 'foo'));
#$IDOM->parse(XML::Xerces::MemBufInputSource->new($document, 'foo'));
my $serialize = $IDOM->getDocument->serialize;
result($serialize eq $PERSONAL);
1.1 xml-xerces/perl/t/IDOM_DOMException.t
Index: IDOM_DOMException.t
===================================================================
# Before `make install' is performed this script should be runnable
# with `make test'. After `make install' it should work as `perl
# IDOM_DOMException.t'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
BEGIN { $| = 1; print "1..7\n"; }
END {print "not ok 1\n" unless $loaded;}
use Carp;
use blib;
use XML::Xerces;
use Config;
use lib 't';
use TestUtils qw(result);
use vars qw($i $loaded $error $code);
use strict;
$loaded = 1;
$i = 1;
result($loaded);
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
# test that we get an IDOM_DOMException trying to reuse a DocType
$error = 0;
my $handler = XML::Xerces::PerlExceptionHandler::getInstance();
$handler->setDOMExceptionHandler(sub{
my $exception = shift;
$code = $exception->{code};
$error = 1;
die();
});
# my $impl = XML::Xerces::IDOM_DOMImplementation::getImplementation();
# my $dt = $impl->createDocumentType('Foo', '', 'Foo.dtd');
# my $doc = $impl->createDocument('Foo', 'foo',$dt);
# eval {
# $impl->createDocument('Bar', 'bar',$dt);
# };
# result($@ &&
# $error &&
# $code == $XML::Xerces::IDOM_DOMException::WRONG_DOCUMENT_ERR
# );
# reset the error counter
$error = 0;
# Create a couple of identical test documents
my $document = q[<?xml version="1.0" encoding="utf-8"?>
<contributors>
<person Role="manager">
<name>Mike Pogue</name>
<email>mpogue@us.ibm.com</email>
</person>
<person Role="developer">
<name>Tom Watson</name>
<email>rtwatson@us.ibm.com</email>
</person>
<person Role="tech writer">
<name>Susan Hardenbrook</name>
<email>susanhar@us.ibm.com</email>
</person>
</contributors>];
my $DOM1 = new XML::Xerces::IDOMParser;
my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler->new();
$DOM1->setErrorHandler($ERROR_HANDLER);
$DOM1->parse(XML::Xerces::MemBufInputSource->new($document, 'foo'));
my $DOM2 = new XML::Xerces::IDOMParser;
$DOM2->setErrorHandler($ERROR_HANDLER);
$DOM2->parse(XML::Xerces::MemBufInputSource->new($document, 'foo'));
my $doc1 = $DOM1->getDocument();
my $doc2 = $DOM2->getDocument();
my $root1 = $doc1->getDocumentElement();
my @persons1 = $doc1->getElementsByTagName('person');
my @names1 = $doc1->getElementsByTagName('name');
my $root2 = $doc2->getDocumentElement();
my @persons2 = $doc2->getElementsByTagName('person');
my @names2 = $doc1->getElementsByTagName('name');
# Trying to append to a IDOM_Document node gives a hierarchy error
eval {
$doc1->appendChild($root2);
};
result($@ &&
$error &&
$code == $XML::Xerces::IDOM_DOMException::HIERARCHY_REQUEST_ERR);
# reset the error counter
$error = 0;
# Trying to append to a different IDOM_Document gives a wrong doc error
eval {
$root1->appendChild($root2);
};
result($@ &&
$error &&
$code == $XML::Xerces::IDOM_DOMException::WRONG_DOCUMENT_ERR);
# reset the error counter
$error = 0;
# Trying to insert to a different IDOM_Document gives a wrong doc error
eval {
$persons1[0]->insertBefore($persons2[0],$persons1[0]);
};
result($@ &&
$error &&
$code == $XML::Xerces::IDOM_DOMException::WRONG_DOCUMENT_ERR);
# reset the error counter
$error = 0;
# Trying to insert to a IDOM_Document node gives a wrong doc error
eval {
$doc1->insertBefore($persons2[0],$root1);
};
result($@ &&
$error &&
$code == $XML::Xerces::IDOM_DOMException::HIERARCHY_REQUEST_ERR);
# reset the error counter
$error = 0;
# Trying to insert before a node that is not a subnode of the calling node
# gives a not found error
eval {
$persons1[0]->insertBefore($persons1[1],$names1[2]);
};
result($@ &&
$error &&
$code == $XML::Xerces::IDOM_DOMException::NOT_FOUND_ERR);
# print STDERR "Code = $code\n";
# print STDERR "Eval = $@\n";
# print STDERR "Error = $error\n";
# reset the error counter
$error = 0;
1.1 xml-xerces/perl/t/SAXException.t
Index: SAXException.t
===================================================================
# Before `make install' is performed this script should be runnable
# with `make test'. After `make install' it should work as `perl
# DOMException.t'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
BEGIN { $| = 1; print "1..5\n"; }
END {print "not ok 1\n" unless $loaded;}
use Carp;
# use blib;
use XML::Xerces;
use Config;
use lib 't';
use TestUtils qw(result);
use vars qw($i $loaded $error $messageNS $messageNR);
use strict;
$loaded = 1;
$i = 1;
result($loaded);
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
# test that we get an DOM_DOMException trying to reuse a DocType
$error = 0;
my $handler = XML::Xerces::PerlExceptionHandler::getInstance();
$handler->setSAXNotRecognizedExceptionHandler(sub{
my $exception = shift;
$messageNR = $exception->getMessage();
$error = 1;
die();
});
$handler->setSAXNotSupportedExceptionHandler(sub{
my $exception = shift;
$messageNS = $exception->getMessage();
$error = 1;
die();
});
my $parser = XML::Xerces::XMLReaderFactory::createXMLReader();
eval {
$parser->setFeature("http://xml.org/sax/features/foospaces", 0);
};
result($@ && $error);
# reset the error counter
$error = 0;
$messageNS = '';
$messageNR = '';
eval {
$parser->getFeature('http://xml.org/sax/features/foospaces');
};
result($@ && $error);
# reset the error counter
$error = 0;
eval {
$parser->getProperty('http://xml.org/sax/features/foospaces');
};
result($@ && $error);
# reset the error counter
$error = 0;
eval {
$parser->setProperty('http://xml.org/sax/features/foospaces', $parser);
};
result($@ && $error);
# print STDERR "MessageNS = $messageNS\n";
# print STDERR "MessageNR = $messageNR\n";
# print STDERR "Error = $error\n";
# print STDERR "Eval = $@\n";
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org