Version 6 (modified by 10 years ago) (diff) | ,
---|
This page is a subpage of CMDI 1.2
Allowing only a single reference from a component (or element) to a resource proxy
The issue
With OAI-PMH its possible to retrieve multiple records with one request. When one validates the returned document its possible that IDs clash, as they are unique within the original XML document but there was no requirement that they should have been globally unique.
The proposed solution
It's possible in XSD to limit the scope of IDs and IDREFs using xs:key and xs:keyref. This solution has been described in the CmdiMultipleRecords page. A showstopper for this solution is currently that @ref can refer to multiple ResourceProxies, i.e., the type of @ref is IDREFS, while there is no xs:keyrefs. A solution in CMDI 1.2 would be to make the type of @ref IDREF again as it was once. An investigation of the around half million harvested CMD records shows that instances of collection profile are currently the only users of this feature, e.g., the IPROSLA Abel CMD collection record. Here the root collection component refers to all the ResourceProxies. Its debatable if that is needed, as this should be the default interpretation if there is no @ref.
Pros
CMD records can be concatenated for bulk retrieval.
Cons
There are CMD records that currently use multiple ResourceProxy references in one @ref.
Centre impact
When a centre uses references to multiple resource proxies in one @ref these would have to be modeled differently.
Implementation examples
See the CmdiMultipleRecords page.
Discussion
Discuss this solution proposal in this section
Tickets
Tickets in the CMDI 1.2 milestone with the keyword keyword:
Discussion
Discuss the topic in general below this point
Florian(BAS): In the meeting 2014-01-23 I claimed that there is an use case for multiple refs to elements of the ResourceProxyList? from one component, namely actor components refering to multiple resources. Although this is theoretically possible, we don't do that: it's the other way round: an element of the ResourceProxyList? refers to multiple speaker-components, but we use the 'actor-ref' attribute instead of 'ref' for that.