This is an informal document to compare WS-Fragment XPath profiles with the XPath profile in XML Signature 2.0 and to propose a unified XPath profile document.

Introduction

Comparison of WS-Fragment Level 1 XPath Profile and XML Signature 2.0 profile

This section compares the Level 1 XPath profile in WS-Fragment section 6 ("XPath Level 1 Expression Language") [[!WS-FRAGMENT]] with the XPath profile in section 4.4.3.11 ("XPaths in 2.0 mode") in XML Signature 2.0 [[!XMLDSIG-CORE2]]. WS-Fragment also has another profile of XPath in section 7 ("XPath 1.0 Expression Language"), but this appears to be full XPath so is not compared.

Feature WS-Fragment Level 1 XPath Profile XML Signature 2.0 XPath Profile
Syntax Relative only Absolute only
Function Libraries None Reduced Function Libraries (String, Boolean and Number functions supported. Node set functions limited to id, local-name, namespace-uri and name functions
Node Tests NameTest and the text NodeType NameTest (known as StepAttributeOnly)
Axis, but All the non streamable axes have been removed - ancestor, ancestor-or-self, following, following-sibling, namespace, parent, preceding, preceding-sibling removed. Leaves attribute, child, descendant, descendant-or-self, self
Computed Values Not supported. Supported fully
Conformance Conformance is minimum - implementation may support more of XPath Restricted to what is specified in profile

Proposal

Create a separate XPath profile with WS-Fragment Level 1 profile (unchanged), XML Signature 2.0 XPath profile, renamed as Level 2 and material in section 7 ("XPath 1.0 Expression Language") of WS-Fragment.