XLinkFilter: Next Generation

XLinkFilter is pretty new, and it may not seem too reasonable to create a 'next generation' area, but sometimes...

This area is really intended as a space for code that will not work with the previous version of XLinkFilter, and for some new ideas that require a revision. The key to the new ideas is Gabe Beged-Dov's XArc. Arcs resemble the 'resolved' links I'd been using in the previous version, but more explicitly represent one (and only one) connection between resources.

The new Arc class represents these Arcs, which may be derived either from the declarations listed in the XArc specification, or from the 'resolution' of Link objects, which represent XLink links. The Link class extends Arc, storing the additional information needed to represent XLinks, and capable of resolving its links into the 'flattened' Arcs. Application developers can choose when to resolve their links - resolving them early, so that users will have a snappier response to documents that use them - or resolving them late, so that the overhead involved in link storage is minimized. In either case, applications will have access to both the XLink structure and the 'resolved' structure, and can provide some instruction about how to resolve links.

XLinkFilter will support both the XLink notation and the XArc notation, with options to turn off either spec for faster processing.


  • Arc class - describes a connection with a beginning and an end, using XLink-style descriptions.
  • XResource class - describes the resources at the ends of the arc, or resources in a Link.
  • Return to the previous generation