[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Problem using <xsd:all>
- From: Paul Stepowski <paul.stepowski@intient.com>
- To: George Cristian Bina <george@oxygenxml.com>
- Date: Tue, 02 Oct 2007 22:11:16 +1000
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]