code_junkie

XSD - How to describe an unordered set of element types where the first element must appear first in the sequence?

Nov 13th, 2011
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. <xsd:complexType name="Application">
  2. <xsd:sequence>
  3. <xsd:element ref="Name"></xsd:element>
  4. <xsd:all>
  5. <xsd:element ref="ADD"></xsd:element>
  6. <xsd:element ref="DELETE"></xsd:element>
  7. </xsd:all>
  8. </xsd:sequence>
  9. </xsd:complexType>
  10.  
  11. <Application>
  12. <NAME>
  13. <DELETE>
  14. <ADD>
  15. </Application>
  16.  
  17. <Application>
  18. <NAME>
  19. <DELETE>
  20. <ADD>
  21. <DELETE> <!--cannot appear twice-->
  22. </Application>
  23.  
  24. <?xml version="1.0"?>
  25. <xs:schema targetNamespace="http://someNamespace" xmlns="http://someNamespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  26. <xs:element name="Root" type="Application">
  27. </xs:element>
  28.  
  29. <xs:complexType name="Application">
  30. <xs:sequence>
  31. <xs:element ref="Name"></xs:element>
  32. <xs:choice maxOccurs="unbounded">
  33. <xs:element ref="ADD"></xs:element>
  34. <xs:element ref="DELETE"></xs:element>
  35. </xs:choice>
  36. </xs:sequence>
  37. </xs:complexType>
  38.  
  39. <xs:element name="Name"/>
  40. <xs:element name="ADD"/>
  41. <xs:element name="DELETE"/>
  42. </xs:schema>
  43.  
  44. <ns0:Root xmlns:ns0="http://someNamespace">
  45. <ns0:Name />
  46. <ns0:ADD />
  47. <ns0:ADD />
  48. <ns0:DELETE />
  49. <ns0:ADD />
  50. <ns0:DELETE />
  51. <ns0:DELETE />
  52. </ns0:Root>
  53.  
  54. <ns0:Root xmlns:ns0="http://someNamespace">
  55. <ns0:ADD />
  56. <ns0:ADD />
  57. <ns0:DELETE />
  58. <ns0:ADD />
  59. <ns0:DELETE />
  60. <ns0:DELETE />
  61. </ns0:Root>
Add Comment
Please, Sign In to add comment