W3C home > Mailing lists > Public > xmlschema-dev@w3.org > March 2007

RE: Error: content model non-deterministic against ..

From: Swayam Vemuri -X \(swvemuri - WIPRO at Cisco\) <swvemuri@cisco.com>
Date: Mon, 12 Mar 2007 09:34:20 +0530
Message-ID: <CD0ED6DCA2BDE145942ACA8F57E422980242373C@xmb-blr-414.apac.cisco.com>
To: "Pete Cordell" <petexmldev@tech-know-ware.com>, <xmlschema-dev@w3.org>

Thanks Pete for your response.
But I have below observations regarding your suggestion.
(1) First of all in below snippet you have used xs:any inside
xs:element.
	This is not allowed as element can not have xs:any under it.

(2) Secondly even if I don't enclose that xs:any in an element and do
the 	below

   	 <xs:sequence>
      	  <xs:element name="description"
      	           type="xs:string" minOccurs="0"/>
       	 <xs:element ref="assert" minOccurs="0"
                 maxOccurs="unbounded"/>
       	 <xs:element ref="database:Set"
                 minOccurs="1" />
          	   <xs:any namespace=" ##other"
                    processContents=" lax" minOccurs="1"/>
    	</xs:sequence>

	Iam getting below error

	Problems were detected while validating and converting the XML
Schemas
	  Error: XSD: The value '##other' of attribute 'namespace' must
be of 	one of the members types of
'http://www.w3.org/2001/XMLSchema#namespaceList_._member_._1_._item' :
URI file:/D:/swayam/PP/CustomAi2d/workspace/xyz/model/abcd_3.xsd Line
131 Column 4

Thanks
Swayam

-----Original Message-----
From: Pete Cordell [mailto:petexmldev@tech-know-ware.com] 
Sent: Sunday, March 11, 2007 6:24 PM
To: Swayam Vemuri -X (swvemuri - WIPRO at Cisco); xmlschema-dev@w3.org
Subject: Re: Error: content model non-deterministic against ..

I don't think there is a way this can be solved by just re-arranging the

components.

One suggestion is a variation on the extensbile schema patterns
suggested by 
David Orchard in one of the xml.com articles 
(http://www.xml.com/lpt/a/1329), along the lines of:

    <xs:sequence>
        <xs:element name="description"
                 type="xs:string" minOccurs="0"/>
        <xs:element ref="assert" minOccurs="0"
                 maxOccurs="unbounded"/>
        <xs:element ref="database:Set"
                 minOccurs="1" />
        <xs:element name="extension" minOccurs="0">
             <xs:any namespace=" ##other"
                    processContents=" lax" minOccurs="1"/>
        </xs:element>
    </xs:sequence>

(I tend to put extensions at the end!)

If you're going that route, you might want to implement David's full 
pattern.

HTH,

Pete.
--
=============================================
Pete Cordell
Tech-Know-Ware Ltd
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx/
http://www.codalogic.com/lmx/
=============================================

----- Original Message ----- 
From: "Swayam Vemuri -X (swvemuri - WIPRO at Cisco)"
<swvemuri@cisco.com>
To: <xmlschema-dev@w3.org>
Sent: Sunday, March 11, 2007 3:51 AM
Subject: Error: content model non-deterministic against ..


Hi,



I have a schema base1.xsd a snippet of which is as shown below.



base1.xsd

---------------

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns="http://www.cisco.com/abc/def"
xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:java="http://www.cisco.com/abc/def/java"

xmlns:database="http://www.cisco.com/abc/def/database"

targetNamespace="http://www.cisco.com/abc/def"
elementFormDefault="qualified" attributeFormDefault="unqualified">

            <xs:import namespace="http://www.cisco.com/abc/def/java"
schemaLocation="def_Java_1.xsd"/>

            <xs:import namespace="http://www.cisco.com/abc/def/database"
schemaLocation="def_DB_3.xsd"/>



..............................

<xs:complexType name="referenceType">

                        <xs:sequence>

                                    <xs:any namespace=" ##other"
processContents=" lax" minOccurs="0"/>

                                    <xs:element name="description"
type="xs:string" minOccurs="0"/>

                                    <xs:element ref="assert"
minOccurs="0" maxOccurs="unbounded"/>

                                    <xs:element ref="database:Set"
minOccurs="1" />

                        </xs:sequence>

 ...............

</xs:complexType>



I have another schema def_DB_3.xsd a database schema which I am
importing into base1.xsd

In the database schema that is in def_DB_3.xsd, I have below



            <database:complexType name="CollectionType" abstract="true"
>

                        <database:complexContent>

                                    <database:restriction
base="database:anyType">

                                                <database:attribute
name="KeyColumn" type="database:string" use="required"/>

                                                <database:attribute
name="OneToManyClassName" type="database:string" use="required"/>

                                    </database:restriction>

                        </database:complexContent>

            </database:complexType>

            <database:element name="Set">

                        <database:complexType >

                                    <database:complexContent>

                                                <database:extension
base="CollectionType"/>

                                    </database:complexContent>

                        </database:complexType>

            </database:element>



Now when I try to validate base1.xsd Iam getting below error



<xs:any namespace=" ##other" processContents=" lax" minOccurs="0"/>
makes the content model non-deterministic against

<xs:element ref=Set> Possible causes : name equality etc etc



Can any one please let me know how to solve this problem. ?

What are the various options in solving the problem ?

If I comment out <xs:any namespace=" ##other" processContents=" lax"
minOccurs="0"/>,

then validation of base1.xsd is successful.Otherwise it fails.



Thanks and regards

Swayam
Received on Monday, 12 March 2007 04:04:45 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:15:41 UTC