ui.xsd 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <schema
  3. xmlns="http://www.w3.org/2001/XMLSchema"
  4. xml:lang="EN"
  5. targetNamespace="http://msqr.us/xsd/ieat"
  6. xmlns:eat="http://msqr.us/xsd/ieat"
  7. xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
  8. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  9. elementFormDefault="qualified"
  10. attributeFormDefault="unqualified">
  11. <include schemaLocation="core.xsd"/>
  12. <element name="ui" type="eat:ui-data"/>
  13. <element name="edit" type="eat:ui-edit"/>
  14. <element name="search-results" type="eat:ui-search-results"/>
  15. <element name="session-data" type="eat:ui-session-data"/>
  16. <complexType name="ui-base">
  17. <attribute name="mode" type="xs:string" use="optional"/>
  18. </complexType>
  19. <complexType name="ui-data">
  20. <complexContent>
  21. <extension base="eat:ui-base">
  22. <sequence>
  23. <element name="search-results" type="eat:ui-search-results" minOccurs="0"/>
  24. <element name="meta-support" type="eat:ui-meta-support" minOccurs="0"/>
  25. <element name="base" type="eat:base"
  26. minOccurs="0" maxOccurs="unbounded"/>
  27. <element name="course" type="eat:course"
  28. minOccurs="0" maxOccurs="unbounded"/>
  29. <element name="difficulty" type="eat:difficulty"
  30. minOccurs="0" maxOccurs="unbounded"/>
  31. <element name="ethnicity" type="eat:ethnicity"
  32. minOccurs="0" maxOccurs="unbounded"/>
  33. <element name="ingredient" type="eat:ingredient"
  34. minOccurs="0" maxOccurs="unbounded"/>
  35. <element name="prep-time" type="eat:prep-time"
  36. minOccurs="0" maxOccurs="unbounded"/>
  37. <element name="recipe" type="eat:recipe"
  38. minOccurs="0" maxOccurs="unbounded"/>
  39. <element name="system" type="eat:system"
  40. minOccurs="0" maxOccurs="unbounded"/>
  41. <element name="unit" type="eat:unit"
  42. minOccurs="0" maxOccurs="unbounded"/>
  43. <element name="meal" type="eat:meal"
  44. minOccurs="0" maxOccurs="unbounded"/>
  45. </sequence>
  46. </extension>
  47. </complexContent>
  48. </complexType>
  49. <complexType name="ui-edit">
  50. <complexContent>
  51. <extension base="eat:ui-base">
  52. <sequence>
  53. <element name="ingredient" type="eat:ingredient" minOccurs="0"/>
  54. <element name="recipe" type="eat:recipe" minOccurs="0"/>
  55. <element name="user" type="eat:user" minOccurs="0"/>
  56. <element name="meal" type="eat:meal" minOccurs="0"/>
  57. <element name="meal-recipe" type="eat:meal-recipe" minOccurs="0"/>
  58. <element name="search-results" type="eat:ui-search-results" minOccurs="0"/>
  59. </sequence>
  60. <attribute name="ignoreWarnings" type="xs:boolean" use="optional" default="false"/>
  61. <attribute name="refresh" type="xs:boolean" use="optional" default="false"/>
  62. </extension>
  63. </complexContent>
  64. </complexType>
  65. <complexType name="ui-index">
  66. <sequence>
  67. <element name="index-section" minOccurs="0" maxOccurs="unbounded">
  68. <complexType>
  69. <attribute name="index-key" type="xs:string" use="required"/>
  70. <attribute name="count" type="xs:int" use="optional" default="0"/>
  71. <attribute name="selected" type="xs:boolean" use="optional" default="false"/>
  72. </complexType>
  73. </element>
  74. </sequence>
  75. </complexType>
  76. <complexType name="recipe-search-criteria">
  77. <sequence>
  78. <element name="name" type="string" minOccurs="0"/>
  79. <element name="simpleQuery" type="string" minOccurs="0"/>
  80. <element name="ingredient" type="eat:recipe-ingredient"
  81. minOccurs="0" maxOccurs="unbounded">
  82. <annotation><documentation>
  83. To search for recipes containing sets of ingredients.
  84. </documentation></annotation>
  85. </element>
  86. <element name="advanced" type="eat:advanced-search-criteria"
  87. minOccurs="0" maxOccurs="unbounded"/>
  88. </sequence>
  89. <attribute name="mode" type="xs:string"/>
  90. </complexType>
  91. <complexType name="advanced-search-criteria">
  92. <sequence>
  93. <element name="query" type="xs:string" minOccurs="0"/>
  94. </sequence>
  95. <attribute name="type" type="xs:string" use="required"/>
  96. <attribute name="op" type="xs:short" use="required"/>
  97. <attribute name="choice" type="xs:string" use="optional"/>
  98. <attribute name="required" type="xs:boolean" use="optional" default="false"/>
  99. </complexType>
  100. <complexType name="ui-search-results">
  101. <complexContent>
  102. <extension base="eat:ui-base">
  103. <sequence>
  104. <element name="ui-index" type="eat:ui-index" minOccurs="0"/>
  105. <element name="pagination" type="eat:ui-pagination-support" minOccurs="0"/>
  106. <element name="recipe-criteria" type="eat:recipe-search-criteria"
  107. minOccurs="0"/>
  108. <element name="recipe" type="eat:ui-recipe-match"
  109. minOccurs="0" maxOccurs="unbounded"/>
  110. <element name="ingredient" type="eat:ui-ingredient-match"
  111. minOccurs="0" maxOccurs="unbounded"/>
  112. <element name="user" type="eat:ui-user-match"
  113. minOccurs="0" maxOccurs="unbounded"/>
  114. </sequence>
  115. <attribute name="totalResults" type="xs:int" use="required"/>
  116. <attribute name="pageSize" type="xs:int" use="optional"/>
  117. <attribute name="pageStart" type="xs:int" use="required"/>
  118. </extension>
  119. </complexContent>
  120. </complexType>
  121. <complexType name="ui-recipe-match" >
  122. <complexContent>
  123. <extension base="eat:recipe"/>
  124. </complexContent>
  125. </complexType>
  126. <complexType name="ui-ingredient-match" >
  127. <complexContent>
  128. <extension base="eat:ingredient"/>
  129. </complexContent>
  130. </complexType>
  131. <complexType name="ui-user-match" >
  132. <complexContent>
  133. <extension base="eat:user"/>
  134. </complexContent>
  135. </complexType>
  136. <complexType name="ui-session-data">
  137. <sequence>
  138. <element name="acting-user" type="eat:user" minOccurs="0"/>
  139. </sequence>
  140. <attribute name="admin" type="xs:boolean"/>
  141. </complexType>
  142. <complexType name="ui-pagination-support">
  143. <sequence>
  144. <element name="allowablePageSize" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
  145. </sequence>
  146. <attribute name="defaultPageSize" type="xs:int" use="required"/>
  147. <attribute name="allowUnlimited" type="xs:boolean" use="optional" default="false"/>
  148. </complexType>
  149. <!--
  150. A generic meta data support object for passing configuration
  151. settings from the application to the front end.
  152. -->
  153. <complexType name="ui-meta-support">
  154. <sequence>
  155. <element name="meta" type="eat:ui-parameter" minOccurs="0" maxOccurs="unbounded"/>
  156. </sequence>
  157. </complexType>
  158. <xs:complexType name="ui-parameter">
  159. <xs:simpleContent>
  160. <xs:extension base="xs:string">
  161. <xs:attribute name="key" type="xs:string" use="required"/>
  162. </xs:extension>
  163. </xs:simpleContent>
  164. </xs:complexType>
  165. </schema>