[
https://issues.apache.org/jira/browse/XERCESJ-1306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Glavassevich reassigned XERCESJ-1306:
---------------------------------------------
Assignee: Sandy Gao
> Errors using substitution groups in restrictions
> ------------------------------------------------
>
> Key: XERCESJ-1306
> URL: https://issues.apache.org/jira/browse/XERCESJ-1306
> Project: Xerces2-J
> Issue Type: Bug
> Components: XML Schema Structures
> Affects Versions: 2.9.1
> Environment: Xerces-J 2.9.1 within Oxygen 9.0 in MacOSX
> Reporter: Fabio Vitali
> Assignee: Sandy Gao
>
> I am trying to go from abstract to concrete using substitution groups. So far
> I have not managed, and I am wondering why:
> Example:
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:element name="heading" type="block" abstract="true" />
> <xs:element name="number" substitutionGroup="heading"/>
> <xs:element name="title" substitutionGroup="heading"/>
>
> <xs:complexType name="block" mixed="true">
> <xs:choice>
> <xs:element name="b" type="block"/>
> <xs:element name="i" type="block"/>
> </xs:choice>
> </xs:complexType>
>
> <xs:element name="hcontainer" type="hierarchicalContainer"
> abstract="true" />
> <xs:element name="section" substitutionGroup="hcontainer"/>
> <xs:element name="chapter" substitutionGroup="hcontainer"/>
>
> <xs:complexType name="hierarchicalContainer" abstract="true">
> <xs:sequence>
> <xs:element ref="heading" maxOccurs="unbounded"/>
> <xs:element ref="hcontainer" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="bookType1">
> <xs:complexContent>
> <xs:restriction base="hierarchicalContainer">
> <xs:sequence>
> <xs:element ref="number"/>
> <xs:element ref="chapter" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
>
> </xs:schema>
> --
> Error
> rcase-Recurse.2: There is not a complete functional mapping between the
> particles.
> URL: http://www.w3.org/TR/xmlschema-1/#rcase-Recurse
> derivation-ok-restriction.5.4.2: Error for type 'bookType1'. The particle of
> the type is not a valid restriction of the particle of the base.
> URL: http://www.w3.org/TR/xmlschema-1/#derivation-ok-restriction
> Comments
> To my knowledge, BookType1 should work: number is substitutable for heading
> and maxOccurs of the restriction is less than maxOccurs of the base, chapter
> is substitutable for hcontainer, and maxOccurs of the restriction is equal to
> maxOccurs of the base. So to my knowledge this should note pose problems.
> Yet...
> Notes
> Funny that if I only substitute the first name of the two elements, it
> suddenly works. The following example is identical except that "chapter" has
> gone back to the abstract element "hcontainer".
> <xs:complexType name="bookType2">
> <xs:complexContent>
> <xs:restriction base="hierarchicalContainer">
> <xs:sequence>
> <xs:element ref="number" />
> <xs:element ref="hcontainer" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
> Even funnier i that if I remove the repeatability of the hcontainer it also
> works. The following example is as the first one, except that I am forbidding
> repeatability of element "chapter". This is accepted and generates no error.
> <xs:complexType name="bookType3">
> <xs:complexContent>
> <xs:restriction base="hierarchicalContainer">
> <xs:sequence>
> <xs:element ref="number"/>
> <xs:element ref="chapter"/>
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
> Any idea of why it works this way?
> Regards
> Fabio
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]