RE: Alternate syntax for required features.

Hmm, I'd hate for a solution to be rejected just because it's too much effort. My expectation was that the specification and schema detail for each feature would be a fairly mechanical rewrite of Appendix E, where we have for the most part already specified what the individual feature attributes would be.  So I don't see the individual attributes as being a great deal of additional spec work. It would need to be verified of course, but then I don't think anyone else has actually verified appendix E as it stands; so that work is still outstanding anyway.
I'm happy to convert the prose for this section if need be.

In either case the features work is a major part of the spec now, and should not be pushed off into an annexe, but should form a normative section in the main body.

I don't think we require tests for each feature, (if we do, then we would also require them for all values of requiredFeatures ), in my opinion we would only require tests for the mechanics (profile feature extensions elements) - which I already have. I'm not sure how we can actually test individual profile features, whether presented as individual attributes or as sub parts of an attribute string; since for the most part the expected behavior would be implementation dependant.

I've outlined below in this email what I think are the majority of the editorial changes, what else would need specifying?


13 Features

This section specifies (1) a set of feature designations, each of which labels one or more syntactic and/or semantic features defined by this specification, and (2) for each designated feature, whether the feature is mandatory or optional for a transformation or presentation processor.

Example:
<tt xml:lang=""
    xmlns:ttf="http://www.w3.org/2006/10/ttaf1#feature"
    xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter"
    xmlns:ms="http://www.microsoft.com/enable/timedtext"
    xmlns="http://www.w3.org/2006/10/ttaf1">
  <head>
    <profile base="http://www.w3.org/2006/10/ttaf1#profile-dfxp-presentation">
      <ttp:features
          ttf:color="optional"
          ttf:bidi="required"
      <ttp:extensions
          ms:x-narration-audio="required" />
    </profile>
  </head>
  <body>
    <div>
      <p/>
    </div>
  </body>
</tt>

The example above defines the processing requirements of a simple dfxp document. The requirements are based on the dfxp presentation core requirements, indicating this document is intended to be presented using the dfxp semantics; it then augments the requirements to specify that color processing is not required; but that bidi processing is required. It also defines that the document should be processed using a non standard audio processing technique.

A features specification is expressed using the following elements:

*         13.1.1 profile <http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#document-features-vocabulary-profile>

*         13.1.2 features<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#document-features-vocabulary-features>

*         13.1.3 extensions<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#document-features-vocabulary-extensions>


13.1 Element Vocabulary

The 13.1.1 profile<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#document-features-vocabulary-profile> element serves as a generic container element for assigning and grouping features information.
Features requirement information for a document instance may be expressed by a profile element in one of two (non mutually exclusive) manners: (1) by specifying a base attribute containing a profile URI defining a known enumeration of starting features (see 5.2) and (2) by supplying one or more feature and extension elements within the element, which apply deltas to the defined base set. Externally defined profile definitions may created by interested parties . Both types of profile are referred to in this document as feature specifications.
XML Representation - Element Information Item: profile

<profile

  base<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#feature-attribute-base> = URI
  xml:id<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#content-attribute-id> = ID
  xml:lang<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#content-attribute-lang> = string
  xml:space<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#content-attribute-space> = (default|preserve)
  {any attribute not in default or any TT namespace ...}>

  Content: Features.class<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#element-vocab-group-table>*
 </profile>


A profile element is considered to define a computed feature specification, where the specification is determined using the following ordered rules:

1.      If a base attribute is specified on the profile element, then the computed feature specification must be initialized so as to include each feature specification contained in the referenced feature specification of the URI referenced by the base attribute. If no base attribute is defined, then the referenced feature specification is the null set, and all features are considered optional.

2.      For each feature attribute on each features element contained in the profile element, if the element defines the value of the attribute as "required" the individual feature is added to the  computed feature specification.  if the element defines the value of the attribute as "optional" the individual feature is removed from the  computed feature specification. The features elements are processed in the lexical order in which they appear in the profile element, such that the lexically last referenced such attribute applies.

