- From: Francis Brouns <francis.brouns@ou.nl>
- Date: Fri, 25 Oct 2002 09:25:40 +0200
- To: <xmlschema-dev@w3.org>
Hello,
We are having problems extending a content model. We have 2 different
schemas. In the first schema we define a content model. In the second schema
we want to re-use the model, but add an element to it at a certain location.
Example:
In first schema the model is: test (a | c).
In the second schema the model should become: test (a | b | c). It is
important that element names remain identical in both schemas.
How should we go about this?
Redefining a complex type by extension only seems to allow us appending
elements, but not inserting elements at specific locations.
Can we redefine a group to obtain this result?
Would the following be valid? In schema 1 define a group:
<xs:group name="testGroup">
<xs:choice>
<xs:element ref="a"/>
<xs:element ref="c"/>
</xs:choice>
</xs:group>
<xs:element name="test">
<xs:complexType">
<xs:choice>
<xs:group ref="testGroup"/>
</xs:choice>
</xs:complexType>
</xs:element>
and in schema 2 redefine the group (and of course declare the new element)
<xs:redefine schemaLocation="schema1.xsd">
<xs:group name="testGroup">
<xs:choice>
<xs:element ref="a"/>
<xs:element name="b"/>
<xs:element ref="c"/>
</xs:choice>
</xs:group>
</xs:redefine>
According to XML Spy and Turbo XML this would be valid; XSV reports errors:
<schemaDocAttempt URI='file:/D:/schema2.xsd' outcome='success'
source='redefine'/>
<bug>validator crash during command line:
Traceback (most recent call last):
File "d:\work\XMLinter\fschema\XMLSchemaCore.py", line 468, in
checkinSchema
File "d:\work\XMLinter\fschema\XMLSchemaCore.py", line 250, in fromFile
File "d:\work\XMLinter\fschema\layer.py", line 275, in fromFile
File "d:\work\XMLinter\fschema\layer.py", line 359, in processElement
File "d:\work\XMLinter\fschema\layer.py", line 396, in processElement
File "d:\work\XMLinter\fschema\XMLSchemaElt.py", line 712, in init
AttributeError: 'Choice' instance has no attribute 'redefine'
</bug>
Any pointers would be welcome.
Thanks.
Francis Brouns
Received on Friday, 25 October 2002 03:24:35 UTC