package xpath
- Alphabetic
- Public
- All
Type Members
-
class
Ancestors extends Iterable[xml.XmlPath]
Returns the ancestors / parents of the path
-
trait
AttributeAxis extends Axis
The * and @ must be swapped otherwise its an annotation
-
case class
AttributePath(attribute: Attribute, parent: xml.XmlPath) extends Product with Serializable
Simple container for keeping relationship between the parent and attribute
- case class AttributePathComparisoms(path: AttributePath) extends Product with Serializable
-
case class
AttributePaths[PT <: Iterable[xml.XmlPath]](attributes: Iterable[AttributePath], path: XPathInfo, cbf: CanBuildFrom[PT, xml.XmlPath, PT])(implicit helper: BuilderHelper[xml.XmlPath, PT]) extends Product with Serializable
Attributes that have been selected
-
trait
Axis extends AnyRef
Base trait for XPath Axis, also provides common functionality
-
class
DIF extends AnyRef
Dummy implicit filler for easing interface issues
-
class
DirectXPath[PT <: Iterable[xml.XmlPath]] extends XPath[PT]
Pos and filter for a direct access does not flatmap.
Pos and filter for a direct access does not flatmap. The next / breaks the chain
-
trait
DocumentSplitters extends Axis
Following and preceding split the document in two
- trait ElementStep extends Axis
-
class
Following extends Iterable[xml.XmlPath]
Iterates over paths using the document order as per the following_:: axis.
- trait FunctionImplicits extends TextImplicits with NamesImplicits
-
trait
Functions extends NameFunctions with TextFunctions
Collects all type class based xpath functions, exposed via Functions in package
Collects all type class based xpath functions, exposed via Functions in package
Also adds aliases for the common functions
-
trait
NameFunctions extends AnyRef
Functions providing access to QNames
-
trait
Names[T] extends AnyRef
Type class representing Xml objects which provide qnames.
Type class representing Xml objects which provide qnames. Most of the functions allow for implicit scope to ease use in xpaths.
-
trait
NamesImplicits extends AnyRef
Name type classes
-
trait
OtherNodeTypes extends Axis
Little depature from standard, rather than duplicate all of the \ and \\ nodes, just a simple \\*() comment() will do
Little depature from standard, rather than duplicate all of the \ and \\ nodes, just a simple \\*() comment() will do
NOTE these have a large performance hit as the must sort and filter the results in order to get doc order. Better to use specific nodes avoiding \\ etc, then use the s for simple functions, sutext etc for simple useful. Additionally using the non simple versions incurs the cost of adding adjacent text node processing as per standard datamodel (all adjacent text nodes are joined and any resulting nodes that are "the zero-length string" are removed).
TODO xpath adjacent text node handling
-
class
Preceding extends Iterable[xml.XmlPath]
Iterates over paths using reverse document order and, as per the preceding_:: axis, skips all ancestors.
-
trait
SiblingsAxis extends Axis
Unlike XPath spec no reverse axis are directly provided by the dsl
- trait TextFunctions extends AnyRef
- trait TextImplicits extends AnyRef
-
trait
TextValue[T] extends AnyRef
Type class for text values
-
class
XPath[PT <: Iterable[xml.XmlPath]] extends ElementStep with OtherNodeTypes with AttributeAxis with SiblingsAxis with DocumentSplitters
In contrast to the specs reverse axis are not supported.
In contrast to the specs reverse axis are not supported. This puts an extra effort on the user for translating, but I don't agree with the design anyway. It adds both ambiguity for an embedded dsl:
//a:ShouldRedeclare/../text()[5]/preceding-sibling::text()[1]
is in reverse order (above is previousSibling in Path), whereas
(//a:ShouldRedeclare/../text()[5]/preceding-sibling::text())[1]
is in doc order (the first text child of the parent). Such an arbritary decision does nothing but irritate. A simpler design as found in this implementation is that the user can simply use full scala data functions to reverse as needed.
(Temptation is to provide the base type as SeqLike instead of Iterable as it should be in a sequence with a defined order, also then providing .reverse and friends)
-
case class
XPathInfo(nodes: Iterable[Iterable[xml.XmlPath]], mustBeSorted: Boolean = false, filterDuplicates: Boolean = false, initialNode: Boolean = false, eager: Boolean = false, direct: Boolean = false) extends Product with Serializable
XPaths need sorting upon unions etc, and duplicate filtering on \^ parents
- case class XmlPathComparisoms(path: xml.XmlPath) extends Product with Serializable
- trait XmlPathImplicits extends AnyRef
- trait XmlPaths extends AnyRef
Value Members
- object AQNameNames extends Names[xml.AttributeQName]
- object AttributeNames extends Names[Attribute]
- object AttributePathNames extends Names[AttributePath]
- object AttributePathText extends TextValue[AttributePath]
- object AttributePathsNames extends Names[AttributePaths[_]]
- object AttributePathsText extends TextValue[AttributePaths[_]]
- object AttributeText extends TextValue[Attribute]
- object Axis
- object DIF
- object DslNames extends Names[DslBuilder]
- object DslText extends TextValue[DslBuilder]
- object ElemNames extends Names[Elem]
-
object
EmptyQName
Represents an empty qname for those cases that should return empty string
Represents an empty qname for those cases that should return empty string
- Attributes
- protected[xml]
- object ItemOrElemText extends TextValue[xml.ItemOrElem]
- object PositionalEquals
- object QNameNames extends Names[QName]
- object XPathNames extends Names[XPath[_]]
- object XPathText extends TextValue[XPath[_]]
- object XmlItemText extends TextValue[XmlItem]
- object XmlPathNames extends Names[xml.XmlPath]
- object XmlPathText extends TextValue[xml.XmlPath]
- object XmlTreeNames extends Names[xml.XmlTree]
- object XmlTreeText extends TextValue[xml.XmlTree]