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

  • From: Rick Jelliffe <rjelliffe@a...>
  • To: xml-dev@l...
  • Date: Thu, 08 Nov 2007 18:10:11 +1100

On Tue, 2007-11-06 at 20:35 +0000, Michael Kay wrote:
>  > 
> > I use W3C XML schema language 1.0.
> 
> Well, I assumed you were aware that what you are asking for is well beyond
> the expressive power of XSDL 1.0.
 
If you were desparate, you could try the following hack:  

<xsd:element name="data" >
	<xsd:complexType>
		<xsd:sequence>
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="20" />
			</xsd:element>
		</xsd:element>

		<xsd:sequence minOccurs="0">
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="21" />
			</xsd:element>
		</xsd:element>


		<xsd:sequence minOccurs="0">
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="22" />
			</xsd:element>
		</xsd:element>

		<xsd:sequence minOccurs="0">
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="23" />
			</xsd:element>
		</xsd:element>


		<xsd:sequence minOccurs="0">
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="24" />
			</xsd:element>
		</xsd:element>


		<xsd:sequence minOccurs="0">
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="25" />
			</xsd:element>
		</xsd:element>

		<xsd:sequence minOccurs="0">
			<xsd:element name="el">
				<xsd:complexType>
					<xsd:element ref="ch" />
					<xsd:attribute 	
					name="val"
					fixed="26" />
			</xsd:element>
		</xsd:element>

		<xsd:sequence>
		<xsd:sequence>
		<xsd:sequence>
		<xsd:sequence>
		<xsd:sequence>
		<xsd:sequence>
		<xsd:sequence>
	</xsd:complexType>
</xsd:element>

However, this is stretching the purpose of XML Schemas. When thinking
about XSD 1.0, it is approporiate to keep in mind that it is not
designed to handle dynamic or contextual constraints, only static
issues. (With the particular exceptions of local element declarations.)

If dynamic and contextual constraints are important to you, you may be
better to keep the XSD grammars simple and use another layer for the
additional constraints. I mentioned Schematron and Mike mentioned XSD
1.1, both of which support making assertions using XPaths. 

Cheers
Rick Jelliffe



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


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