itop_design.xsd 18 KB

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