XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: [xml-dev] Substituting elements in a group for the group when redefining

Hi George, 

Thanks much for your help. I'm using Oxygen 6.2 and I thought it used Xerces
2.7.1 by default for validation, but I'm unable to find where to verify that
in Oxygen. I created full documents that I tried to validate in Oxygen and
got the same errors: 

Description: E rcase-Recurse.2: There is not a complete functional mapping
between the particles.
URL: http://www.w3.org/TR/xmlschema-1/#rcase-Recurse

Description: E derivation-ok-restriction.5.4.2: Error for type
'PublicEventContactType'.  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

How can I tell what XML processor Oxygen is using?

If I do validation of an instance at the command line using Xerces, I get
the same thing:

java sax.Counter -v -s -f RedefineRestrictionTest.xml
[Error] RedefineRestrictionTest2.xsd:4:51: rcase-Rcurse.2: There is not a
complete functional mapping between the particles.
[Error] RedefineRestrictionTest2.xsd:4:51: derivation-ok-restriction.5.4.2:
Error for type 'PublicEventContactType'. The particle is not a valid
restriction of the particle of the base.
RedefineRestrictionTest2.xml: 360 ms (7 elems, 1 attrs, 0 spaces, 55 chars)

How was the document you used (which was valid) different?

Here are the documents I used to validate:

Original:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:ev="urn:cde.berkeley.edu:babl:events:1.00"
targetNamespace="urn:cde.berkeley.edu:babl:events:1.00"
elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="ContactName" type="xs:string"/>
    <xs:element name="ProfessionalAffiliations" type="xs:string"/>
    <xs:element name="Phones" type="xs:string"/>
    <xs:element name="EmailAddresses" type="xs:string"/>
    <xs:element name="Addresses" type="xs:string"/>
    <xs:element name="WebPages" type="xs:string"/>
    <xs:element name="PreferredContactMethod" type="xs:string"/>
    <xs:element name="PublicEventContactID" type="xs:string"/>
    <xs:element name="PublicEventContactTypes" type="xs:string"/>
    <xs:element name="PublicEventContactParentID" type="xs:string"/>    
    <xs:group name="ContactInfo"> 
        <xs:sequence> 
            <xs:element ref="ev:ContactName" minOccurs="0"/> 
            <xs:element ref="ev:ProfessionalAffiliations" minOccurs="0"/> 
            <xs:element ref="ev:Phones" minOccurs="0"/> 
            <xs:element ref="ev:EmailAddresses" minOccurs="0"/> 
            <xs:element ref="ev:Addresses" minOccurs="0"/> 
            <xs:element ref="ev:WebPages" minOccurs="0"/> 
            <xs:element ref="ev:PreferredContactMethod" minOccurs="0"/> 
        </xs:sequence> 
    </xs:group> 
    <xs:complexType name="PublicEventContactType"> 
        <xs:sequence> 
            <xs:element ref="ev:PublicEventContactID" minOccurs="0"/> 
            <xs:group ref="ev:ContactInfo" minOccurs="0"/> 
            <xs:element ref="ev:PublicEventContactTypes" minOccurs="0"/> 
            <xs:element ref="ev:PublicEventContactParentID" minOccurs="0"/> 
        </xs:sequence> 
    </xs:complexType> 
</xs:schema>

Redefine:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:ev="urn:cde.berkeley.edu:babl:events:1.00"
targetNamespace="urn:cde.berkeley.edu:babl:events:1.00"
elementFormDefault="qualified" attributeFormDefault="unqualified">    
    <xs:redefine schemaLocation="RedefineRestrictionTest1.xsd">
    <xs:complexType name="PublicEventContactType"> 
        <xs:complexContent> 
            <xs:restriction base="ev:PublicEventContactType"> 
                <xs:sequence> 
                    <!-- REMOVING THIS ELEMENT <xs:element
ref="ev:PublicEventContactID" minOccurs="0"/> -->
                    
                    <xs:element ref="ev:ContactName" minOccurs="0"/> 
                    <xs:element ref="ev:ProfessionalAffiliations"
minOccurs="0"/> 
                    <xs:element ref="ev:Phones" minOccurs="0"/> 
                    <xs:element ref="ev:EmailAddresses" minOccurs="0"/> 
                    <xs:element ref="ev:Addresses" minOccurs="0"/> 
                    <!-- REMOVING THIS ELEMENT <xs:element ref="ev:WebPages"
minOccurs="0"/> -->
                    
                    <xs:element ref="ev:PreferredContactMethod"
minOccurs="0"/> 
                    <!-- REMOVING THIS ELEMENT <xs:element
ref="ev:PublicEventContactTypes" minOccurs="0">
                        
                        </xs:element> --> 
                    <!-- REMOVING THIS ELEMENT <xs:element
ref="ev:PublicEventContactParentID" minOccurs="0">
                        
                        </xs:element> --> 
                </xs:sequence> 
            </xs:restriction> 
        </xs:complexContent> 
    </xs:complexType> 
   </xs:redefine>
</xs:schema>

Instance:
<?xml version="1.0" encoding="UTF-8"?>
<PublicEventContact xmlns="urn:cde.berkeley.edu:babl:events:1.00"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
     xsi:schemaLocation="urn:cde.berkeley.edu:babl:events:1.00
RedefineRestrictionTest2.xsd">
    <ContactName>Blah</ContactName>
    <ProfessionalAffiliations>Blah</ProfessionalAffiliations>
    <Phones>Blah</Phones>
    <EmailAddresses>Blah</EmailAddresses>
    <Addresses>Blah</Addresses>
    <PreferredContactMethod>Blah</PreferredContactMethod>
