trait ClarkElemApi extends ElemApi with IsNavigableApi
The minimal element query API corresponding to James Clark's "labelled element tree" abstraction, which is implemented as yaidom "resolved" elements.
If a yaidom element implementation (whether in yaidom itself or a "yaidom extension")
does not mix in the ClarkElemApi
trait, it is probably not to be considered "XML".
Indeed, in yaidom only the ElemBuilder
class does not mix in this trait, and indeed
it is not "XML" (lacking any knowledge about expanded names etc.), only a builder of "XML".
Hence this trait is very important in yaidom, as the "minimal XML element query API".
Generic code abstracting over yaidom element implementations should either use
this trait, or sub-trait ScopedElemApi
, depending on the abstraction level.
- Alphabetic
- By Inheritance
- ClarkElemApi
- IsNavigableApi
- ElemApi
- AnyElemApi
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- abstract type ThisElem <: ClarkElemApi
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.
- Definition Classes
- ClarkElemApi → IsNavigableApi → ElemApi → AnyElemApi
Abstract Value Members
- abstract def \(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
Shorthand for
filterChildElems(p)
.Shorthand for
filterChildElems(p)
. Use this shorthand only if the predicate is a short expression.- Definition Classes
- ElemApi
- abstract def \@(expandedName: EName): Option[String]
Shorthand for
attributeOption(expandedName)
. - abstract def \\(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
Shorthand for
filterElemsOrSelf(p)
.Shorthand for
filterElemsOrSelf(p)
. Use this shorthand only if the predicate is a short expression.- Definition Classes
- ElemApi
- abstract def \\!(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
Shorthand for
findTopmostElemsOrSelf(p)
.Shorthand for
findTopmostElemsOrSelf(p)
. Use this shorthand only if the predicate is a short expression.- Definition Classes
- ElemApi
- abstract def attribute(expandedName: EName): String
Returns the value of the attribute with the given expanded name, and throws an exception otherwise.
- abstract def attributeOption(expandedName: EName): Option[String]
Returns the value of the attribute with the given expanded name, if any, wrapped in an
Option
. - abstract def filterChildElems(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
Returns the child elements obeying the given predicate.
Returns the child elements obeying the given predicate. This method could be defined as:
def filterChildElems(p: ThisElem => Boolean): immutable.IndexedSeq[ThisElem] = this.findAllChildElems.filter(p)
- Definition Classes
- ElemApi
- abstract def filterElems(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
Returns the descendant elements obeying the given predicate, in document order.
Returns the descendant elements obeying the given predicate, in document order. This method could be defined as:
this.findAllChildElems flatMap (_.filterElemsOrSelf(p))
- Definition Classes
- ElemApi
- abstract def filterElemsOrSelf(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
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
.- Definition Classes
- ElemApi
- abstract def findAllChildElems: IndexedSeq[ThisElem]
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.
- Definition Classes
- ElemApi
- abstract def findAllChildElemsWithPathEntries: IndexedSeq[(ThisElem, Entry)]
Returns all child elements paired with their path entries.
Returns all child elements paired with their path entries.
- Definition Classes
- IsNavigableApi
- abstract def findAllElems: IndexedSeq[ThisElem]
Returns all descendant elements (not including this element), in document order.
Returns all descendant elements (not including this element), in document order. This method could be defined as
filterElems { e => true }
. Equivalent tofindAllElemsOrSelf.drop(1)
.- Definition Classes
- ElemApi
- abstract def findAllElemsOrSelf: IndexedSeq[ThisElem]
Returns this element followed by all descendant elements (that is, the descendant-or-self elements), in document order.
Returns this element followed by all descendant elements (that is, the descendant-or-self elements), in document order. This method could be defined as
filterElemsOrSelf { e => true }
.- Definition Classes
- ElemApi
- abstract def findAttributeByLocalName(localName: String): Option[String]
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. - abstract def findChildElem(p: (ThisElem) => Boolean): Option[ThisElem]
Returns the first found child element obeying the given predicate, if any, wrapped in an
Option
.Returns the first found child element obeying the given predicate, if any, wrapped in an
Option
. This method could be defined asfilterChildElems(p).headOption
.- Definition Classes
- ElemApi
- abstract def findChildElemByPathEntry(entry: Entry): Option[ThisElem]
Finds the child element with the given
Path.Entry
(where this element is the root), if any, wrapped in anOption
.Finds the child element with the given
Path.Entry
(where this element is the root), if any, wrapped in anOption
.Typically this method must be very efficient, in order for methods like findElemOrSelfByPath to be efficient.
- Definition Classes
- IsNavigableApi
- abstract def findElem(p: (ThisElem) => Boolean): Option[ThisElem]
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an
Option
.Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an
Option
. This method could be defined asfilterElems(p).headOption
.- Definition Classes
- ElemApi
- abstract def findElemOrSelf(p: (ThisElem) => Boolean): Option[ThisElem]
Returns the first found (topmost) descendant-or-self 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
. This method could be defined asfilterElemsOrSelf(p).headOption
.- Definition Classes
- ElemApi
- abstract def findElemOrSelfByPath(path: Path): Option[ThisElem]
Finds the element with the given
Path
(where this element is the root), if any, wrapped in anOption
.Finds the element with the given
Path
(where this element is the root), if any, wrapped in anOption
.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))
- Definition Classes
- IsNavigableApi
- abstract def findReverseAncestryOrSelfByPath(path: Path): Option[IndexedSeq[ThisElem]]
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.
- Definition Classes
- IsNavigableApi
- abstract def findTopmostElems(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate. This method could be defined as:
this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p))
- Definition Classes
- ElemApi
- abstract def findTopmostElemsOrSelf(p: (ThisElem) => Boolean): IndexedSeq[ThisElem]
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)))
- Definition Classes
- ElemApi
- abstract def getChildElem(p: (ThisElem) => Boolean): ThisElem
Returns the single child element obeying the given predicate, and throws an exception otherwise.
Returns the single child element obeying the given predicate, and throws an exception otherwise. This method could be defined as
findChildElem(p).get
.- Definition Classes
- ElemApi
- abstract def getChildElemByPathEntry(entry: Entry): ThisElem
Returns (the equivalent of)
findChildElemByPathEntry(entry).get
Returns (the equivalent of)
findChildElemByPathEntry(entry).get
- Definition Classes
- IsNavigableApi
- abstract def getElemOrSelfByPath(path: Path): ThisElem
Returns (the equivalent of)
findElemOrSelfByPath(path).get
Returns (the equivalent of)
findElemOrSelfByPath(path).get
- Definition Classes
- IsNavigableApi
- abstract def getReverseAncestryOrSelfByPath(path: Path): IndexedSeq[ThisElem]
Returns (the equivalent of)
findReverseAncestryOrSelfByPath(path).get
Returns (the equivalent of)
findReverseAncestryOrSelfByPath(path).get
- Definition Classes
- IsNavigableApi
- abstract def localName: String
The local name, that is, the local part of the EName
- abstract def normalizedText: String
Returns
XmlStringUtils.normalizeString(text)
. - abstract def resolvedAttributes: Iterable[(EName, String)]
The resolved attributes of the element as mapping from ENames to values
- abstract def resolvedName: EName
The EName of the element
- abstract def text: String
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.
- abstract def thisElem: ThisElem
This element itself.
This element itself.
- Definition Classes
- AnyElemApi
- abstract def trimmedText: String
Returns
text.trim
.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()