'''Note:''' this issue has now been addressed with [changeset:2011 a schematron check] (= solution 1 + a warning, to be incorporated somehow in the Component Registry)
== problem ==
cmdi-price component:
{{{
clarin.eu:cr1:c_1271859438115
Price
Component Price contains information about the (different) price(s) for a resource
}}}
This results in instances such as:
{{{
}}}
I know that this is not a problem in XML but one of my colleagues here
says: Bad style same element within the same element with different
content models. Do you have any recommendations for us? I mean usually I
would say that it should be
......... etc. avoiding
the "problem". He is sort of right and if he wants to use RegEx for
processing, it is certainly nicer.
== possible solutions ==
=== 1. leave it as it is ===
pro:
* less work
con:
* not really stylish
* potentially confusing
=== 2. styleguide: use a suffix to indicate components ===
(non-binding) advice for the creators of a component to use a certain suffix, eg "c_"
(or similar: use the plural for the components, singular for embedded elements)
{{{
}}}
pro:
* less confusion
* still leaves the possibility to freely choose the instance tags (eg for interoperability with TEI headers)
con:
* non-binding, so confusion is still possible if users do not adhere to the advice
=== 3. automatically append a suffix when generating XSD ===
{{{
}}}
results in:
{{{
}}}
and thus in:
{{{
}}}
pro:
* binding, so no confusion anymore
con:
* intransparent, because the instance tags (c_Price) look different than the component tags (Price), although this might be masked by the software (hiding the c_ prefix eg)
* impossible to "emulate" other schemas literally like TEI (eg tags instead of )
=== 4. remove outer components in XSLT ===
change the XSD-generation XSLT so that it removes the outer component, so you would get
{{{
...
...
}}}
instead of
{{{
}}}
pro:
* more intuitive (?)
* easier to use in arbil (?)
con:
* does not work when the component has other elements (eg in a component, both and )
* (probably) complex changes to the XSLT