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.
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 |
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.