Short summary of the proposal:
add a flag "nillable" to each CMDI element (including String, !ValueScheme and Pattern) and add a "nillable list" with explicitly declared values in ISOcat (e.g. [http://www.isocat.org/datcat/DC-2591 Unknown] and [http://www.isocat.org/datcat/DC-2592 Unspecified]), this will lead to instances with nil-valued elements like:
{{{
}}}
Advantages:
* using the XML-standard xsi:nil mechanism
* allows for nil-valued validating fields of an XML type that do not allow the empty string (eg boolean or date)
* makes the choice for "nil" fully semantically defined
* leaves the type of the elements at a certain XPath predictable (no involved for the element itself, only for the attributes)
As this will use the cmdi: namespace prefix it is suggested to add this to CMDI 1.2
Needed steps:
* changing the [source:metadata/trunk/toolkit/general-component-schema.xsdgeneral component XSD] and [source:metadata/trunk/toolkit/xslt/comp2schema-v2/comp2schema.xsl comp2schema.xsl] (Menzo)
* [Twan] Depending on the way we will implement this, we may run into this: [http://www.w3.org/TR/xmlschema-1/#cos-nonambig], I'm not sure if there is a way around it but perhaps an XSD expert can look at it.
* adding support to the component registry (Twan)
* adding support to Arbil (Peter/Twan)
Timeplan:
* create a milestone for the CMDI 1.2 tickets and establish a timing (short/mid-term, Twan will make a milestone definition)