# Node.hpp

Go to the documentation of this file.

    00001 /*
    00002  * Copyright (c) 2001-2006
    00003  *     DecisionSoft Limited. All rights reserved.
    00004  * Copyright (c) 2004-2006
    00005  *     Progress Software Corporation. All rights reserved.
    00006  * Copyright (c) 2004-2006
    00007  *     Oracle. All rights reserved.
    00008  *
    00009  * See the file LICENSE for redistribution information.
    00010  *
    00011  * $Id: Node.hpp,v 1.12 2006/11/01 16:37:14 jpcs Exp $
    00012  */
    00013
    00014 #ifndef _XQILLANODE_HPP
    00015 #define _XQILLANODE_HPP
    00016
    00017 #include <xqilla/items/ATQNameOrDerived.hpp>
    00018 #include <xqilla/items/ATBooleanOrDerived.hpp>
    00019 #include <xqilla/ast/XQStep.hpp>
    00020
    00021 class DynamicContext;
    00022 class XPath2MemoryManager;
    00023 class Sequence;
    00024 class Result;
    00025 class NodeTest;
    00026
    00027 XERCES_CPP_NAMESPACE_BEGIN
    00028 class DOMNode;
    00029 XERCES_CPP_NAMESPACE_END
    00030
    00031
    00032 class XQILLA_API Node : public Item
    00033 {
    00034 public:
    00035   typedef RefCountPointer<const Node> Ptr;
    00036
    00044   static const XMLCh gXerces[];
    00045
    00047   virtual bool isNode() const = 0;
    00048
    00050   virtual bool isAtomicValue() const = 0;
    00051
    00053   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    00054
    00056   virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const = 0;
    00057
    00060   virtual Sequence dmBaseURI(const DynamicContext* context) const = 0;
    00061
    00063   virtual const XMLCh* dmNodeKind() const = 0;
    00064
    00066   virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const = 0;
    00067
    00069   virtual const XMLCh* dmStringValue(const DynamicContext* context) const = 0;
    00070
    00074   virtual Sequence dmTypedValue(DynamicContext* context) const = 0;
    00075
    00078   virtual Sequence dmDocumentURI(const DynamicContext* context) const = 0;
    00079
    00081   virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const = 0;
    00082
    00084   virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const = 0;
    00085
    00088   virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const = 0;
    00089
    00091   virtual bool equals(const Node::Ptr &other) const = 0;
    00092
    00095   virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const = 0;
    00096
    00098   virtual Node::Ptr dmParent(const DynamicContext* context) const = 0;
    00099
    00101   virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const = 0;
    00102
    00104   virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const = 0;
    00105
    00107   virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const = 0;
    00108
    00114   virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const = 0;
    00115
    00117   virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const = 0;
    00118
    00120   virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const = 0;
    00121
    00122   /* Get the namespace URI for the DOM type */
    00123   virtual const XMLCh* getTypeURI() const = 0;
    00124
    00125   /* Get the name of the DOM type  (ie "integer" for xs:integer) */
    00126   virtual const XMLCh* getTypeName() const = 0;
    00127
    00128   static const XMLCh document_string[];
    00129   static const XMLCh element_string[];
    00130   static const XMLCh attribute_string[];
    00131   static const XMLCh text_string[];
    00132   static const XMLCh processing_instruction_string[];
    00133   static const XMLCh comment_string[];
    00134   static const XMLCh namespace_string[];
    00135   static const XMLCh cdata_string[];
    00136 };
    00137 #endif