3.      The set of features contained in the final computed feature specification are to be considered mandatory for processing the document instance. All other features are to be considered optional. A processor which does not fully implement all of the required features should not process the document further.
13.1.2 features
The features element is used to define a single feature specification or a set of feature specifications.
The features element accepts as its children zero or more metadata elements.
XML Representation - Element Information Item: features

<features
  xml:id<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#content-attribute-id> = ID
  xml:lang<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#content-attribute-lang> = string
  xml:space<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#content-attribute-space> = (default|preserve)
  {any attribute in TT Feature namespace ...}
  Content: Metadata.class<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#element-vocab-group-table>*
</features>

A features element is used to define part of the computed feature specification, where the set is determined using the ordered rules defined in 13.1.1. The features elements may only reference attributes defined in the timed text feature namespace.
13.1.3 extensions
The extensions element is used to define a single feature specification or a set of feature specifications.
The extensions element accepts as its children zero or more metadata elements.
XML Representation - Element Information Item: extensions

<extensions
  xml:id<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#content-attribute-id> = ID
  xml:lang<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#content-attribute-lang> = string
  xml:space<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#content-attribute-space> = (default|preserve)
  {any attribute not in default or any TT namespace ...}>
  Content: Metadata.class<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#element-vocab-group-table>*
</extensions>

A extensions element is considered to define part of the computed feature specification, where the set is determined using the ordered rules defined in 13.1.1. The extensions elements may only reference feature attributes defined outside of the timed text namespaces. And may be used by authors who need to specify some non standard workflow that must be applied to the document.
13.2 Attribute Vocabulary

This section defines the 13.2.1 base<http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#style-attribute-style> attribute used with both profile definition elements.
In addition, this section specifies the following attributes in the TT Feature Namespace for use with feature definition elements:
  animation
        backgroundColor
        backgroundColor-block
        backgroundColor-inline
        backgroundColor-region
        bidi
        cellResolution
        clockMode
        color
        content
        core
        direction
        display
        display-block
        display-inline
        display-region
        displayAlign
        dynamicFlow
        dynamicFlow-barWipe
        dynamicFlow-block
        dynamicFlow-character
        dynamicFlow-fade
        dynamicFlow-glyph
        dynamicFlow-in
        dynamicFlow-inline
        dynamicFlow-inter
        dynamicFlow-intra
        dynamicFlow-jump
        dynamicFlow-leftToRight
        dynamicFlow-line
        dynamicFlow-out
        dynamicFlow-pixel
        dynamicFlow-smooth
        dynamicFlow-teletext
        dynamicFlow-topToBottom
        dynamicFlow-within
        dynamicFlow-word
        extent
        fontFamily
        fontFamily-generic
        fontFamily-non-generic
        fontSize
        fontSize-anisomorphic
        fontSize-isomorphic
        fontStyle
        fontStyle-italic
        fontWeight
        fontWeight-bold
        frameRate
        frameRateMultiplier
        layout
        length
        length-cell
        length-em
        length-integer
        length-negative
        length-percentage
        length-pixel
        length-positive
        length-real
        lineHeight
        markerMode
        metadata
        nested-div
        nested-span
        opacity
        origin
        overflow
        overflow-scroll
        padding
        padding-1
        padding-2
        padding-3
        padding-4
        pixelAspectRatio
        presentation
        profile
        requiredExtensions
        requiredFeatures
        showBackground
        smpteMode
        structure
        styling
        styling-chained
        styling-inheritance-content
        styling-inheritance-region
        styling-inline
        styling-referential
        subFrameRate
        textAlign
        textAlign-absolute
        textAlign-relative
        textDecoration
        textDecoration-over
        textDecoration-through
        textDecoration-under
        textOutline
        textOutline-blur
        tickRate
        timeBase-clock
        timeBase-media
        timeBase-smpte
        timeContainer
        time-clock
        time-clock-with-frames
        time-offset
        time-offset-with-frames
        time-offset-with-ticks
        timing
        transformation
        unicodeBidi
        visibility
        visibility-block
        visibility-inline
        visibility-region
        wrapOption
        writingMode
        writingMode-vertical
        writingMode-horizontal
        writingMode-horizontal-lr
        writingMode-horizontal-rl
        zIndex

<text from 5.2>

<modified text from Appendix E>
E.1.1 #animation
Becomes
6.x.y ttf:animation

The ttf:animation attribute may be used by an author to express the requirement that the document be processed by a TT AF transformation processor which recognizes and is capable of transforming the following vocabulary defined by 11 Animation<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#animation>:

*         set<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#animation-vocabulary-set>

or in the case of a TT AF presentation processor, that implements presentation semantic support for the same vocabulary enumerated above.
Syntax Representation - ttf:animation

ttf:animation

   : <requirement><http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061116/#style-value-digit>

Etc etc..



Additional requirement type:
8.3.N <requirement>
A <requirement> expression is used to express whether a feature is optional or required to process the current document instance.
Syntax Representation - <requirement>

<requirement>
  : "required"                     // the feature is mandatory
  | "optional"                     // the feature is optional
  | "{" <value list> "}"

<value list> For features that correspond to attribute values that allow selection from a range of fixed constant values, the requirement can specify a subset of that enumeration.
Table 4 addition:
Features.class features<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#features-vocabulary-features> | extensions<http://dev.w3.org/2008/tt/spec/ttaf1-dfxp.html#features-vocabulary-extensions>

The schema would look something like:

C.2.2.N Feature Attributes Module
<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#feature" xml:lang="en"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
  xmlns:ttf="http://www.w3.org/2006/10/ttaf1#feature">
  <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
    schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
            <xs:attribute name="animation" type="ttd:requirement"/>
            <xs:attribute name="backgroundColor" type="ttd:requirement"/>
            <xs:attribute name="backgroundColor-block" type="ttd:requirement"/>
            <xs:attribute name="backgroundColor-inline" type="ttd:requirement"/>
            <xs:attribute name="backgroundColor-region" type="ttd:requirement"/>
            <xs:attribute name="bidi" type="ttd:requirement"/>
            <xs:attribute name="cellResolution" type="ttd:requirement"/>
            <xs:attribute name="clockMode" type="ttd:requirement"/>
            <xs:attribute name="color" type="ttd:requirement"/>
            <xs:attribute name="content" type="ttd:requirement"/>
            <xs:attribute name="core" type="ttd:requirement"/>
            <xs:attribute name="direction" type="ttd:requirement"/>
            <xs:attribute name="display" type="ttd:requirement"/>
            <xs:attribute name="display-block" type="ttd:requirement"/>
            <xs:attribute name="display-inline" type="ttd:requirement"/>
            <xs:attribute name="display-region" type="ttd:requirement"/>
            <xs:attribute name="displayAlign" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-barWipe" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-block" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-character" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-fade" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-glyph" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-in" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-inline" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-inter" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-intra" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-jump" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-leftToRight" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-line" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-out" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-pixel" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-smooth" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-teletext" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-topToBottom" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-within" type="ttd:requirement"/>
            <xs:attribute name="dynamicFlow-word" type="ttd:requirement"/>
            <xs:attribute name="extent" type="ttd:requirement"/>
            <xs:attribute name="fontFamily" type="ttd:requirement"/>
            <xs:attribute name="fontFamily-generic" type="ttd:requirement"/>
            <xs:attribute name="fontFamily-non-generic" type="ttd:requirement"/>
            <xs:attribute name="fontSize" type="ttd:requirement"/>
            <xs:attribute name="fontSize-anisomorphic" type="ttd:requirement"/>
            <xs:attribute name="fontSize-isomorphic" type="ttd:requirement"/>
            <xs:attribute name="fontStyle" type="ttd:requirement"/>
            <xs:attribute name="fontStyle-italic" type="ttd:requirement"/>
            <xs:attribute name="fontWeight" type="ttd:requirement"/>
            <xs:attribute name="fontWeight-bold" type="ttd:requirement"/>
            <xs:attribute name="frameRate" type="ttd:requirement"/>
            <xs:attribute name="frameRateMultiplier" type="ttd:requirement"/>
            <xs:attribute name="layout" type="ttd:requirement"/>
            <xs:attribute name="length" type="ttd:requirement"/>
            <xs:attribute name="length-cell" type="ttd:requirement"/>
            <xs:attribute name="length-em" type="ttd:requirement"/>
            <xs:attribute name="length-integer" type="ttd:requirement"/>
            <xs:attribute name="length-negative" type="ttd:requirement"/>
            <xs:attribute name="length-percentage" type="ttd:requirement"/>
            <xs:attribute name="length-pixel" type="ttd:requirement"/>
            <xs:attribute name="length-positive" type="ttd:requirement"/>
            <xs:attribute name="length-real" type="ttd:requirement"/>
            <xs:attribute name="lineHeight" type="ttd:requirement"/>
            <xs:attribute name="markerMode" type="ttd:requirement"/>
            <xs:attribute name="metadata" type="ttd:requirement"/>
            <xs:attribute name="nested-div" type="ttd:requirement"/>
            <xs:attribute name="nested-span" type="ttd:requirement"/>
            <xs:attribute name="opacity" type="ttd:requirement"/>
            <xs:attribute name="origin" type="ttd:requirement"/>
            <xs:attribute name="overflow" type="ttd:requirement"/>
            <xs:attribute name="overflow-scroll" type="ttd:requirement"/>
            <xs:attribute name="padding" type="ttd:requirement"/>
            <xs:attribute name="padding-1" type="ttd:requirement"/>
            <xs:attribute name="padding-2" type="ttd:requirement"/>
            <xs:attribute name="padding-3" type="ttd:requirement"/>
            <xs:attribute name="padding-4" type="ttd:requirement"/>
            <xs:attribute name="pixelAspectRatio" type="ttd:requirement"/>
            <xs:attribute name="presentation" type="ttd:requirement"/>
            <xs:attribute name="profile" type="ttd:requirement"/>
            <xs:attribute name="requiredExtensions" type="ttd:requirement"/>
            <xs:attribute name="requiredFeatures" type="ttd:requirement"/>
            <xs:attribute name="showBackground" type="ttd:requirement"/>
            <xs:attribute name="smpteMode" type="ttd:requirement"/>
            <xs:attribute name="structure" type="ttd:requirement"/>
            <xs:attribute name="styling" type="ttd:requirement"/>
            <xs:attribute name="styling-chained" type="ttd:requirement"/>
            <xs:attribute name="styling-inheritance-content" type="ttd:requirement"/>
            <xs:attribute name="styling-inheritance-region" type="ttd:requirement"/>
            <xs:attribute name="styling-inline" type="ttd:requirement"/>
            <xs:attribute name="styling-referential" type="ttd:requirement"/>
            <xs:attribute name="subFrameRate" type="ttd:requirement"/>
            <xs:attribute name="textAlign" type="ttd:requirement"/>
            <xs:attribute name="textAlign-absolute" type="ttd:requirement"/>
            <xs:attribute name="textAlign-relative" type="ttd:requirement"/>
            <xs:attribute name="textDecoration" type="ttd:requirement"/>
            <xs:attribute name="textDecoration-over" type="ttd:requirement"/>
            <xs:attribute name="textDecoration-through" type="ttd:requirement"/>
            <xs:attribute name="textDecoration-under" type="ttd:requirement"/>
            <xs:attribute name="textOutline" type="ttd:requirement"/>
            <xs:attribute name="textOutline-blur" type="ttd:requirement"/>
            <xs:attribute name="tickRate" type="ttd:requirement"/>
            <xs:attribute name="timeBase-clock" type="ttd:requirement"/>
            <xs:attribute name="timeBase-media" type="ttd:requirement"/>
            <xs:attribute name="timeBase-smpte" type="ttd:requirement"/>
            <xs:attribute name="timeContainer" type="ttd:requirement"/>
            <xs:attribute name="time-clock" type="ttd:requirement"/>
            <xs:attribute name="time-clock-with-frames" type="ttd:requirement"/>
            <xs:attribute name="time-offset" type="ttd:requirement"/>
            <xs:attribute name="time-offset-with-frames" type="ttd:requirement"/>
            <xs:attribute name="time-offset-with-ticks" type="ttd:requirement"/>
            <xs:attribute name="timing" type="ttd:requirement"/>
            <xs:attribute name="transformation" type="ttd:requirement"/>
            <xs:attribute name="unicodeBidi" type="ttd:requirement"/>
            <xs:attribute name="visibility" type="ttd:requirement"/>
            <xs:attribute name="visibility-block" type="ttd:requirement"/>
            <xs:attribute name="visibility-inline" type="ttd:requirement"/>
            <xs:attribute name="visibility-region" type="ttd:requirement"/>
            <xs:attribute name="wrapOption" type="ttd:requirement"/>
            <xs:attribute name="writingMode" type="ttd:requirement"/>
            <xs:attribute name="writingMode-vertical" type="ttd:requirement"/>
            <xs:attribute name="writingMode-horizontal" type="ttd:requirement"/>
            <xs:attribute name="writingMode-horizontal-lr" type="ttd:requirement"/>
            <xs:attribute name="writingMode-horizontal-rl" type="ttd:requirement"/>
            <xs:attribute name="zIndex" type="ttd:requirement"/>
