itop_design.xsd 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. <?xml version="1.0"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  3. <xsd:element name="itop_design">
  4. <xsd:complexType>
  5. <xsd:sequence>
  6. <!-- Classes [0, N] -->
  7. <xsd:element name="classes" minOccurs="0">
  8. <xsd:complexType>
  9. <xsd:sequence>
  10. <xsd:element name="class" minOccurs="0" maxOccurs="unbounded">
  11. <xsd:complexType>
  12. <xsd:sequence>
  13. <xsd:element name="properties">
  14. <xsd:complexType>
  15. <xsd:sequence>
  16. <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
  17. <xsd:element name="naming">
  18. <xsd:complexType>
  19. <xsd:sequence>
  20. <xsd:element name="attributes" type="ListOfAttributes"/>
  21. </xsd:sequence>
  22. <xsd:attribute name="format" type="xsd:string"/>
  23. </xsd:complexType>
  24. </xsd:element>
  25. <xsd:element name="display_template" type="xsd:string"/>
  26. <xsd:element name="icon" type="xsd:string"/>
  27. <xsd:element name="reconciliation">
  28. <xsd:complexType>
  29. <xsd:sequence>
  30. <xsd:element name="attributes" type="ListOfAttributes"/>
  31. </xsd:sequence>
  32. </xsd:complexType>
  33. </xsd:element>
  34. <xsd:element name="order" minOccurs="0">
  35. <xsd:complexType>
  36. <xsd:sequence>
  37. <xsd:element name="columns">
  38. <xsd:complexType>
  39. <xsd:sequence>
  40. <xsd:element name="column">
  41. <xsd:complexType>
  42. <xsd:attribute name="name" type="xsd:string"/>
  43. <xsd:attribute name="ascending" type="xsd:string"/>
  44. </xsd:complexType>
  45. </xsd:element>
  46. </xsd:sequence>
  47. </xsd:complexType>
  48. </xsd:element>
  49. </xsd:sequence>
  50. </xsd:complexType>
  51. </xsd:element>
  52. </xsd:sequence>
  53. </xsd:complexType>
  54. </xsd:element>
  55. <xsd:element name="fields">
  56. <xsd:complexType>
  57. <xsd:sequence>
  58. <xsd:element name="field" type="Attribute" minOccurs="0" maxOccurs="unbounded"/>
  59. </xsd:sequence>
  60. </xsd:complexType>
  61. </xsd:element>
  62. <xsd:element name="lifecycle" minOccurs="0">
  63. <xsd:complexType>
  64. <xsd:sequence>
  65. <xsd:element name="stimuli">
  66. <xsd:complexType>
  67. <xsd:sequence>
  68. <xsd:element name="stimulus" maxOccurs="unbounded">
  69. <xsd:complexType>
  70. <xsd:attribute name="name" type="xsd:string"/>
  71. <xsd:attribute name="type" type="xsd:string"/>
  72. </xsd:complexType>
  73. </xsd:element>
  74. </xsd:sequence>
  75. </xsd:complexType>
  76. </xsd:element>
  77. <xsd:element name="states">
  78. <xsd:complexType>
  79. <xsd:sequence>
  80. <xsd:element name="state" minOccurs="0" maxOccurs="unbounded">
  81. <xsd:complexType>
  82. <xsd:sequence>
  83. <xsd:element name="flags">
  84. <xsd:complexType>
  85. <xsd:sequence>
  86. <xsd:element name="attribute" maxOccurs="unbounded">
  87. <xsd:complexType>
  88. <xsd:attribute name="name" type="xsd:string"/>
  89. <xsd:attribute name="mandatory" type="xsd:string"/>
  90. <xsd:attribute name="must_prompt" type="xsd:string"/>
  91. <xsd:attribute name="must_change" type="xsd:string"/>
  92. <xsd:attribute name="hidden" type="xsd:string"/>
  93. <xsd:attribute name="read_only" type="xsd:string"/>
  94. </xsd:complexType>
  95. </xsd:element>
  96. </xsd:sequence>
  97. </xsd:complexType>
  98. </xsd:element>
  99. <xsd:element name="transitions">
  100. <xsd:complexType>
  101. <xsd:sequence>
  102. <xsd:element name="transition" minOccurs="0" maxOccurs="unbounded">
  103. <xsd:complexType>
  104. <xsd:sequence>
  105. <xsd:element name="actions">
  106. <xsd:complexType>
  107. <xsd:sequence>
  108. <xsd:element name="action" minOccurs="0" maxOccurs="unbounded">
  109. <xsd:complexType>
  110. <xsd:attribute name="verb" type="xsd:string"/>
  111. </xsd:complexType>
  112. </xsd:element>
  113. </xsd:sequence>
  114. </xsd:complexType>
  115. </xsd:element>
  116. </xsd:sequence>
  117. <xsd:attribute name="stimulus" type="xsd:string"/>
  118. <xsd:attribute name="target" type="xsd:string"/>
  119. </xsd:complexType>
  120. </xsd:element>
  121. </xsd:sequence>
  122. </xsd:complexType>
  123. </xsd:element>
  124. </xsd:sequence>
  125. <xsd:attribute name="name" type="xsd:string"/>
  126. </xsd:complexType>
  127. </xsd:element>
  128. </xsd:sequence>
  129. </xsd:complexType>
  130. </xsd:element>
  131. </xsd:sequence>
  132. <xsd:attribute name="attribute" type="xsd:string"/>
  133. </xsd:complexType>
  134. </xsd:element>
  135. <xsd:element name="methods">
  136. <xsd:complexType>
  137. <xsd:sequence>
  138. <xsd:element name="method" minOccurs="0" maxOccurs="unbounded">
  139. <xsd:complexType mixed="true">
  140. <xsd:sequence>
  141. <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
  142. </xsd:sequence>
  143. <xsd:attribute name="name" type="xsd:string"/>
  144. <xsd:attribute name="static" type="xsd:string"/>
  145. <xsd:attribute name="access" type="xsd:string"/>
  146. <xsd:attribute name="type" type="xsd:string"/>
  147. </xsd:complexType>
  148. </xsd:element>
  149. </xsd:sequence>
  150. </xsd:complexType>
  151. </xsd:element>
  152. <xsd:element name="presentation">
  153. <xsd:complexType>
  154. <xsd:all>
  155. <xsd:element name="details" type="ItemList" minOccurs="0"/>
  156. <xsd:element name="search" type="ItemList" minOccurs="0"/>
  157. <xsd:element name="list" type="ItemList" minOccurs="0"/>
  158. </xsd:all>
  159. </xsd:complexType>
  160. </xsd:element>
  161. </xsd:sequence>
  162. <xsd:attribute name="name" type="xsd:string"/>
  163. <xsd:attribute name="category" type="xsd:string"/>
  164. <xsd:attribute name="parent" type="xsd:string"/>
  165. <xsd:attribute name="abstract" type="xsd:string"/>
  166. <xsd:attribute name="key_type" type="xsd:string"/>
  167. <xsd:attribute name="is_link" type="xsd:string"/>
  168. <xsd:attribute name="db_table" type="xsd:string"/>
  169. <xsd:attribute name="db_key_field" type="xsd:string"/>
  170. <xsd:attribute name="db_final_class_field" type="xsd:string"/>
  171. </xsd:complexType>
  172. </xsd:element>
  173. </xsd:sequence>
  174. </xsd:complexType>
  175. </xsd:element>
  176. <!-- Menus [0, N] -->
  177. <xsd:element name="menus" minOccurs="0">
  178. <xsd:complexType>
  179. <xsd:sequence>
  180. <xsd:element name="menu" type="Menu" minOccurs="0" maxOccurs="unbounded"/>
  181. </xsd:sequence>
  182. </xsd:complexType>
  183. </xsd:element>
  184. </xsd:sequence>
  185. </xsd:complexType>
  186. </xsd:element>
  187. <!-- ====================================== -->
  188. <!-- Types for the classes -->
  189. <!-- ====================================== -->
  190. <xsd:complexType name="ListOfAttributes">
  191. <xsd:sequence>
  192. <xsd:element name="attribute" minOccurs="0" maxOccurs="unbounded">
  193. </xsd:element>
  194. </xsd:sequence>
  195. </xsd:complexType>
  196. <xsd:complexType name="Attribute">
  197. <xsd:sequence>
  198. <xsd:element name="dependencies" type="ListOfAttributes" minOccurs="0"/>
  199. </xsd:sequence>
  200. <xsd:attribute name="name" type="xsd:string"/>
  201. </xsd:complexType>
  202. <xsd:complexType name="AttributeSql">
  203. <xsd:complexContent>
  204. <xsd:extension base="Attribute">
  205. <xsd:attribute name="sql" type="xsd:string"/>
  206. <xsd:attribute name="is_null_allowed" type="xsd:string"/>
  207. </xsd:extension>
  208. </xsd:complexContent>
  209. </xsd:complexType>
  210. <xsd:complexType name="AttributeBlob">
  211. <xsd:complexContent>
  212. <xsd:extension base="AttributeSql">
  213. </xsd:extension>
  214. </xsd:complexContent>
  215. </xsd:complexType>
  216. <xsd:complexType name="AttributeScalar">
  217. <xsd:complexContent>
  218. <xsd:extension base="AttributeSql">
  219. <xsd:attribute name="default_value" type="xsd:string"/>
  220. </xsd:extension>
  221. </xsd:complexContent>
  222. </xsd:complexType>
  223. <xsd:complexType name="AttributeInteger">
  224. <xsd:complexContent>
  225. <xsd:extension base="AttributeScalar">
  226. </xsd:extension>
  227. </xsd:complexContent>
  228. </xsd:complexType>
  229. <xsd:complexType name="AttributeString">
  230. <xsd:complexContent>
  231. <xsd:extension base="AttributeScalar">
  232. </xsd:extension>
  233. </xsd:complexContent>
  234. </xsd:complexType>
  235. <xsd:complexType name="AttributeDate">
  236. <xsd:complexContent>
  237. <xsd:extension base="AttributeString">
  238. </xsd:extension>
  239. </xsd:complexContent>
  240. </xsd:complexType>
  241. <xsd:complexType name="AttributeDateTime">
  242. <xsd:complexContent>
  243. <xsd:extension base="AttributeString">
  244. </xsd:extension>
  245. </xsd:complexContent>
  246. </xsd:complexType>
  247. <xsd:complexType name="AttributeDeadline">
  248. <xsd:complexContent>
  249. <xsd:extension base="AttributeDateTime">
  250. </xsd:extension>
  251. </xsd:complexContent>
  252. </xsd:complexType>
  253. <xsd:complexType name="AttributeText">
  254. <xsd:complexContent>
  255. <xsd:extension base="AttributeString">
  256. </xsd:extension>
  257. </xsd:complexContent>
  258. </xsd:complexType>
  259. <xsd:complexType name="AttributeCaseLog">
  260. <xsd:complexContent>
  261. <xsd:extension base="AttributeText">
  262. </xsd:extension>
  263. </xsd:complexContent>
  264. </xsd:complexType>
  265. <xsd:complexType name="AttributeURL">
  266. <xsd:complexContent>
  267. <xsd:extension base="AttributeString">
  268. <xsd:attribute name="target" type="xsd:string"/>
  269. </xsd:extension>
  270. </xsd:complexContent>
  271. </xsd:complexType>
  272. <xsd:complexType name="AttributeIPAddress">
  273. <xsd:complexContent>
  274. <xsd:extension base="AttributeString">
  275. </xsd:extension>
  276. </xsd:complexContent>
  277. </xsd:complexType>
  278. <xsd:complexType name="AttributeEnum">
  279. <xsd:complexContent>
  280. <xsd:extension base="AttributeString">
  281. <xsd:sequence>
  282. <xsd:element name="values">
  283. <xsd:complexType>
  284. <xsd:sequence>
  285. <xsd:element name="value" type="xsd:string" maxOccurs="unbounded"/>
  286. </xsd:sequence>
  287. </xsd:complexType>
  288. </xsd:element>
  289. </xsd:sequence>
  290. </xsd:extension>
  291. </xsd:complexContent>
  292. </xsd:complexType>
  293. <xsd:complexType name="AttributeExternalKeyBase">
  294. <xsd:complexContent>
  295. <xsd:extension base="AttributeSql">
  296. <xsd:attribute name="filter" type="xsd:string"/>
  297. <xsd:attribute name="on_target_delete" type="xsd:string"/>
  298. </xsd:extension>
  299. </xsd:complexContent>
  300. </xsd:complexType>
  301. <xsd:complexType name="AttributeExternalKey">
  302. <xsd:complexContent>
  303. <xsd:extension base="AttributeExternalKeyBase">
  304. <xsd:attribute name="target_class" type="xsd:string"/>
  305. <xsd:attribute name="jointype" type="xsd:string"/>
  306. </xsd:extension>
  307. </xsd:complexContent>
  308. </xsd:complexType>
  309. <xsd:complexType name="AttributeHierarchicalKey">
  310. <xsd:complexContent>
  311. <xsd:extension base="AttributeExternalKeyBase">
  312. </xsd:extension>
  313. </xsd:complexContent>
  314. </xsd:complexType>
  315. <xsd:complexType name="AttributeExternalField">
  316. <xsd:complexContent>
  317. <xsd:extension base="AttributeSql">
  318. <xsd:attribute name="extkey_attcode" type="xsd:string"/>
  319. <xsd:attribute name="target_attcode" type="xsd:string"/>
  320. </xsd:extension>
  321. </xsd:complexContent>
  322. </xsd:complexType>
  323. <xsd:complexType name="AttributeEmailAddress">
  324. <xsd:complexContent>
  325. <xsd:extension base="AttributeString">
  326. </xsd:extension>
  327. </xsd:complexContent>
  328. </xsd:complexType>
  329. <xsd:complexType name="AttributeLinkedSet">
  330. <xsd:complexContent>
  331. <xsd:extension base="Attribute">
  332. <xsd:attribute name="linked_class" type="xsd:string"/>
  333. <xsd:attribute name="ext_key_to_me" type="xsd:string"/>
  334. <xsd:attribute name="count_min" type="xsd:integer"/>
  335. <xsd:attribute name="count_max" type="xsd:integer"/>
  336. </xsd:extension>
  337. </xsd:complexContent>
  338. </xsd:complexType>
  339. <xsd:complexType name="AttributeLinkedSetIndirect">
  340. <xsd:complexContent>
  341. <xsd:extension base="AttributeLinkedSet">
  342. <xsd:attribute name="ext_key_to_remote" type="xsd:string"/>
  343. </xsd:extension>
  344. </xsd:complexContent>
  345. </xsd:complexType>
  346. <xsd:complexType name="ItemList">
  347. <xsd:sequence>
  348. <xsd:element name="items" type="Items" minOccurs="0"/>
  349. </xsd:sequence>
  350. </xsd:complexType>
  351. <xsd:complexType name="Items">
  352. <xsd:sequence>
  353. <xsd:element name="item" maxOccurs="unbounded">
  354. <xsd:complexType mixed="true">
  355. <xsd:sequence>
  356. <xsd:element name="items" type="Items" minOccurs="0"/>
  357. </xsd:sequence>
  358. <xsd:attribute name="key" type="xsd:string"/>
  359. </xsd:complexType>
  360. </xsd:element>
  361. </xsd:sequence>
  362. </xsd:complexType>
  363. <!-- ====================================== -->
  364. <!-- Types for the menus -->
  365. <!-- ====================================== -->
  366. <xsd:complexType name="Menu">
  367. <xsd:sequence>
  368. <xsd:element name="rank" type="MenuProperty"/>
  369. </xsd:sequence>
  370. <xsd:attribute name="id" type="xsd:string"/>
  371. </xsd:complexType>
  372. <xsd:complexType name="MenuGroup">
  373. <xsd:complexContent>
  374. <xsd:extension base="Menu">
  375. <xsd:sequence>
  376. <xsd:element name="enable_class" type="MenuProperty" minOccurs="0"/>
  377. <xsd:element name="enable_action" type="MenuProperty" minOccurs="0"/>
  378. <xsd:element name="enable_permission" type="MenuProperty" minOccurs="0"/>
  379. <xsd:element name="enable_stimulus" type="MenuProperty" minOccurs="0"/>
  380. </xsd:sequence>
  381. <xsd:attribute name="type" type="xsd:string" fixed="MenuGroup"/>
  382. </xsd:extension>
  383. </xsd:complexContent>
  384. </xsd:complexType>
  385. <xsd:complexType name="MenuNode">
  386. <xsd:complexContent>
  387. <xsd:extension base="Menu">
  388. <xsd:sequence>
  389. <xsd:element name="parent" type="MenuProperty"/>
  390. </xsd:sequence>
  391. </xsd:extension>
  392. </xsd:complexContent>
  393. </xsd:complexType>
  394. <xsd:complexType name="TemplateMenuNode">
  395. <xsd:complexContent>
  396. <xsd:extension base="MenuNode">
  397. <xsd:sequence>
  398. <xsd:element name="template_file" type="MenuProperty"/>
  399. </xsd:sequence>
  400. </xsd:extension>
  401. </xsd:complexContent>
  402. </xsd:complexType>
  403. <xsd:complexType name="NewObjectMenuNode">
  404. <xsd:complexContent>
  405. <xsd:extension base="MenuNode">
  406. <xsd:sequence>
  407. <xsd:element name="class" type="MenuProperty"/>
  408. </xsd:sequence>
  409. </xsd:extension>
  410. </xsd:complexContent>
  411. </xsd:complexType>
  412. <xsd:complexType name="SearchMenuNode">
  413. <xsd:complexContent>
  414. <xsd:extension base="MenuNode">
  415. <xsd:sequence>
  416. <xsd:element name="class" type="MenuProperty"/>
  417. </xsd:sequence>
  418. </xsd:extension>
  419. </xsd:complexContent>
  420. </xsd:complexType>
  421. <xsd:complexType name="OQLMenuNode">
  422. <xsd:complexContent>
  423. <xsd:extension base="MenuNode">
  424. <xsd:sequence>
  425. <xsd:element name="oql" type="MenuProperty"/>
  426. <xsd:element name="do_search" type="MenuProperty"/>
  427. <xsd:element name="auto_reload" type="MenuProperty" minOccurs="0"/>
  428. </xsd:sequence>
  429. </xsd:extension>
  430. </xsd:complexContent>
  431. </xsd:complexType>
  432. <xsd:complexType name="WebPageMenuNode">
  433. <xsd:complexContent>
  434. <xsd:extension base="MenuNode">
  435. <xsd:sequence>
  436. <xsd:element name="url" type="MenuProperty"/>
  437. </xsd:sequence>
  438. </xsd:extension>
  439. </xsd:complexContent>
  440. </xsd:complexType>
  441. <xsd:complexType name="MenuProperty">
  442. <xsd:attribute name="value" type="xsd:string"/>
  443. </xsd:complexType>
  444. <xsd:simpleType name="MenuType">
  445. <xsd:restriction base="xsd:string">
  446. <xsd:enumeration value="MenuGroup"/>
  447. <xsd:enumeration value="TemplateMenuNode"/>
  448. <xsd:enumeration value="NewObjectMenuNode"/>
  449. <xsd:enumeration value="SearchMenuNode"/>
  450. <xsd:enumeration value="OQLMenuNode"/>
  451. </xsd:restriction>
  452. </xsd:simpleType>
  453. </xsd:schema>