Project

Profile

Help

Bug #2331

closed

idref() applied to a list containing both IDREF and non-IDREF values

Added by Michael Kay about 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Schema-Aware processing
Sprint/Milestone:
Start date:
2015-03-19
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.6
Fix Committed on Branch:
9.6
Fixed in Maintenance Release:
Platforms:

Description

When an element or attribute has a type that defines a list whose item type is a union permitting both IDREF and non-IDREF values, then the rules of the idref() function are that it considers both IDREF and IDREF values in the list, provided (a) that they conform to the lexical rules for an IDREF, and (b) that the node is marked with the is-idrefs property. The node is marked with the is-idrefs property if and only if its typed value contains at least one IDREF value. So a non-IDREF value in the list is matched by the idref() function if and only if there is also an IDREF present in the value. Saxon matches it whether or not there is also an IDREF present in the list.

Test case added in QT3: fn-idref-33.

Please register to edit this issue

Also available in: Atom PDF