Hallo
i could localize the problem of converting <choice> to <sequence> in derivation by
restriction problem:
if i define only:
<xs:complexType name="basis_typ">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="foo" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="bar" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
to
<xs:complexType name="derived_test_typ">
<xs:complexContent>
<xs:restriction base="basis_typ">
<xs:sequence>
<xs:element name="foo" minOccurs="2"
maxOccurs="2"/>
<xs:element name="bar" minOccurs="4"
maxOccurs="4"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
all is fine an valid. But if i add an element before the <choice>-section i get errors:
<xs:complexType name="basis_typ">
<xs:sequence>
<xs:element name="added_element"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="foo" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="bar" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
to
<xs:complexType name="derived_test_typ">
<xs:complexContent>
<xs:restriction base="basis_typ">
<xs:sequence>
<xs:element name="added_element"/>
<xs:element name="foo" minOccurs="2"
maxOccurs="2"/>
<xs:element name="bar" minOccurs="4"
maxOccurs="4"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
i think this is a bug.
CU
Evgeny
> -----Urspr�ngliche Nachricht-----
> Von: Usorov, Evgeny
> Gesendet: Freitag, 30. Juli 2004 14:00
> An: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
> Betreff: derivation by restriction and <choice> to <sequence>- definition
>
> Hi,
>
> Our company defines some XML-Intefaces for exchange eHealth-data. So our
> global-schema-Standart
> for all interfaces can be only restricted by the specific XML-Schema-Interface.
> But i get all the time problems when somebody wants to restrict the global-schema.
>
> Situation:
> Our standart provider_typ, only short-cut
> <xs:complexType name="provider_typ">
> <xs:sequence>
> <!-- here some other elements like provider.type_cd, that are
> not relevant for this example-->
> <xs:choice maxOccurs="unbounded">
> <xs:element ref="person"/>
> <xs:element ref="organization"/>
> </xs:choice>
> </xs:sequence>
> </xs:complexType>
>
> So with that type I can have 3 persons, who belongs to 1 organization. Now somebody
> wants to define specific schema for doctors, like one group practice can have
> many doctors. So here the specific_provider_typ
>
> <xs:complexType name="specific_provider_typ">
> <xs:complexContent>
> <xs:restriction base="provider_typ">
> <xs:sequence>
> <!-- here other specific elements, that are
> not relevant for this example-->
> <xs:element ref="person" minOccurs="0"
> maxOccurs="unbounded"/>
> <xs:element ref="organization"/>
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
>
> So now in this specific_provider_typ I changed <choice> to <sequence>, now there
> have
> to be one organization and may be some persons. I think from the XML-view this is a
> valid restriction.
> But Xerces (2.6.2) reports an error:
> [Error] test.xsd:129:47: rcase-Recurse.2: There is not a complete functional mapping
> between the particles.
> [Error] test.xsd:129:47: derivation-ok-restriction.5.4.2: Error for type
> 'specific_provider_typ'. The particle of the type is not a valid restriction of the
> particle of the base.
>
> Is it not allowed to change from <choice> to <sequence> or this is Xerces bug ?
> I tryed other ways to define global-schema, but without success. Only thing that
> works is to define in the global-schema normal <sequence> without <choice>.>
>
> Can somebody help ?
> Thanks in advance
> Evgeny Usorov
> www.kbv.de
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]