[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Problem using <xsd:all>

  • From: Paul Stepowski <paul.stepowski@i...>
  • To: George Cristian Bina <george@o...>
  • Date: Tue, 02 Oct 2007 22:11:16 +1000

Re:  Problem using <xsd:all>
Hi George

Here's the example I'm testing with.

Excerpt from XSD with your suggested mods:

---snip---
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.intient.com/irukandji"
    xmlns:tasklist="http://www.intient.com/irukandji"
    elementFormDefault="qualified" attributeFormDefault="unqualified">

    <xsd:element name="tasklist">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="tasklist:prerequisites" minOccurs="0"
                    maxOccurs="1" />
                <xsd:element ref="tasklist:task" minOccurs="1"
                    maxOccurs="unbounded" />
                <xsd:choice>
                    <xsd:sequence>
                        <xsd:element ref="tasklist:success" />
                        <xsd:element ref="tasklist:failure" />
                    </xsd:sequence>
                    <xsd:sequence>
                        <xsd:element ref="tasklist:failure" />
                        <xsd:element ref="tasklist:success" />
                    </xsd:sequence>
                </xsd:choice>
            </xsd:sequence>
            <xsd:attribute name="id" type="xsd:string" use="required" />
        </xsd:complexType>
    </xsd:element>
...
</xsd:schema>
---snip---

Complete XML document I'm validating against the XSD (Note that it 
contains multiple <failure> tags, which should fail):

---snip---
<?xml version="1.0"?>
<tasklist xmlns="http://www.intient.com/irukandji"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intient.com/irukandji 
file://C:/Documents and 
Settings/Admin/workspace/itsml/bin/com/intient/spx/resolver/irukandji-istml-tasklist.xsd"
    id="tasklist-loadTest1">

    <task id="dns-lookup">
        <command id="1" type="native">
            <name>nslookup</name>
            <argument genericlist-id="1"></argument>
            <success>
                <rule operator="regexp">
                    <stdout>(.+)Address: (.+)</stdout>
                </rule>
            </success>
            <failure>
                <rule operator="true" />
            </failure>
        </command>
        <success>
            <rule operator="equals">
                <result command-id="1" success="true" />
            </rule>
        </success>
        <failure>
            <rule operator="true" />
        </failure>
    </task>
    <success>
        <rule operator="equals">
            <result task-id="dns-lookup" success="true" />
        </rule>
    </success>
    <failure>
        <rule operator="true" />
    </failure>
    <failure>
        <rule operator="true" />
    </failure>
    <failure>
        <rule operator="true" />
    </failure>
</tasklist>
---snip---

This XML document is successfully validated using JAXB.

Any ideas?

Thanks,

Paul


George Cristian Bina wrote:
> Hi Paul,
>
> The code fragment I posted allows only
>
> <success/>
> <failure/>
>
> and
>
> <failure/>
> <success/>
>
> How did you get to the conclusion that it allows multiple instances of 
> failure? It may be possible that you are embedding that code fragment 
> in another particle that can appear multiple times. A short but 
> complete schema should help to identify exactly what is wrong, in 
> general you will identify that yourself while creating the short but 
> complete example.
>
> Best Regards,
> George
> ---------------------------------------------------------------------
> George Cristian Bina - http://aboutxml.blogspot.com/
> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
> http://www.oxygenxml.com
>
>
> Paul Stepowski wrote:
>> Hi George,
>>
>> This seems closer but still allows multiple <success> or <failure> tags.
>>
>> That is, I require either:
>>
>> <tasklist>
>>  <success/>
>>  <failure/>
>> </tasklist>
>>
>> or:
>>
>> <tasklist>
>>  <failure/>
>>  <success/>
>> </tasklist>
>>
>> But your suggested schema still allows:
>>
>> <tasklist>
>>  <success/>
>>  <failure/>
>>  <failure/>
>>  <failure/>
>>  <failure/>
>> </tasklist>
>>
>> etc.
>>
>> I've tried experimenting with various combinations of minOccurs and 
>> maxOccurs but I still can't nail this.
>>
>> Thanks,
>>
>> Paul
>>
>>
>> George Cristian Bina wrote:
>>> Hi Paul,
>>>
>>> Use a choice
>>> (success,failure)|(failure,success)
>>>
>>> in XML Schema:
>>>
>>> <xsd:choice>
>>>   <xsd:sequence>
>>>     <xsd:element ref="tasklist:success"/>
>>>     <xsd:element ref="tasklist:failure"/>
>>>   </xsd:sequence>
>>>   <xsd:sequence>
>>>     <xsd:element ref="tasklist:failure"/>
>>>     <xsd:element ref="tasklist:success"/>
>>>   </xsd:sequence>
>>> </xsd:choice>
>>>
>>> Best Regards,
>>> George
>>> ---------------------------------------------------------------------
>>> George Cristian Bina - http://aboutxml.blogspot.com/
>>> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
>>> http://www.oxygenxml.com
>>>
>>>
>>> Paul Stepowski wrote:
>>>> Dennis Sterzenbach wrote:
>>>>> Hi Paul!
>>>>>
>>>>> Paul Stepowski wrote:
>>>>> <snip />
>>>>>>   <xsd:element name="task">
>>>>>>     <xsd:complexType>
>>>>>>       <xsd:sequence>
>>>>>>         <xsd:element ref="tasklist:prerequisites" minOccurs="0"
>>>>>>           maxOccurs="1" />
>>>>>>         <xsd:all>
>>>>>>           <xsd:element ref="tasklist:success" minOccurs="1"
>>>>>>             maxOccurs="1" />
>>>>>>           <xsd:element ref="tasklist:failure" minOccurs="1"
>>>>>>             maxOccurs="1" />
>>>>>>         </xsd:all>
>>>>>>       </xsd:sequence>
>>>>>>       <xsd:attribute name="id" type="xsd:string" use="required" />
>>>>>>     </xsd:complexType>
>>>>>>   </xsd:element>
>>>>> <snip />
>>>>>> "The content of 'sequence' must match (annotation?, (element | 
>>>>>> group | choice |
>>>>>> sequence | any)*). A problem was found starting at: all."
>>>>>>
>>>>>> According to the w3c, all is a valid tag.  Can anyone shed some 
>>>>>> light on this error?
>>>>> These are valid tags, but unfortunately not in that order.
>>>>> As far as I know you can't use <xsd:all> inside a sequence:
>>>>>
>>>>> "Parent elements: group, complexType, restriction (both simpleContent
>>>>> and complexContent), extension (both simpleContent and 
>>>>> complexContent)"
>>>>>
>>>>> Best regards
>>>>> -- Dennis Sterzenbach
>>>>
>>>> Thanks Dennis,
>>>>
>>>> My next question is then, can I achieve the same effect with a 
>>>> different syntax?
>>>>  I need to specify <success> AND <failure> both occuring once each 
>>>> (in any
>>>> order).
>>>>
>>>> Thanks,
>>>>
>>>> Paul
>>>>
>>>> _______________________________________________________________________ 
>>>>
>>>>
>>>> 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@l...
>>>> subscribe: xml-dev-subscribe@l...
>>>> 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@l...
>> subscribe: xml-dev-subscribe@l...
>> 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]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.