Project

Profile

Help

Bug #2331

closed

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

Added by Michael Kay over 7 years ago. Updated over 6 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.

Actions #1

Updated by Michael Kay over 7 years ago

  • Status changed from New to Resolved

Patch committed on the 9.6 branch, for the TinyTree case.

Actions #2

Updated by O'Neil Delpratt over 7 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
  • Found in version set to 9.6
  • Fixed in version set to 9.6.0.5

Bug fix applied in the Saxon 9.6.0.5 maintenance release.

Actions #3

Updated by O'Neil Delpratt over 6 years ago

  • Sprint/Milestone set to 9.6.0.5
  • Applies to branch 9.6 added
  • Fix Committed on Branch 9.6 added
  • Fixed in Maintenance Release 9.6.0.5 added

Please register to edit this issue

Also available in: Atom PDF