eu.cdevreeze.yaidom.indexed.IndexedScopedNode
The element type itself.
The element type itself. It must be restricted to a sub-type of the query API trait in question.
Concrete element classes will restrict this type to that element class itself.
The node type, that is a super-type of the element type, but also of corresponding text node types etc.
The node type, that is a super-type of the element type, but also of corresponding text node types etc.
Shorthand for filterChildElems(p)
.
Shorthand for attributeOption(expandedName)
.
Shorthand for attributeOption(expandedName)
.
Shorthand for filterElemsOrSelf(p)
.
Shorthand for findTopmostElemsOrSelf(p)
.
Returns ancestorsOrSelf.drop(1)
Returns ancestorsOrSelf.drop(1)
Returns all ancestor elements or self
Returns all ancestor elements or self
Returns the value of the attribute with the given expanded name, and throws an exception otherwise.
Returns the value of the attribute with the given expanded name, and throws an exception otherwise.
Returns the QName value of the attribute with the given expanded name, and throws an exception otherwise
Returns the QName value of the attribute with the given expanded name, and throws an exception otherwise
Returns the QName value of the attribute with the given expanded name, if any, wrapped in an Option
.
Returns the QName value of the attribute with the given expanded name, if any, wrapped in an Option
.
If the attribute exists, but its value is not a QName, an exception is thrown.
Returns the resolved QName value (as EName) of the attribute with the given expanded name, and throws an exception otherwise
Returns the resolved QName value (as EName) of the attribute with the given expanded name, and throws an exception otherwise
Returns the resolved QName value (as EName) of the attribute with the given expanded name, if any, wrapped in an Option
.
Returns the resolved QName value (as EName) of the attribute with the given expanded name, if any, wrapped in an Option
.
None is returned if the attribute does not exist. If the QName value cannot be resolved given the scope of the element,
an exception is thrown.
Returns the value of the attribute with the given expanded name, if any, wrapped in an Option
.
Returns the value of the attribute with the given expanded name, if any, wrapped in an Option
.
The attributes of the element as mapping from QNames to values
The attributes of the element as mapping from QNames to values
Returns the base URI, falling back to the empty URI if absent.
Returns the base URI, falling back to the empty URI if absent.
Returns the optional base URI.
Returns the optional base URI. This method is fast, due to the use of the optional base URI of the parent element, if any.
Returns all child nodes, of any kind of node (element node, text node etc.).
Returns all child nodes, of any kind of node (element node, text node etc.).
Returns the document URI, falling back to the empty URI if absent.
Returns the document URI, falling back to the empty URI if absent.
The optional document URI of the containing document, if any
The optional document URI of the containing document, if any
Returns the child elements obeying the given predicate.
Returns the descendant elements obeying the given predicate, in document order.
Returns the descendant-or-self elements obeying the given predicate, in document order.
Returns the descendant-or-self elements obeying the given predicate, in document order. This method could be defined as:
def filterElemsOrSelf(p: ThisElem => Boolean): immutable.IndexedSeq[ThisElem] = Vector(this).filter(p) ++ (this.findAllChildElems flatMap (_.filterElemsOrSelf(p)))
It can be proven that the result is equivalent to findAllElemsOrSelf filter p
.
Core method that returns all child elements, in the correct order.
Core method that returns all child elements, in the correct order. Other operations can be defined in terms of this one.
Returns all child elements paired with their path entries.
Returns all child elements paired with their path entries.
This method is final, so more efficient implementations for sub-types are not supported. This implementation is only efficient if finding all child elements as well as computing their resolved names is efficient. That is not the case for DOM wrappers or Scala XML Elem wrappers (due to their expensive Scope computations). On the other hand, those wrapper element implementations are convenient, but not intended for heavy use in production. Hence, this method should typically be fast enough.
Returns all descendant elements (not including this element), in document order.
Returns this element followed by all descendant elements (that is, the descendant-or-self elements), in document order.
Returns the first found ancestor element obeying the given predicate, if any, wrapped in an Option
Returns the first found ancestor element obeying the given predicate, if any, wrapped in an Option
Returns the first found ancestor-or-self element obeying the given predicate, if any, wrapped in an Option
Returns the first found ancestor-or-self element obeying the given predicate, if any, wrapped in an Option
Returns the first found attribute value of an attribute with the given local name, if any, wrapped in an Option
.
Returns the first found attribute value of an attribute with the given local name, if any, wrapped in an Option
.
Because of differing namespaces, it is possible that more than one such attribute exists, although this is not often the case.
Returns the first found child element obeying the given predicate, if any, wrapped in an Option
.
Finds the child element with the given Path.Entry
(where this element is the root), if any, wrapped in an Option
.
Finds the child element with the given Path.Entry
(where this element is the root), if any, wrapped in an Option
.
This method is final, so more efficient implementations for sub-types are not supported. This implementation is only efficient if finding all child elements as well as computing their resolved names is efficient. That is not the case for DOM wrappers or Scala XML Elem wrappers (due to their expensive Scope computations). On the other hand, those wrapper element implementations are convenient, but not intended for heavy use in production. Hence, this method should typically be fast enough.
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found (topmost) descendant-or-self element obeying the given predicate, if any, wrapped in an Option
.
Finds the element with the given Path
(where this element is the root), if any, wrapped in an Option
.
Finds the element with the given Path
(where this element is the root), if any, wrapped in an Option
.
That is, returns:
findReverseAncestryOrSelfByPath(path).map(_.last)
Note that for each non-empty Path, we have:
findElemOrSelfByPath(path) == findChildElemByPathEntry(path.firstEntry). flatMap(_.findElemOrSelfByPath(path.withoutFirstEntry))
Finds the reversed ancestry-or-self of the element with the given Path
(where this element is the root),
wrapped in an Option.
Finds the reversed ancestry-or-self of the element with the given Path
(where this element is the root),
wrapped in an Option. None is returned if no element can be found at the given Path.
Hence, the resulting element collection, if any, starts with this element and ends with the element at the given Path, relative to this element.
This method comes in handy for (efficiently) computing base URIs, where the (reverse) ancestry-or-self is needed as input.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate.
Returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate.
Returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate. This method could be defined as:
def findTopmostElemsOrSelf(p: ThisElem => Boolean): immutable.IndexedSeq[ThisElem] = if (p(this)) Vector(this) else (this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p)))
Returns the single child element obeying the given predicate, and throws an exception otherwise.
Returns (the equivalent of) findChildElemByPathEntry(entry).get
Returns (the equivalent of) findChildElemByPathEntry(entry).get
Returns (the equivalent of) findElemOrSelfByPath(path).get
Returns (the equivalent of) findElemOrSelfByPath(path).get
Returns (the equivalent of) findReverseAncestryOrSelfByPath(path).get
Returns (the equivalent of) findReverseAncestryOrSelfByPath(path).get
The local name, that is, the local part of the EName
The local name, that is, the local part of the EName
Returns the namespaces declared in this element.
Returns the namespaces declared in this element.
If the original parsed XML document contained duplicate namespace declarations (i.e. namespace declarations that are the same
as some namespace declarations in their context), these duplicate namespace declarations were lost during parsing of the
XML into an Elem
tree. They therefore do not occur in the namespace declarations returned by this method.
Returns XmlStringUtils.normalizeString(text)
.
Returns XmlStringUtils.normalizeString(text)
.
Returns the equivalent parentOption.get
, throwing an exception if this is the root element
Returns the equivalent parentOption.get
, throwing an exception if this is the root element
Returns the optional parent element base URI, computed from the document URI, if any, and the XML base attributes of the ancestors, if any.
Returns the optional parent element base URI, computed from the document URI, if any, and the XML base attributes of the ancestors, if any.
Returns the parent element, if any, wrapped in an Option
Returns the parent element, if any, wrapped in an Option
The path of this element, relative to the root element
The path of this element, relative to the root element
The QName of the element
The QName of the element
The resolved attributes of the element as mapping from ENames to values
The resolved attributes of the element as mapping from ENames to values
The EName of the element
The EName of the element
Returns the reversed ancestor elements.
Returns the reversed ancestor elements. That is, returns:
reverseAncestryOrSelf.init
Returns the ENames of the ancestry reversed, starting with the root element and ending with the parent of this element, if any.
Returns the ENames of the ancestry reversed, starting with the root element and ending with the parent of this element, if any.
That is, returns:
reverseAncestryOrSelfENames.dropRight(1)
Returns the reversed ancestor-or-self elements.
Returns the reversed ancestor-or-self elements. That is, returns:
rootElem.findReverseAncestryOrSelfByPath(path).get
Returns the ENames of the ancestry-or-self reversed, starting with the root element and ending with this element.
Returns the ENames of the ancestry-or-self reversed, starting with the root element and ending with this element.
That is, returns:
rootElem.resolvedName +: path.entries.map(_.elementName)
This is equal to:
reverseAncestryOrSelf.map(_.resolvedName)
The root element
The root element
The Scope stored with the element
The Scope stored with the element
Returns the concatenation of the text values of (the implicit) text children, including whitespace and CData.
Returns the concatenation of the text values of (the implicit) text children, including whitespace and CData. Non-text children are ignored. If there are no text children, the empty string is returned.
Therefore, element children are ignored and do not contribute to the resulting text string.
Returns QName(text.trim)
Returns QName(text.trim)
Returns the equivalent of scope.resolveQNameOption(textAsQName).get
Returns the equivalent of scope.resolveQNameOption(textAsQName).get
This element itself.
This element itself.
Returns text.trim
.
Returns text.trim
.
Indexed Scoped element. Like
IndexedClarkElem
but instead of being and indexing aClarkElemApi
, it is and indexes aScopedElemApi
, and is even aBackingElemApi
. Other than that, see the documentation forIndexedClarkElem
.The optional parent base URI is stored for very fast (optional) base URI computation. This is helpful in an XBRL context, where URI resolution against a base URI is typically a very frequent operation.