ddn.data.xml.xpointer

XPointer support (phased).

This module is a minimal starting point for XPointer-like addressing.

Current scope (MVP):

  • Shorthand pointers: #id
  • resolves to the first element that has an attribute id equal to id

Future phases (not yet implemented):

  • xpointer(...) scheme
  • element(...) scheme (implemented)
  • Namespace-aware ID matching and integration with DTD ID typing

Types 3

XPointer kind.

SHORTHANDShorthand pointer of the form `#id`.
ELEMENT`element(...)` scheme.
XPOINTER`xpointer(...)` scheme (XPath-backed).
XMLNS`xmlns(...)` scheme (namespace binding).

A single part of an XPointer (either a scheme or a shorthand).

Fields
string id
string elementId
bool elementAbsolute
size_t[] elementSequence
string xpath
string xmlnsPrefix
string xmlnsUri
structXPointer

Parsed XPointer.

Fields
XPointerPart[] partsPointer parts in order.
Methods
XPointer parse(string value) @safeParses a pointer string.
XmlNode[] evaluate(XmlDocument doc, Options options = Options.init) @safeEvaluates this pointer against a document.
Nested Templates
OptionsEvaluation strictness options.

Functions 4

private fnXmlNode[] evaluateElementScheme(XmlElement root, const ref XPointerPart part) @safe
private fnsize_t[] parseElementSequence(string s) @safe
private fnXmlElement nthChildElement(XmlElement parent, size_t index1) @safe nothrow
private fnXmlElement findById(XmlElement root, string id) @safe