</PublicEventContact>

Thanks again, 
Allison

-----Original Message-----
From: George Cristian Bina [mailto:george@oxygenxml.com] 
Sent: Tuesday, October 03, 2006 1:02 AM
To: Allison Bloodworth
Cc: xml-dev@lists.xml.org
Subject: Re: [xml-dev] Substituting elements in a group for the group when
redefining

Hi Allison,

Xerces is happy with this equivalent model:

<xs:restriction base="ev:PublicEventContactType">
     <xs:sequence>
         <xs:sequence/>
         <xs:sequence minOccurs="0">
             <xs:element ref="ev:ContactName" minOccurs="0"/>
             <xs:element ref="ev:ProfessionalAffiliations" minOccurs="0"/>
             <xs:element ref="ev:Phones" minOccurs="0"/>
             <xs:element ref="ev:EmailAddresses" minOccurs="0"/>
             <xs:element ref="ev:Addresses" minOccurs="0"/>
             <xs:element ref="ev:PreferredContactMethod" minOccurs="0"/>
         </xs:sequence>
     </xs:sequence>
</xs:restriction>

The algorithm for determining if a type is a valid restriction of other 
type as described in the spec is complicated and does not match always 
what the intuition tells you that is a valid restriction.
XSV and Saxon AFAIK implement a better algorithm for checking 
restrictions, [1] I believe. This new algorithm probably will be 
specified in XML Schema 1.1 - I think some people on the list can 
confirm/infirm that.

[1] http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Allison Bloodworth wrote:
> Hi, 
> 
> I tried to search the archives at http://lists.xml.org/archives/xml-dev/
on
> this but got a message saying: The requested URL /cgi-bin/htsearch was not
> found on this server. I also did a search of the internet but
unfortunately
> am having trouble finding info on this situation the XML Schema spec.
> 
> I would like to redefine an element (PublicEventContactType) that is
defined
> in a schema as containing a group called ContactInfo. I don't want to
> redefine the group itself, as those changes would apply to a lot of other
> elements where I don't want the change made, but just within this
> PublicEventContactType element itself. You would think that this would be
> something that XML Schema would support, but I am getting an error message
> from XML Spy 2005 saying, "The content model of complex type
> 'ev:PublicEventContactType' is not a valid restriction of the content
model
> of complex type 'ev:PublicEventContactType' and a similar error in Oxygen
> 6.2. 
> 
> Is this really not possible? You would think I could substitute the
elements
> in the group for the group in the redefine...I do understand that I could
> remove them here and put them back in in an extension, but that would
> require another schema.
> 
> Original:
> 	<xs:group name="ContactInfo">
> 		<xs:sequence>
> 			<xs:element ref="ev:ContactName" minOccurs="0"/>
> 			<xs:element ref="ev:ProfessionalAffiliations"
> minOccurs="0"/>
> 			<xs:element ref="ev:Phones" minOccurs="0"/>
> 			<xs:element ref="ev:EmailAddresses" minOccurs="0"/>
> 			<xs:element ref="ev:Addresses" minOccurs="0"/>
> 			<xs:element ref="ev:WebPages" minOccurs="0"/>
> 			<xs:element ref="ev:PreferredContactMethod"
> minOccurs="0"/>
> 		</xs:sequence>
> 	</xs:group>
> 	<xs:complexType name="PublicEventContactType">
> 		<xs:sequence>
> 			<xs:element ref="ev:PublicEventContactID"
> minOccurs="0"/>
> 			<xs:group ref="ev:ContactInfo" minOccurs="0"/>
> 			<xs:element ref="ev:PublicEventContactTypes"
> minOccurs="0"/>
> 			<xs:element ref="ev:PublicEventContactParentID"
> minOccurs="0">
> 		</xs:sequence>
> 	</xs:complexType>
> 
> Redefine:
> 		<xs:complexType name="PublicEventContactType">
> 			<xs:complexContent>
> 				<xs:restriction
> base="ev:PublicEventContactType">
> 					<xs:sequence>
> 						<!-- REMOVING THIS ELEMENT
> <xs:element ref="ev:PublicEventContactID" minOccurs="0"/> -->
> 						<xs:element
> ref="ev:ContactName" minOccurs="0"/>
> 						<xs:element
> ref="ev:ProfessionalAffiliations" minOccurs="0"/>
> 						<xs:element ref="ev:Phones"
> minOccurs="0"/>
> 						<xs:element
> ref="ev:EmailAddresses" minOccurs="0"/>
> 						<xs:element
> ref="ev:Addresses" minOccurs="0"/>
> 						<!-- REMOVING THIS ELEMENT
> <xs:element ref="ev:WebPages" minOccurs="0"/> -->
> 						<xs:element
> ref="ev:PreferredContactMethod" minOccurs="0"/>
> 						<!-- REMOVING THIS ELEMENT
> <xs:element ref="ev:PublicEventContactTypes" minOccurs="0">
> 						</xs:element> -->
> 						<!-- REMOVING THIS ELEMENT
> <xs:element ref="ev:PublicEventContactParentID" minOccurs="0">
> 						</xs:element> -->
> 					</xs:sequence>
> 				</xs:restriction>
> 			</xs:complexContent>
> 		</xs:complexType> 
> 
> Thanks for your help,
> 
> Allison Bloodworth
> Principal Administrative Analyst
> Technology Program Office
> University of California, Berkeley
> (415) 377-8243
> abloodworth@berkeley.edu
> 
> 
> 
> 
> _______________________________________________________________________
> 
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
> 
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
> 

_______________________________________________________________________

XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.

[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
subscribe: xml-dev-subscribe@lists.xml.org
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS