- From: <andrew.hodge@abs.gov.au>
- Date: Tue, 30 Aug 2005 15:52:58 +1000
- To: xmlschema-dev@w3.org
- Cc: ht@inf.ed.ac.uk
Henry In response to : What you have is a classic case of a complex content model restricting a starred wildcard, which is allowed, but only via a pretty obscure route through the REC [1]. MS validators used to have a problem with this but I think that got fixed some time back. What validator are you using? ht Previously we have been using Microsoft® XML Core Services (MSXML) 4.0 Service Pack 1 (SP1) and XML Spy Version 5 Release 2 which passed this type of restriction. The restriction fails with Microsoft® XML Core Services (MSXML) 4.0 Service Pack 2 (SP2) and XML Spy Version 5 Release 3. The MSXML error is : Error Description msxml4.dll: /schema[1]/complexType [position() = 2 and @name='RestTestEventPayload'] Invalid particle derivation by restriction. Base type : '{urn:abs.gov.au/BusinessProcessManagement}TestEventPayload' Derived type : '{urn:abs.gov.au/BusinessProcessManagement}RestTestEventPayload' ErrorNumber 213 The XML Spy error is : "The content model of complex type tns:RestEventPayload is not a vaild restriction of the content model tns:TestEventPayload" Regards Andrew Hodge Original Query Hi, my name is Andrew Hodge and I am an IT Architecture consultant for the Australian Bureau of Statistics. We have recently found some issues with our use of restrictions when we have moved to using a new suite of schema validators. We have a federated hierarchical schema model to support Business Process Management. Below are some simple test cases we have constructed to illustrate the issues we have come across. I had a look at Schemas Part 0 and Part 1 but did not see any obvious guidance on these issues. I was wondering if anyone could point me to an information source or comment on aspects of the content model for these types of restrictions. Regards Andrew Hodge Australian Bureau of Statistics email - andrew.hodge@abs.gov.au This is an example of a case that has been working but now validation fails. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:admin=" urn:abs.gov.au/BusinessAdministrationSystems" xmlns:tns=" urn:abs.gov.au/BusinessProcessManagement" targetNamespace=" urn:abs.gov.au/BusinessProcessManagement" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="TestEventPayload"> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="RestTestEventPayload"> <xs:complexContent> <xs:restriction base="tns:TestEventPayload"> <xs:sequence> <xs:element name="test1"/> <xs:element name="test2"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema>plexType> </xs:schema> It now fails with "The content model of complex type tns:RestEventPayload is not a vaild restriction of the content model tns:TestEventPayload" The following also fails. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:admin=" urn:abs.gov.au/BusinessAdministrationSystems" xmlns:tns=" urn:abs.gov.au/BusinessProcessManagement" targetNamespace=" urn:abs.gov.au/BusinessProcessManagement" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="TestEventPayload"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:any namespace="##any" processContents="lax"/> </xs:sequence> </xs:complexType> <xs:complexType name="RestTestEventPayload"> <xs:complexContent> <xs:restriction base="tns:TestEventPayload"> <xs:sequence> <xs:element name="test1"/> <xs:element name="test2"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema>plexType> </xs:schema> If I comment out element test2 the validation passes <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:admin=" urn:abs.gov.au/BusinessAdministrationSystems" xmlns:tns=" urn:abs.gov.au/BusinessProcessManagement" targetNamespace=" urn:abs.gov.au/BusinessProcessManagement" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="TestEventPayload"> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="RestTestEventPayload"> <xs:complexContent> <xs:restriction base="tns:TestEventPayload"> <xs:sequence> <xs:element name="test1"/> <!-- <xs:element name="test2"/> --> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema> Interestingly if I change the schema to using choice instead of sequence in TestEventPayload then it passes. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:admin=" urn:abs.gov.au/BusinessAdministrationSystems" xmlns:tns=" urn:abs.gov.au/BusinessProcessManagement" targetNamespace=" urn:abs.gov.au/BusinessProcessManagement" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="TestEventPayload"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:any namespace="##any" processContents="lax"/> </xs:choice> </xs:complexType> <xs:complexType name="RestTestEventPayload"> <xs:complexContent> <xs:restriction base="tns:TestEventPayload"> <xs:sequence> <xs:element name="test1"/> <xs:element name="test2"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema> But it appears that this is not processed consistently in a hierarchical schema structure. ----------------------------------------------- ABS Web Site: www.abs.gov.au
Received on Tuesday, 30 August 2005 05:53:09 UTC