[Home] [By Thread] [By Date] [Recent Entries]


The use of substitution groups in a schema doesn't mean you're straying
dangerously over the syntax-semantics boundary.  It just means that
the _syntax_ of a number of your elements has something in common.  If
I write:

<xs:element name="para">
 <xs:complexType mixed="true">
  <xs:sequence>
   <xs:element ref="decoration" minOccurs="0" maxOccurs="unbounded"/>
  <xs:sequence>
 </xs:complexType>
</xs:element>

<xs:element name="decoration" abstract="true" type="subDeco"/>

<xs:complexType name="subDeco" mixed="true">
 <xs:sequence>
  <xs:element ref="coreDecoration" minOccurs="0" maxOccurs="unbounded"/>
 <xs:sequence>
</xs:complexType>

<xs:element name="coreDecoration" abstract="true" type="xs:string/>

<xs:element name="strong" substitutionGroup="decoration"/>

<xs:element name="quote" substitutionGroup="decoration"/>

<xs:element name="emph" substitutionGroup="coreDecoration"/>

in order to validate things such as

<para>This is a review of <strong>The <emph>Last</emph>
Emperor</strong>, in which we find the lead character saying <quote>I
<emph>will</emph> go to the ball!</quote>.</para>

there's nothing particular semantic about the use substitution group,
except in so far as one expects semantics to follow syntax to some
extent in _any_ coherent document type.

I'm just using the s-g mechanism to capture common patterning of the
relevant elements, and to make it easy to extend my document type by
adding more decorations in the future.

ht
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                      Half-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@c...
		     URL: http://www.ltg.ed.ac.uk/~ht/
 [mail really from me _always_ has this .sig -- mail without it is forged spam]

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member