|
View:
New views
9 Messages
—
Rating Filter:
Alert me
|
|
|
xsd ambigiousCan anyone help with
this XSD please? It doesnt seem to work?
Essentially i want
to ensure that if "E" or "F" are populated then "D" is populated before them.
The rest of the elements can appear in any order and any amount of
times.
<?xml
version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema>
Many Thanks,
Andy
|
|
|
Re: xsd ambigiousHi Andy,
You can have a first any of a, b, c any number of times and then follow them optionally with d followed by any of a, b, c, e, f any number of times: <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:sequence> <xsd:choice maxOccurs="unbounded" minOccurs="0"> <xsd:element ref="a"/> <xsd:element ref="b"/> <xsd:element ref="c"/> </xsd:choice> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice maxOccurs="unbounded" minOccurs="0"> <xsd:element ref="a"/> <xsd:element ref="b"/> <xsd:element ref="c"/> <xsd:element ref="e"/> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com Neill, Andrew wrote: > Can anyone help with this XSD please? It doesnt seem to work? > Essentially i want to ensure that if "E" or "F" are populated then "D" > is populated before them. The rest of the elements can appear in any > order and any amount of times. > > <?xml version="1.0" encoding="UTF-8"?> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <xsd:element name="element"> > <xsd:complexType> > <xsd:choice maxOccurs="unbounded"> > <xsd:element ref="a" minOccurs="0"/> > <xsd:element ref="b" minOccurs="0"/> > <xsd:element ref="c" minOccurs="0"/> > <xsd:sequence> > <xsd:element ref="d"/> > <xsd:element ref="e"/> > </xsd:sequence> > <xsd:sequence> > <xsd:element ref="d"/> > <xsd:element ref="f"/> > </xsd:sequence> > </xsd:choice> > </xsd:complexType> > </xsd:element> > <xsd:element name="a"/> > <xsd:element name="b"/> > <xsd:element name="c"/> > <xsd:element name="d"/> > <xsd:element name="e"/> > <xsd:element name="f"/> > </xsd:schema> > > Many Thanks, > Andy |
|
|
Re: xsd ambigiousHi Andy,
Does something like the following work? ... <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice> <xsd:sequence> <xsd:element ref="e"/> <xsd:element ref="f" minOccurs="0"/> </xsd:sequence> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> ... HTH, Pete. -- ============================================= Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using XML C++ data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ============================================= ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: <xmlschema-dev@...> Sent: Wednesday, October 07, 2009 5:10 PM Subject: xsd ambigious Can anyone help with this XSD please? It doesnt seem to work? Essentially i want to ensure that if "E" or "F" are populated then "D" is populated before them. The rest of the elements can appear in any order and any amount of times. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Many Thanks, Andy |
|
|
RE: xsd ambigiousHi Pete,
That works. I don't know how I missed that. Many Thanks, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 08 October 2009 11:07 To: Neill, Andrew; xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, Does something like the following work? ... <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice> <xsd:sequence> <xsd:element ref="e"/> <xsd:element ref="f" minOccurs="0"/> </xsd:sequence> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> ... HTH, Pete. -- ============================================= Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using XML C++ data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ============================================= ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: <xmlschema-dev@...> Sent: Wednesday, October 07, 2009 5:10 PM Subject: xsd ambigious Can anyone help with this XSD please? It doesnt seem to work? Essentially i want to ensure that if "E" or "F" are populated then "D" is populated before them. The rest of the elements can appear in any order and any amount of times. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Many Thanks, Andy |
|
|
RE: xsd ambigiousHi George,
Thanks for that. I have been looking at this schema too long and missed that. Thanks for your help. Andy -----Original Message----- From: George Cristian Bina [mailto:george@...] Sent: 08 October 2009 11:07 To: Neill, Andrew Cc: xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, You can have a first any of a, b, c any number of times and then follow them optionally with d followed by any of a, b, c, e, f any number of times: <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:sequence> <xsd:choice maxOccurs="unbounded" minOccurs="0"> <xsd:element ref="a"/> <xsd:element ref="b"/> <xsd:element ref="c"/> </xsd:choice> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice maxOccurs="unbounded" minOccurs="0"> <xsd:element ref="a"/> <xsd:element ref="b"/> <xsd:element ref="c"/> <xsd:element ref="e"/> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com Neill, Andrew wrote: > Can anyone help with this XSD please? It doesnt seem to work? > Essentially i want to ensure that if "E" or "F" are populated then "D" > is populated before them. The rest of the elements can appear in any > order and any amount of times. > > <?xml version="1.0" encoding="UTF-8"?> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <xsd:element name="element"> > <xsd:complexType> > <xsd:choice maxOccurs="unbounded"> > <xsd:element ref="a" minOccurs="0"/> > <xsd:element ref="b" minOccurs="0"/> > <xsd:element ref="c" minOccurs="0"/> > <xsd:sequence> > <xsd:element ref="d"/> > <xsd:element ref="e"/> > </xsd:sequence> > <xsd:sequence> > <xsd:element ref="d"/> > <xsd:element ref="f"/> > </xsd:sequence> > </xsd:choice> > </xsd:complexType> > </xsd:element> > <xsd:element name="a"/> > <xsd:element name="b"/> > <xsd:element name="c"/> > <xsd:element name="d"/> > <xsd:element name="e"/> > <xsd:element name="f"/> > </xsd:schema> > > Many Thanks, > Andy |
|
|
Re: xsd ambigiousHi Andy,
That's great. Actually, I don't know whether you noticed already, but looking at it again, I don't think the minOccurs="0" on the xsd:sequence is required. HTH, Pete. ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: "Pete Cordell" <petexmldev@...>; <xmlschema-dev@...> Sent: Thursday, October 08, 2009 11:11 AM Subject: RE: xsd ambigious Hi Pete, That works. I don't know how I missed that. Many Thanks, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 08 October 2009 11:07 To: Neill, Andrew; xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, Does something like the following work? ... <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice> <xsd:sequence> <xsd:element ref="e"/> <xsd:element ref="f" minOccurs="0"/> </xsd:sequence> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> ... HTH, Pete. -- ============================================= Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using XML C++ data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ============================================= ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: <xmlschema-dev@...> Sent: Wednesday, October 07, 2009 5:10 PM Subject: xsd ambigious Can anyone help with this XSD please? It doesnt seem to work? Essentially i want to ensure that if "E" or "F" are populated then "D" is populated before them. The rest of the elements can appear in any order and any amount of times. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Many Thanks, Andy |
|
|
RE: xsd ambigiousHi Pete,
Thanks for that but I thought about it and although I wanted d to appear before e or f, it is possible to submit an xml file with none of these fields populated so I left it in there. Cheers, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 09 October 2009 09:33 To: Neill, Andrew Cc: xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, That's great. Actually, I don't know whether you noticed already, but looking at it again, I don't think the minOccurs="0" on the xsd:sequence is required. HTH, Pete. ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: "Pete Cordell" <petexmldev@...>; <xmlschema-dev@...> Sent: Thursday, October 08, 2009 11:11 AM Subject: RE: xsd ambigious Hi Pete, That works. I don't know how I missed that. Many Thanks, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 08 October 2009 11:07 To: Neill, Andrew; xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, Does something like the following work? ... <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice> <xsd:sequence> <xsd:element ref="e"/> <xsd:element ref="f" minOccurs="0"/> </xsd:sequence> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> ... HTH, Pete. -- ============================================= Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using XML C++ data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ============================================= ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: <xmlschema-dev@...> Sent: Wednesday, October 07, 2009 5:10 PM Subject: xsd ambigious Can anyone help with this XSD please? It doesnt seem to work? Essentially i want to ensure that if "E" or "F" are populated then "D" is populated before them. The rest of the elements can appear in any order and any amount of times. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Many Thanks, Andy |
|
|
Re: xsd ambigiousHi Andy,
In that case it might be more aesthetic to move the minOccurs to the outer xsd:choice so you get: <xsd:choice minOccurs="0" maxOccurs="unbounded"> Pete. ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: "Pete Cordell" <petexmldev@...> Cc: <xmlschema-dev@...> Sent: Friday, October 09, 2009 9:35 AM Subject: RE: xsd ambigious Hi Pete, Thanks for that but I thought about it and although I wanted d to appear before e or f, it is possible to submit an xml file with none of these fields populated so I left it in there. Cheers, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 09 October 2009 09:33 To: Neill, Andrew Cc: xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, That's great. Actually, I don't know whether you noticed already, but looking at it again, I don't think the minOccurs="0" on the xsd:sequence is required. HTH, Pete. ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: "Pete Cordell" <petexmldev@...>; <xmlschema-dev@...> Sent: Thursday, October 08, 2009 11:11 AM Subject: RE: xsd ambigious Hi Pete, That works. I don't know how I missed that. Many Thanks, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 08 October 2009 11:07 To: Neill, Andrew; xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, Does something like the following work? ... <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice> <xsd:sequence> <xsd:element ref="e"/> <xsd:element ref="f" minOccurs="0"/> </xsd:sequence> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> ... HTH, Pete. -- ============================================= Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using XML C++ data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ============================================= ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: <xmlschema-dev@...> Sent: Wednesday, October 07, 2009 5:10 PM Subject: xsd ambigious Can anyone help with this XSD please? It doesnt seem to work? Essentially i want to ensure that if "E" or "F" are populated then "D" is populated before them. The rest of the elements can appear in any order and any amount of times. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Many Thanks, Andy |
|
|
RE: xsd ambigiousHi Pete,
Good point. That sounds like a good idea. Cheers for that, Andy -----Original Message----- From: xmlschema-dev-request@... [mailto:xmlschema-dev-request@...] On Behalf Of Pete Cordell Sent: 09 October 2009 10:03 To: Neill, Andrew Cc: xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, In that case it might be more aesthetic to move the minOccurs to the outer xsd:choice so you get: <xsd:choice minOccurs="0" maxOccurs="unbounded"> Pete. ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: "Pete Cordell" <petexmldev@...> Cc: <xmlschema-dev@...> Sent: Friday, October 09, 2009 9:35 AM Subject: RE: xsd ambigious Hi Pete, Thanks for that but I thought about it and although I wanted d to appear before e or f, it is possible to submit an xml file with none of these fields populated so I left it in there. Cheers, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 09 October 2009 09:33 To: Neill, Andrew Cc: xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, That's great. Actually, I don't know whether you noticed already, but looking at it again, I don't think the minOccurs="0" on the xsd:sequence is required. HTH, Pete. ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: "Pete Cordell" <petexmldev@...>; <xmlschema-dev@...> Sent: Thursday, October 08, 2009 11:11 AM Subject: RE: xsd ambigious Hi Pete, That works. I don't know how I missed that. Many Thanks, Andy -----Original Message----- From: Pete Cordell [mailto:petexmldev@...] Sent: 08 October 2009 11:07 To: Neill, Andrew; xmlschema-dev@... Subject: Re: xsd ambigious Hi Andy, Does something like the following work? ... <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence minOccurs="0"> <xsd:element ref="d"/> <xsd:choice> <xsd:sequence> <xsd:element ref="e"/> <xsd:element ref="f" minOccurs="0"/> </xsd:sequence> <xsd:element ref="f"/> </xsd:choice> </xsd:sequence> ... HTH, Pete. -- ============================================= Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using XML C++ data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ============================================= ----- Original Message ----- From: "Neill, Andrew" <andy.neill@...> To: <xmlschema-dev@...> Sent: Wednesday, October 07, 2009 5:10 PM Subject: xsd ambigious Can anyone help with this XSD please? It doesnt seem to work? Essentially i want to ensure that if "E" or "F" are populated then "D" is populated before them. The rest of the elements can appear in any order and any amount of times. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="element"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="a" minOccurs="0"/> <xsd:element ref="b" minOccurs="0"/> <xsd:element ref="c" minOccurs="0"/> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="e"/> </xsd:sequence> <xsd:sequence> <xsd:element ref="d"/> <xsd:element ref="f"/> </xsd:sequence> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="a"/> <xsd:element name="b"/> <xsd:element name="c"/> <xsd:element name="d"/> <xsd:element name="e"/> <xsd:element name="f"/> </xsd:schema> Many Thanks, Andy |
| Free embeddable forum powered by Nabble | Forum Help |