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] 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@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