- From: George Cristian Bina <george@oxygenxml.com>
- Date: Tue, 18 Jan 2005 11:06:37 +0200
- To: Luke Graham <lukeg@multitrode.com.au>
- Cc: xmlschema-dev@w3.org
Hi Luke,
> I want to write something along these lines instead...
>
> <xs:element name="*" type="foo" minOccurs="0" maxOccurs="64"/>
>
> Is it possible?
No, that is not possible.
However it seems that the substitution groups are close to what you
want. For instance if you have a schema like below:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="foo"></xs:complexType>
<xs:element name="abstractFoo" type="foo" abstract="true"/>
<xs:element name="test">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="64">
<xs:element ref="abstractFoo"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="a" type="foo" substitutionGroup="abstractFoo"/>
<xs:element name="b" type="foo" substitutionGroup="abstractFoo"/>
<xs:element name="c" type="foo" substitutionGroup="abstractFoo"/>
<xs:element name="d" type="foo" substitutionGroup="abstractFoo"/>
</xs:schema>
then the test element can contain 1 to 64 elements from {a, b, c, d}.
> And... I want to give a range to a simple integer, without deriving a
> new type -
>
> <xs:element name="bar" type="xs:int" minInclusive="0" maxInclusive="10"/>
This does not work like you write it, but you can have an anonymous type
like below:
<xs:element name="bar">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Hope that helps,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Luke Graham wrote:
> Hello list,
>
> I have a problem with some schemas that Im writing. They look as follows...
>
> <xs:complexType name="foo"/>
>
> <xs:element name="_1" type="foo"/>
> <xs:element name="_2" type="foo"/>
> .....
>
> I want to write something along these lines instead...
>
> <xs:element name="*" type="foo" minOccurs="0" maxOccurs="64"/>
>
> Is it possible?
>
> And... I want to give a range to a simple integer, without deriving a
> new type -
>
> <xs:element name="bar" type="xs:int" minInclusive="0" maxInclusive="10"/>
>
> Do I really have to derive a new type each time? That seems excessive.
>
Received on Tuesday, 18 January 2005 09:01:11 UTC