Odd syntax? xsl-fo 1.1

7.17.4 "text-decoration"

CSS2 Definition:
Value:  none | [ [ underline | no-underline] || [ overline |
no-overline ] || [ line-through | no-line-through ] || [ blink |
no-blink ] ] | inherit


When converted (laboriously) to a schema definition...
It is long.
It is (to me) largely incomprehensible. I asked and received help from
the rng list.

There are a few examples of this...
I wonder
a) if xsd 1.1 can cope any better
b) this complexity is needed.
c) If it is needed, could it be simplified in some way

DaveP


<define name='textDecoration'>
  <attribute name='text-decoration'>
    <choice>
      <data type='token'>
 <param name='pattern'>(no-)?overline\s+((no-)?underline)?\s+((no-)?line-through)?\s+((no-)?blink)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>(no-)?overline\s+((no-)?underline)?\s+((no-)?blink)?\s+((no-)?line-through)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>(no-)?overline\s+((no-)?line-through)?\s+((no-)?underline)?\s+((no-)?blink)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>(no-)?overline\s+((no-)?line-through)?\s+((no-)?blink)?\s+((no-)?underline)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>(no-)?overline\s+((no-)?blink)?\s+((no-)?underline)?\s+((no-)?line-through)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>(no-)?overline\s+((no-)?blink)?\s+((no-)?line-through)?\s+((no-)?underline)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?underline)?\s+(no-)?overline\s+((no-)?line-through)?\s+((no-)?blink)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?underline)?\s+(no-)?overline\s+((no-)?blink)?\s+((no-)?line-through)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?underline)?\s+((no-)?line-through)?\s+(no-)?overline\s+((no-)?blink)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?underline)?\s+((no-)?line-through)?\s+((no-)?blink)?\s+(no-)?overline\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?underline)?\s+((no-)?blink)?\s+(no-)?overline\s+((no-)?line-through)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?underline)?\s+((no-)?blink)?\s+((no-)?line-through)?\s+(no-)?overline\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?line-through)?\s+(no-)?overline\s+((no-)?underline)?\s+((no-)?blink)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?line-through)?\s+(no-)?overline\s+((no-)?blink)?\s+((no-)?underline)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?line-through)?\s+((no-)?underline)?\s+(no-)?overline\s+((no-)?blink)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?line-through)?\s+((no-)?underline)?\s+((no-)?blink)?\s+(no-)?overline\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?line-through)?\s+((no-)?blink)?\s+(no-)?overline\s+((no-)?underline)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?line-through)?\s+((no-)?blink)?\s+((no-)?underline)?\s+(no-)?overline\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?blink)?\s+(no-)?overline\s+((no-)?underline)?\s+((no-)?line-through)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?blink)?\s+(no-)?overline\s+((no-)?line-through)?\s+((no-)?underline)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?blink)?\s+((no-)?underline)?\s+(no-)?overline\s+((no-)?line-through)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?blink)?\s+((no-)?underline)?\s+((no-)?line-through)?\s+(no-)?overline\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?blink)?\s+((no-)?line-through)?\s+(no-)?overline\s+((no-)?underline)?\s*</param>
      </data>
      <data type='token'>
 <param name='pattern'>((no-)?blink)?\s+((no-)?line-through)?\s+((no-)?underline)?\s+(no-)?overline\s*</param>
      </data>
    </choice>
  </attribute>
</define>


-- 
Dave Pawson
XSLT XSL-FO FAQ.
Docbook FAQ.
http://www.dpawson.co.uk

Received on Friday, 7 January 2011 15:23:52 UTC