aspose file tools*
The moose likes Product and Other Certifications and the fly likes question - Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Product and Other Certifications
Bookmark "question - "all" group " Watch "question - "all" group " New topic
Author

question - "all" group

Tong Chen
Ranch Hand

Joined: Apr 26, 2002
Posts: 1011
Hi All,
I have a question about <all>.
I used the IBM WebShpere Application Developer (WSAD) studio to the following:
I created an XML schema (po-use-all.xsd):
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>

<xsd:element name="comment" type="xsd:string"/>

<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="xsd:string"/>
<xsd:element name="billTo" type="xsd:string"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd ate"/>
</xsd:complexType>
</xsd:schema>
And then I created an instance document (po-use-all.xml):
<?xml version="1.0" encoding="UTF-8"?>
<purchaseOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml_schema/po-use-all.xsd">
<shipTo>shpping address</shipTo>
<billTo>billing address</billTo>
<comment>This is comment</comment>
<items>items string</items>
</purchaseOrder>
When I switch the places of <shipTo> and <billTo>, the WSAD gives an error.
Anyone has any ideas? Thanks,


Tong Chen (Seattle USA)<br />SCJP,SCWCD,SCDJWS,IBM XML,MCP.NET,MCAD.NET,MCSD.NET
Dan Drillich
Ranch Hand

Joined: Jul 09, 2001
Posts: 1180
The xsd:sequence group requires that each element in the group appear exactly once, in the specified order.
From - http://www.ibiblio.org/xml/books/bible2/chapters/ch24.html#d1e2436
Cheers,
Dan


William Butler Yeats: All life is a preparation for something that probably will never happen. Unless you make it happen.
Jayadev Pulaparty
Ranch Hand

Joined: Mar 25, 2002
Posts: 662
Tong,
Dan already gave you the reason as to why you are facing the problem. A little addition to that -
<xsd:sequence>
<xsd:element name="ele1" type="xsd:string"
minOccurs="2" maxOccurs="unbounded"/>
<xsd:element name="ele2" type="xsd:string"/>
</xsd:sequence>
If this is the case, you need to have 2 ele1s followed by an ele2 (default value for minOccurs and maxOccurs is 1). Hence you can have multiple occurances of the same element, but all of them should follow the sequence of the bigger group defined by <xsd:sequence>.
Tong Chen
Ranch Hand

Joined: Apr 26, 2002
Posts: 1011
Hi Dan & Jayadev, Thank you both!
Roseanne Zhang
Ranch Hand

Joined: Nov 14, 2000
Posts: 1953
jayadev
Your explanation of sequence is wrong, go to the link dan provided, please!
The xsd:all group requires that each element in the group must occur at most once, but that order is not important.
The xsd:choice group specifies that any one element from the group should appear. It can also be used to say that between N and M elements from the group should appear in any order.
The xsd:sequence group requires that each element in the group appear exactly once, in the specified order.

I had doubt when I first read it, but did not have time to find out. Now, I'm clear!
Tony, you "Thank you both!", however, they are saying different and conflict things.
[ November 09, 2002: Message edited by: Roseanne Zhang ]
Jayadev Pulaparty
Ranch Hand

Joined: Mar 25, 2002
Posts: 662
Roseanne,
I'm using the xsv schema validator given by Roger Costello at xfront website. I tried it on one of the examples, excerpts shown here -
================================================
<xsd:element name="globalElement1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="localElement3" type="xsd:string" minOccurs="2"
maxOccurs="unbounded"/>
<xsd:element name="localElement4" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="jaya" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
================================================
<globalElement1 jaya="jaya1">
<localElement3/>
<localElement3/>
<localElement4/>
</globalElement1>
=================================================
This got validated successfully. Seems like the schema validator is not validating as per the rules laid out by W3C !!!
I think its always good to practice things differently by trying to go against the rules and learn in the process. What i just wanted to say was that the posting i made previously was based on the above example i tried.
BTW, Tony's appreciation was merely based on the fact that we guys attempted to resolve the problem he was having, not whether one was correct or not Its always a nice gesture to appreciate any help. I hope he is going to post a thank you note to you also
Have a nice time.
Jayadev Pulaparty
Ranch Hand

Joined: Mar 25, 2002
Posts: 662
Roseanne,
My interpretation of the stuff is wrong. It would have been awfully nice had you given details as to why it was wrong. I'm trying to put my explanation below -
Dan quote was correct -
The xsd:sequence group requires that each element in the group appear exactly once, in the specified order.

The example i gave thinking it to be violating the above statement is given here -
<xsd:sequence>
<xsd:element name="ele1" type="xsd:string"
minOccurs="2" maxOccurs="unbounded"/>
<xsd:element name="ele2" type="xsd:string"/>
</xsd:sequence>

The irony is that my example is still in compliance with Dan's statement, but the way in which i thought it out was wrong.
If we have one more look at Dan's quote,
The xsd:sequence group requires that each element in the group appear exactly once(IN THE SCHEMA), in the specified order.

Hence an attempt like the below(repeating the ele1 declaration) is violating the above statement -
<xsd:sequence>
<xsd:element name="ele1" type="xsd:string"
minOccurs="2" maxOccurs="unbounded"/>
<xsd:element name="ele2" type="xsd:string"/>
</xsd:sequence>
<xsd:element name="ele1" type="xsd:string"
minOccurs="2" maxOccurs="unbounded"/>

I hope i'm upto the point this time. Please correct me if i'm not.
Thanks.
Roseanne Zhang
Ranch Hand

Joined: Nov 14, 2000
Posts: 1953
Thank you, jayadev
I think you are correct. I was confused by the terminologies they used.
Now, it is clearer after your explanation. I need to find time to practice a little more.
Roseanne
Jayadev Pulaparty
Ranch Hand

Joined: Mar 25, 2002
Posts: 662
Also a little addition to this -
<xsd:sequence>
<xsd:element name="ele1" type="xsd:string"
minOccurs="2" maxOccurs="unbounded"/>
<xsd:element name="ele2" type="xsd:string"/>
</xsd:sequence>
<xsd:element name="ele1" type="xsd:string"
minOccurs="2" maxOccurs="unbounded"/>

I only get a schema warning for the above attempt with xsv.
Also Roger's tutorial xml-schemas2.ppt on page.4 has the following as a valid thing when explaining about namespaces stuff.
<xsd:element name="foo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="bar" type="xsd:string"/>
...
<xsd:element name="bar" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType
</xsd:element>
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: question - "all" group