abstract class %DeepSee.Query.node
extends %RegisteredObject, %XML.Adaptor
Base class for DeepSee RunTime objects.
parameter NAMESPACE = "http://www.intersystems.com/deepsee/query";
NAMESPACE specifies the XML namespace to be used when projecting the
class to XML. if NAMESPACE - "", the default namespace is used for the XML schema
is used as the namespace for his class.
parameter XMLIGNOREINVALIDATTRIBUTE = 0;
The XMLIGNOREINVALIDATTRIBUTE parameter allows the programmer to control handling of unexpected
attributes in the XML input.
By default (XMLIGNOREINVALIDATTRIBUTE = 1), will ignore unexpected attributes.
If XMLIGNOREINVALIDTAG is set = 0, then an unexpected attribute will be treated as an error.
parameter XMLIGNORENULL = 1;
XMLIGNORENULL allows the programmer to override the default XML handling
of empty strings for properties of type %String. By default (XMLIGNORENULL = 0),
empty strings in the XML input are stored as $c(0) and $c(0) is written to XML
as an empty tag. A missing tag in the XML input is always stored as "" and
"" is always output to XML as no tag.
If XMLIGNORENULL is set = 1, then both missing tags in the XML and empty
strings are input as "", and both "" and $c(0) are output as empty tags
(i.e. <tag></tag>).
If XMLIGNORENULL is set = "inputonly", then both missing tags in the XML and empty
strings are input as "". Output of "" and $c(0) are for XMLIGNORENULL = 0:
$c(0) is output as an empty tag (i.e. <tag></tag>) and "" is output as no tag.
If XMLIGNORENULL = "runtime" (runtime is not case sensitive), then the behavior
of XMLIGNORENULL is determined by the format parameter of XMLExport, XMLImport
and %XML.Reader.OpenFile. The default behavior for XMLIGNORENULL="runtime is
the same as XMLIGNORENULL=0. Adding "ignorenull" to the format argument changes
the behavior to that of XMLIGNORENULL=1. "ignorenull" shoud be separated by a comma
from literal/encoded part of the format. Example values for format are "", ",ignorenull",
"literal,ignorenull" and "encoded,ignorenull".
Note that "inputonly" is equivalent to using ,ignorenull for XMLExport and not for %XML.Reader.
relationship parent
as %DeepSee.Query.group(XMLPROJECTION="none") [ Inverse = children,Cardinality = one ];
Parent of this node.
The type of the parent depends on context.
property value
as %DeepSee.Datatype.string(MAXLEN=32000,XMLPROJECTION="attribute");
Value of this node.
This is used by nodes that provide values.
method %GetMemberProvider()
as %DeepSee.Query.member
Return the member provider object associated with this node, if any.
method %GetType()
as %String
Return the type of this node.
The type can be one of the $$$dst macros.
This is implemented by subclasses.
method %GetValue()
as %String
Return the current value of this node.
This is called when a literal value is needed during query processing.
This is implemented by subclasses.
method %PreProcess(pIsSlicer As %Boolean = 0)
as %Status
Execute the pre-processing logic for this node.
pIsSlicer is true if this node is part of the slicer
(WHERE) clause.
method %PrintNode(pLevel As %Integer = 0)
Diagnostic. Print value of this node to the console.
method %ToString(Output pSC As %Status)
as %String
Convert this node to its text representation.