Schema refactoring

Hi,

while I was inspecting datatypes used in schemas I have noticed that
current approach for schema design taken from ITS 1.0 contains a lot of
redundancy. For example for WithinText data category we have 5 very
similar definitions of corresponding attribute:

[19]  att.local.no-ns.attribute.withinText  ::=   attribute withinText {
"yes" | "no" | "nested" }?

[29]  att.local.with-ns.attribute.withinText  ::=   attribute
its:withinText { "yes" | "no" | "nested" }?

[99]  withinTextRule.attributes  ::=  att.selector.attributes, attribute
withinText { "yes" | "no" | "nested" }

[101]  att.withinText.attribute.withinText  ::=   attribute
its:withinText { "yes" | "no" | "nested" }?

[103]  att.withinText.html5.attribute.its-within-text  ::=   attribute
its-within-text { "yes" | "no" | "nested" }?

This is hard to maintain and keep synchronized. I propose to redesign
whole schema in the following way:

1. For each data category create pattern holding datatype which can be
reused:

withinText.type = "yes" | "no" | "nested"

2. Create pattern holding attribute definition in no namespace (for use
on rules/span/ruby):

attribute.withinText.nons = attribute withinText { withinText.type }

3. Create pattern holding attribute definition in ITS namespace (for use
on elements in a host language):

attribute.withinText = attribute its:withinText { withinText.type }

4. Create pattern hodling attribute for use in HTML5:

attribute.withinText.html = attribute its-within-text { withinText.type }

5. Update all references to use new patterns above

6. Make sure that resulting generated schema uses its- prefix on all
patterns in order to prevent clashes with other schemas.

The main advantages of new approach are:

- single definition of datatype -- this is important especially for
newly introduced categories containing long lists of enumerated values

- shorter schema and easier to maintain schema

All comments welcomed.

     Jirka

-- 
------------------------------------------------------------------
  Jirka Kosek      e-mail: jirka@kosek.cz      http://xmlguru.cz
------------------------------------------------------------------
       Professional XML consulting and training services
  DocBook customization, custom XSLT/XSL-FO document processing
------------------------------------------------------------------
 OASIS DocBook TC member, W3C Invited Expert, ISO JTC1/SC34 member
------------------------------------------------------------------

Received on Friday, 7 September 2012 12:39:08 UTC