OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

tag-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: TAML: Attribute extension points (anyAttribute)


TAML's schema at present has attribute extension points which allow
any attribute from any namespace, including the TAML namespace,
to be added by implementers. These have been represented using
"xs:anyAttribute" in the schema and "attribute * { text }*" in the spec.

These could be modified so that they allow only non-TAML
namespaces to be added, in which case the implementer would
have to add their own namespace declaration for any added
attributes. It gives extensibility but provides some protection of the
TAML attributes from 'semantic drift' (from the attributes being
reused for purposes other than those defined in the spec).

I've attached a schema showing the amendment. For each of the
'anyAttribute' definitions it uses

<xs:anyAttribute namespace="##other" processContents="skip"/>

in place of

<xs:anyAttribute namespace="##any" processContents="skip"/>

(I also made a mod to the author date in the schema and put
the schema components in alphabetical order.)

In the spec I think you would change each element's
Relax NG Compact definition

from having

 attribute * { text }*,

to having

 attribute * - taml:* { text }*,

So for normative source you would have the following:

element taml: normativeSource { normativeSource_def }
normativeSource_def =
  attribute * - taml:* { text }*,
  element taml:comment { comment_def }?,
  element taml:interpretation { interpretation_def }?,
  element taml:refSourceItem { refSourceItem_def }*,
  element taml:textSourceItem { textSourceItem_def }*,
  element taml:derivedSourceItem { refSourceItem_def }*,
  text ?

This would necessitate, I think, a slight change to the original
version strategy in that now any new attributes the TAG TC
might add in any future minor version would also require that
an additional namespace be added alongside the present one.
The extensibility would still be there though to allow for minor
changes in future versions which are still valid by the earlier

Best regards

Stephen D Green


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]