Here it is a cut down sample to reproduce the behavior.
There are three schemas, incl.xsd defines the group and is included from the initial.xsd schema. The 3rd one, redef.xsd redefines the group by specifying the initial.xsd schema in the redefine/@schemaLocation.


incl.xsd
--------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
    <xs:group name="atom.extend">
        <xs:sequence>
            <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element ref="ind"/>
                <xs:element ref="var"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:element name="ind"/>
    <xs:element name="var"/>
</xs:schema>


initial.xsd ----------- <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";> <xs:include schemaLocation="incl.xsd"/> <xs:element name="test"> <xs:complexType> <xs:group ref="atom.extend"/> </xs:complexType> </xs:element> </xs:schema>


redef.xsd --------- <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> <xs:redefine schemaLocation="initial.xsd"> <xs:group name="atom.extend"> <xs:sequence> <xs:choice minOccurs="2" maxOccurs="2"> <xs:element ref="ind"/> <xs:element ref="var"/> </xs:choice> </xs:sequence> </xs:group> </xs:redefine> </xs:schema

If the redef.xsd is changed to refer to the incl.xsd as the redefined schema location then the schema is reported valid:

redefValid.xsd
--------------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
    <xs:redefine schemaLocation="incl.xsd">
       <xs:group name="atom.extend">
        <xs:sequence>
            <xs:choice minOccurs="2" maxOccurs="2">
                <xs:element ref="ind"/>
                <xs:element ref="var"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    </xs:redefine>
</xs:schema

Hope that helps,
George
-----------------------------------------------
George Cristian Bina
<oXygen/> XML Editor & XSLT Editor/Debugger
http://www.oxygenxml.com


Hirtle, David wrote:
I didn't receive any feedback on the user list regarding this apparent bug
so I thought I'd forward it on.

David

-----Original Message-----
From: Hirtle, David [mailto:[EMAIL PROTECTED]
Sent: July 21, 2004 4:19 PM
To: '[EMAIL PROTECTED]'
Subject: Occurrence range restriction via redefine


Good day,

java dom.Counter -v -s -f -n bindatalog.ruleml (or sax.Counter) produces the
following error for me:

[Error] atom_module.xsd:62:31: An internal error occurred while formatting
the following message:
 mg-props-correct.2: Circular definitions detected for group ''{0}''.
Recursively following the {term} values of the particles leads to a particle
whose {term} is the group itself.
[Error] atom_module.xsd:62:31: src-redefine.6.2.1: No group in the redefined
schema has a name matching 'atom.extend'.
bindatalog.ruleml: 1492;40;0 ms (51 elems, 8 attrs, 0 spaces, 494 chars)

What's going on is that a content model originally defined as

        <xs:group name="atom.extend">
                <xs:sequence>
                        <xs:choice minOccurs="1" maxOccurs="unbounded">
                                <xs:element ref="ind"/>
                                <xs:element ref="var"/>
                        </xs:choice>
                </xs:sequence>
        </xs:group>

in http://www.ruleml.org/0.86/xsd/modules/atom_module.xsd is being redefined
to

        <xs:redefine schemaLocation="datalog.xsd">

                <xs:group name="atom.extend">
                        <xs:sequence>
                                <xs:choice minOccurs="2" maxOccurs="2">
                                        <xs:element ref="ind"/>
                                        <xs:element ref="var"/>
                                </xs:choice>
                        </xs:sequence>
                </xs:group>               
        </xs:redefine>

in http://www.ruleml.org/0.86/xsd/bindatalog.xsd.  (Note that bindatalog.xsd
actually redefines datalog.xsd which in turn includes atom_module.xsd.)  As
far as I can tell, this is a valid restriction because the occurrence range
is being restricted from 1 or more to exactly 2 (i.e. binary, hence
bindatalog).  The schemas validate okay with XSV 2.7-1, MSXML 4.0 and Saxon
8.0.

I'm using Xerces 2.6.2.  Any help would be appreciated.

David

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to