Difference between revisions of "Prov-XML Identifiers"

From Provenance WG Wiki
Jump to: navigation, search
(Discussions on how to represent identifiers (prov:id) in PROV-XML)
(Advantages)
Line 40: Line 40:
 
# IDRef recognized by XML tools as a reference to an identified element
 
# IDRef recognized by XML tools as a reference to an identified element
 
# ID uniqueness constraint (document scope only)
 
# ID uniqueness constraint (document scope only)
# IDRef must match some identified element in the document
+
# IDRef must match the ID of some identified element in the document
  
 
==== Disadvantages ====
 
==== Disadvantages ====

Revision as of 19:13, 17 January 2013

Discussions on how to represent identifiers (prov:id) in PROV-XML

Options regarding the type of the prov:id and prov:ref xml attributes

ID/IDRef

Use type xs:ID for prov:id and xs:IDRef for prov:ref

 <xs:attribute name="id" type="xs:ID"/>
 <xs:attribute name="ref" type="xs:IDRef"/>

Contraints

Validity constraint: ID
Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them.


Validity constraint: One ID per Element Type
No element type may have more than one ID attribute specified.


Validity constraint: ID Attribute Default
An ID attribute must have a declared default of #IMPLIED or #REQUIRED.


Validity constraint: IDREF
Values of type IDREF must match the Name production, and values of type IDREFS must match Names; each Name must match the value of an ID attribute on some element in the XML document; i.e. IDREF values must match the value of some ID attribute.

Advantages

  1. ID recognized by XML tools as an identifier type
  2. IDRef recognized by XML tools as a reference to an identified element
  3. ID uniqueness constraint (document scope only)
  4. IDRef must match the ID of some identified element in the document

Disadvantages

  1. ID and IDRef cannot contain colons, whitespaces, or start with numbers
    1. URIs and qualified names are not valid IDs because both contain colons.
  2. Requiring unique IDs may cause problems with bundles

QName

Use type xs:QName for both prov:id and xs:IDRef

 <xs:attribute name="id" type="xs:QName"/>
 <xs:attribute name="ref" type="xs:QName"/>

Contraints

TODO

Advantages

TODO

Disadvantages

TODO

anyURI

Use type xs:anyURI for both prov:id and xs:IDRef

 <xs:attribute name="id" type="xs:anyURI"/>
 <xs:attribute name="ref" type="xs:anyURI"/>

Contraints

TODO

Advantages

TODO

Disadvantages

TODO