<xs:attributeGroup name="Styling.attrib.class">
<xs:attribute ref="animation"/>
<xs:attribute ref="backgroundColor"/>
<xs:attribute ref="backgroundColor-block"/>
<xs:attribute ref="backgroundColor-inline"/>
<xs:attribute ref="backgroundColor-region"/>
<xs:attribute ref="bidi"/>
<xs:attribute ref="cellResolution"/>
<xs:attribute ref="clockMode"/>
<xs:attribute ref="color"/>
<xs:attribute ref="content"/>
<xs:attribute ref="core"/>
<xs:attribute ref="direction"/>
<xs:attribute ref="display"/>
<xs:attribute ref="display-block"/>
<xs:attribute ref="display-inline"/>
<xs:attribute ref="display-region"/>
<xs:attribute ref="displayAlign"/>
<xs:attribute ref="dynamicFlow"/>
<xs:attribute ref="dynamicFlow-barWipe"/>
<xs:attribute ref="dynamicFlow-block"/>
<xs:attribute ref="dynamicFlow-character"/>
<xs:attribute ref="dynamicFlow-fade"/>
<xs:attribute ref="dynamicFlow-glyph"/>
<xs:attribute ref="dynamicFlow-in"/>
<xs:attribute ref="dynamicFlow-inline"/>
<xs:attribute ref="dynamicFlow-inter"/>
<xs:attribute ref="dynamicFlow-intra"/>
<xs:attribute ref="dynamicFlow-jump"/>
<xs:attribute ref="dynamicFlow-leftToRight"/>
<xs:attribute ref="dynamicFlow-line"/>
<xs:attribute ref="dynamicFlow-out"/>
<xs:attribute ref="dynamicFlow-pixel"/>
<xs:attribute ref="dynamicFlow-smooth"/>
<xs:attribute ref="dynamicFlow-teletext"/>
<xs:attribute ref="dynamicFlow-topToBottom"/>
<xs:attribute ref="dynamicFlow-within"/>
<xs:attribute ref="dynamicFlow-word"/>
<xs:attribute ref="extent"/>
<xs:attribute ref="fontFamily"/>
<xs:attribute ref="fontFamily-generic"/>
<xs:attribute ref="fontFamily-non-generic"/>
<xs:attribute ref="fontSize"/>
<xs:attribute ref="fontSize-anisomorphic"/>
<xs:attribute ref="fontSize-isomorphic"/>
<xs:attribute ref="fontStyle"/>
<xs:attribute ref="fontStyle-italic"/>
<xs:attribute ref="fontWeight"/>
<xs:attribute ref="fontWeight-bold"/>
<xs:attribute ref="frameRate"/>
<xs:attribute ref="frameRateMultiplier"/>
<xs:attribute ref="layout"/>
<xs:attribute ref="length"/>
<xs:attribute ref="length-cell"/>
<xs:attribute ref="length-em"/>
<xs:attribute ref="length-integer"/>
<xs:attribute ref="length-negative"/>
<xs:attribute ref="length-percentage"/>
<xs:attribute ref="length-pixel"/>
<xs:attribute ref="length-positive"/>
<xs:attribute ref="length-real"/>
<xs:attribute ref="lineHeight"/>
<xs:attribute ref="markerMode"/>
<xs:attribute ref="metadata"/>
<xs:attribute ref="nested-div"/>
<xs:attribute ref="nested-span"/>
<xs:attribute ref="opacity"/>
<xs:attribute ref="origin"/>
<xs:attribute ref="overflow"/>
<xs:attribute ref="overflow-scroll"/>
<xs:attribute ref="padding"/>
<xs:attribute ref="padding-1"/>
<xs:attribute ref="padding-2"/>
<xs:attribute ref="padding-3"/>
<xs:attribute ref="padding-4"/>
<xs:attribute ref="pixelAspectRatio"/>
<xs:attribute ref="presentation"/>
<xs:attribute ref="profile"/>
<xs:attribute ref="requiredExtensions"/>
<xs:attribute ref="requiredFeatures"/>
<xs:attribute ref="showBackground"/>
<xs:attribute ref="smpteMode"/>
<xs:attribute ref="structure"/>
<xs:attribute ref="styling"/>
<xs:attribute ref="styling-chained"/>
<xs:attribute ref="styling-inheritance-content"/>
<xs:attribute ref="styling-inheritance-region"/>
<xs:attribute ref="styling-inline"/>
<xs:attribute ref="styling-referential"/>
<xs:attribute ref="subFrameRate"/>
<xs:attribute ref="textAlign"/>
<xs:attribute ref="textAlign-absolute"/>
<xs:attribute ref="textAlign-relative"/>
<xs:attribute ref="textDecoration"/>
<xs:attribute ref="textDecoration-over"/>
<xs:attribute ref="textDecoration-through"/>
<xs:attribute ref="textDecoration-under"/>
<xs:attribute ref="textOutline"/>
<xs:attribute ref="textOutline-blur"/>
<xs:attribute ref="tickRate"/>
<xs:attribute ref="timeBase-clock"/>
<xs:attribute ref="timeBase-media"/>
<xs:attribute ref="timeBase-smpte"/>
<xs:attribute ref="timeContainer"/>
<xs:attribute ref="time-clock"/>
<xs:attribute ref="time-clock-with-frames"/>
<xs:attribute ref="time-offset"/>
<xs:attribute ref="time-offset-with-frames"/>
<xs:attribute ref="time-offset-with-ticks"/>
<xs:attribute ref="timing"/>
<xs:attribute ref="transformation"/>
<xs:attribute ref="unicodeBidi"/>
<xs:attribute ref="visibility"/>
<xs:attribute ref="visibility-block"/>
<xs:attribute ref="visibility-inline"/>
<xs:attribute ref="visibility-region"/>
<xs:attribute ref="wrapOption"/>
<xs:attribute ref="writingMode"/>
<xs:attribute ref="writingMode-vertical"/>
<xs:attribute ref="writingMode-horizontal"/>
<xs:attribute ref="writingMode-horizontal-lr"/>
<xs:attribute ref="writingMode-horizontal-rl"/>
<xs:attribute ref="zIndex</xs:attributeGroup>"/>
</xs:schema>

With the additional datatype:


<xs:simpleType name="requirement">

    <xs:restriction base="xs:token">

      <xs:enumeration value="required"/>

      <xs:enumeration value="optional"/>

    </xs:restriction>

  </xs:simpleType>

Received on Thursday, 16 April 2009 11:35:37 UTC