fragments.xsd 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: cpscrn
  5. (C) Copyright IBM Corp. 2005, 2011
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. -->
  12. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://developer.cognos.com/fragments/1/" xmlns:val="http://developer.cognos.com/schemas/validator/1/" targetNamespace="http://developer.cognos.com/fragments/1/" elementFormDefault="qualified" attributeFormDefault="unqualified">
  13. <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
  14. <xs:import namespace="http://developer.cognos.com/schemas/validator/1/" schemaLocation="../../schemas/validator.xsd"/>
  15. <!-- fragment -->
  16. <xs:element name="fragment">
  17. <xs:annotation>
  18. <xs:documentation>A XML document that represents an embeddable fragment of markup.</xs:documentation>
  19. </xs:annotation>
  20. <xs:complexType>
  21. <xs:sequence>
  22. <xs:element name="id" type="xs:NMTOKEN" minOccurs="0">
  23. <xs:annotation>
  24. <xs:documentation>Assigned id to this fragment. Fragment producers don't need to returned this.</xs:documentation>
  25. </xs:annotation>
  26. </xs:element>
  27. <xs:element name="info" type="InfoType" minOccurs="0">
  28. <xs:annotation>
  29. <xs:documentation>Informational set of elements based on RFC 2413 - Dublin Core Metadata for Resource Discovery</xs:documentation>
  30. </xs:annotation>
  31. </xs:element>
  32. <xs:element name="meta" type="MetaType" minOccurs="0">
  33. <xs:annotation>
  34. <xs:documentation>Metadata description of fragment capabilities and resources.</xs:documentation>
  35. </xs:annotation>
  36. </xs:element>
  37. <xs:element name="css" type="CssType" minOccurs="0" maxOccurs="unbounded">
  38. <xs:annotation>
  39. <xs:documentation>Required Cascading Style Sheet file.</xs:documentation>
  40. </xs:annotation>
  41. </xs:element>
  42. <xs:element name="library" type="LibraryType" minOccurs="0" maxOccurs="unbounded">
  43. <xs:annotation>
  44. <xs:documentation>Required javascript library file.</xs:documentation>
  45. </xs:annotation>
  46. </xs:element>
  47. <xs:element name="markup" type="MarkupType" minOccurs="0" maxOccurs="unbounded">
  48. <xs:annotation>
  49. <xs:documentation>The fragment markup is the actual rendered view for the requested mimeType.</xs:documentation>
  50. </xs:annotation>
  51. </xs:element>
  52. <xs:element name="subfragment" type="FragmentInstanceType" minOccurs="0" maxOccurs="unbounded">
  53. <xs:annotation>
  54. <xs:documentation>Request to retrieve specified fragment and rewrite it into parent fragment.</xs:documentation>
  55. </xs:annotation>
  56. </xs:element>
  57. <xs:element name="error" type="ErrorType" minOccurs="0">
  58. <xs:annotation>
  59. <xs:documentation>Error description.</xs:documentation>
  60. </xs:annotation>
  61. </xs:element>
  62. <xs:element name="transientUpdate" minOccurs="0" maxOccurs="unbounded">
  63. <xs:annotation>
  64. <xs:documentation>Server-side update of transient properties.</xs:documentation>
  65. </xs:annotation>
  66. <xs:complexType>
  67. <xs:complexContent>
  68. <xs:extension base="ParamType">
  69. <xs:attribute name="scope" use="optional">
  70. <xs:simpleType>
  71. <xs:restriction base="xs:token">
  72. <xs:enumeration value="private"/>
  73. <xs:enumeration value="page"/>
  74. <xs:enumeration value="application"/>
  75. </xs:restriction>
  76. </xs:simpleType>
  77. </xs:attribute>
  78. <xs:attribute name="channel" type="xs:string" use="optional"/>
  79. </xs:extension>
  80. </xs:complexContent>
  81. </xs:complexType>
  82. </xs:element>
  83. <xs:element name="customUpdate" type="ParamsType" minOccurs="0">
  84. <xs:annotation>
  85. <xs:documentation>Server-side update of custom properties.</xs:documentation>
  86. </xs:annotation>
  87. </xs:element>
  88. <xs:element name="event" type="EventType" minOccurs="0" maxOccurs="unbounded">
  89. <xs:annotation>
  90. <xs:documentation>Event description. TODO: Add publishedEvents and raisedEvents, both lists of event names</xs:documentation>
  91. </xs:annotation>
  92. </xs:element>
  93. <xs:element name="preferredTitle" type="xs:string" minOccurs="0">
  94. <xs:annotation>
  95. <xs:documentation>Overrides the fragment's title with a dynamically generated one. Must be returned on every call otherwise the title reverts to the static fragment/info/title.</xs:documentation>
  96. </xs:annotation>
  97. </xs:element>
  98. <xs:element name="redirectURL" type="xs:string" minOccurs="0">
  99. <xs:annotation>
  100. <xs:documentation>A fragment server-side redirect. [Not implemented yet].</xs:documentation>
  101. </xs:annotation>
  102. </xs:element>
  103. <xs:element name="custom" type="BinaryType" minOccurs="0">
  104. <xs:annotation>
  105. <xs:documentation>The encoded and signed custom properties for the current fragment.</xs:documentation>
  106. </xs:annotation>
  107. </xs:element>
  108. <xs:element name="state" type="BinaryType" minOccurs="0">
  109. <xs:annotation>
  110. <xs:documentation>The current encoded state that was used to generate the fragment markup. </xs:documentation>
  111. </xs:annotation>
  112. </xs:element>
  113. <xs:element name="delay" type="DelayType" minOccurs="0">
  114. <xs:annotation>
  115. <xs:documentation>Causes the controller to refresh the fragment by a specified number of seconds.</xs:documentation>
  116. </xs:annotation>
  117. </xs:element>
  118. <xs:element name="validator" minOccurs="0">
  119. <xs:annotation>
  120. <xs:documentation>The current compiled and signed Cognos Validation Framework validator, which is used to validate the interaction parameters for the current fragment.</xs:documentation>
  121. </xs:annotation>
  122. <xs:complexType>
  123. <xs:sequence>
  124. <xs:element name="remote" type="BinaryType"/>
  125. <xs:element name="client" type="xs:string" minOccurs="0"/>
  126. </xs:sequence>
  127. </xs:complexType>
  128. </xs:element>
  129. <xs:element name="newMode" type="xs:QName" minOccurs="0">
  130. <xs:annotation>
  131. <xs:documentation>new mode (e.g. view, edit, cps:config)</xs:documentation>
  132. </xs:annotation>
  133. </xs:element>
  134. <xs:element name="newWindowState" type="xs:QName" minOccurs="0">
  135. <xs:annotation>
  136. <xs:documentation>new window state</xs:documentation>
  137. </xs:annotation>
  138. </xs:element>
  139. <xs:element name="newView" type="xs:string" minOccurs="0">
  140. <xs:annotation>
  141. <xs:documentation>new view</xs:documentation>
  142. </xs:annotation>
  143. </xs:element>
  144. </xs:sequence>
  145. </xs:complexType>
  146. </xs:element>
  147. <!-- fragmentReference -->
  148. <xs:element name="fragmentReference" type="FragmentInstanceType"/>
  149. <xs:complexType name="InfoType">
  150. <xs:sequence>
  151. <!-- Content -->
  152. <xs:element name="title" type="LocalizedStringType" minOccurs="0">
  153. <xs:annotation>
  154. <xs:documentation>The name given to the resource, usually by the Creator or Publisher.</xs:documentation>
  155. </xs:annotation>
  156. </xs:element>
  157. <xs:element name="subject" type="xs:string" minOccurs="0">
  158. <xs:annotation>
  159. <xs:documentation>The topic of the resource. Typically, subject will be expressed as keywords or phrases that describe the subject or content of the resource.</xs:documentation>
  160. </xs:annotation>
  161. </xs:element>
  162. <xs:element name="description" type="LocalizedStringType" minOccurs="0">
  163. <xs:annotation>
  164. <xs:documentation>A textual description of the content of the resource, including abstracts in the case of document-like objects or content descriptions in the case of visual resources.</xs:documentation>
  165. </xs:annotation>
  166. </xs:element>
  167. <xs:element name="type" type="xs:string" minOccurs="0">
  168. <xs:annotation>
  169. <xs:documentation>The category of the resource, such as home page, novel, poem, working paper, technical report, essay, dictionary.</xs:documentation>
  170. </xs:annotation>
  171. </xs:element>
  172. <xs:element name="source" type="xs:string" minOccurs="0">
  173. <xs:annotation>
  174. <xs:documentation>Information about a second resource from which the present resource is derived.</xs:documentation>
  175. </xs:annotation>
  176. </xs:element>
  177. <xs:element name="relation" type="xs:string" minOccurs="0">
  178. <xs:annotation>
  179. <xs:documentation>An identifier of a second resource and its relationship to the present resource. This element is used to express linkages among related resources.</xs:documentation>
  180. </xs:annotation>
  181. </xs:element>
  182. <xs:element name="coverage" type="xs:string" minOccurs="0">
  183. <xs:annotation>
  184. <xs:documentation>The spatial or temporal characteristics of the intellectual content of the resource. Spatial coverage refers to a physical region using place names or coordinates (e.g., longitude and latitude). Temporal coverage refers to what the resource is about rather than when it was created or made available (the latter belonging in the Date element).</xs:documentation>
  185. </xs:annotation>
  186. </xs:element>
  187. <!-- Instantiation -->
  188. <xs:element name="date" type="xs:string" minOccurs="0">
  189. <xs:annotation>
  190. <xs:documentation>A date associated with the creation or availability of the resource. Recommended best practice is defined in a profile of ISO 8601.</xs:documentation>
  191. </xs:annotation>
  192. </xs:element>
  193. <xs:element name="format" type="xs:string" minOccurs="0">
  194. <xs:annotation>
  195. <xs:documentation>The data format and, optionally, dimensions (e.g., size, duration) of the resource.</xs:documentation>
  196. </xs:annotation>
  197. </xs:element>
  198. <xs:element name="identifier" type="xs:string" minOccurs="0">
  199. <xs:annotation>
  200. <xs:documentation>A string or number used to uniquely identify the resource.</xs:documentation>
  201. </xs:annotation>
  202. </xs:element>
  203. <xs:element name="language" type="xs:string" minOccurs="0">
  204. <xs:annotation>
  205. <xs:documentation>The language of the intellectual content of the resource. Recommended best practice is defined in RFC 1766.</xs:documentation>
  206. </xs:annotation>
  207. </xs:element>
  208. <!-- Intellectual Property -->
  209. <xs:element name="creator" type="xs:string" minOccurs="0">
  210. <xs:annotation>
  211. <xs:documentation>The person or organization primarily responsible for creating the intellectual content of the resource.</xs:documentation>
  212. </xs:annotation>
  213. </xs:element>
  214. <xs:element name="publisher" type="xs:string" minOccurs="0">
  215. <xs:annotation>
  216. <xs:documentation>The entity responsible for making the resource available in its present form, such as a publishing house, a university department, or a corporate entity.</xs:documentation>
  217. </xs:annotation>
  218. </xs:element>
  219. <xs:element name="contributor" type="xs:string" minOccurs="0">
  220. <xs:annotation>
  221. <xs:documentation>A person or organization not specified in a Creator element who has made significant intellectual contributions to the resource but whose contribution is secondary to any person or organization specified in a Creator element </xs:documentation>
  222. </xs:annotation>
  223. </xs:element>
  224. <xs:element name="rights" type="xs:string" minOccurs="0">
  225. <xs:annotation>
  226. <xs:documentation>A rights management statement, an identifier that links to a rights management statement, or an identifier that links to a service providing information about rights management for the resource.</xs:documentation>
  227. </xs:annotation>
  228. </xs:element>
  229. <xs:element name="display" type="xs:string" minOccurs="0">
  230. <xs:annotation>
  231. <xs:documentation>TODO: move display to meta/preferences</xs:documentation>
  232. </xs:annotation>
  233. </xs:element>
  234. </xs:sequence>
  235. </xs:complexType>
  236. <!-- extension -->
  237. <xs:complexType name="ExtensionType">
  238. <xs:sequence>
  239. <xs:any namespace="##other" processContents="lax"/>
  240. </xs:sequence>
  241. </xs:complexType>
  242. <!-- meta -->
  243. <xs:complexType name="MetaType">
  244. <xs:sequence>
  245. <xs:element name="globalValidator" type="val:validator" minOccurs="0">
  246. <xs:annotation>
  247. <xs:documentation>Cognos Validation Framework rules that are global to all properties.</xs:documentation>
  248. </xs:annotation>
  249. </xs:element>
  250. <xs:element name="mimeTypes" type="xs:string" minOccurs="0" maxOccurs="unbounded">
  251. <xs:annotation>
  252. <xs:documentation>Supported mimeTypes (e.g. text/html, text/xhtml)</xs:documentation>
  253. </xs:annotation>
  254. </xs:element>
  255. <xs:element name="modes" type="xs:QName" minOccurs="0" maxOccurs="unbounded">
  256. <xs:annotation>
  257. <xs:documentation>Supported modes (e.g. view, edit, cps:config)</xs:documentation>
  258. </xs:annotation>
  259. </xs:element>
  260. <xs:element name="windowStates" type="xs:QName" minOccurs="0" maxOccurs="unbounded">
  261. <xs:annotation>
  262. <xs:documentation>Supported window states (e.g. normal, maximized, minimized)</xs:documentation>
  263. </xs:annotation>
  264. </xs:element>
  265. <xs:element name="description" type="LocalizedStringType" minOccurs="0">
  266. <xs:annotation>
  267. <xs:documentation>A concise, human-readable description of the fragment. Intended purpose is for display in any Consumer-generated user interface for administering the Fragment.</xs:documentation>
  268. </xs:annotation>
  269. </xs:element>
  270. <xs:element name="requiredCapabilities" type="xs:string" minOccurs="0">
  271. <xs:annotation>
  272. <xs:documentation>capabilities required to execute this fragment</xs:documentation>
  273. </xs:annotation>
  274. </xs:element>
  275. <xs:element name="customProperties" type="PropertiesType" minOccurs="0" maxOccurs="unbounded">
  276. <xs:annotation>
  277. <xs:documentation>Description of customization properties, which control the fragment look and feel.</xs:documentation>
  278. </xs:annotation>
  279. </xs:element>
  280. <xs:element name="transientProperties" type="PropertiesType" minOccurs="0" maxOccurs="unbounded">
  281. <xs:annotation>
  282. <xs:documentation>Description of transient properties which are used to syncronize fragments</xs:documentation>
  283. </xs:annotation>
  284. </xs:element>
  285. <xs:element name="navigationalProperties" type="PropertiesType" minOccurs="0" maxOccurs="unbounded">
  286. <xs:annotation>
  287. <xs:documentation>Description of navigational properties which are used to pass runtime parameters to fragments</xs:documentation>
  288. </xs:annotation>
  289. </xs:element>
  290. <xs:element name="publishedEvents" type="xs:string" minOccurs="0" maxOccurs="unbounded">
  291. <xs:annotation>
  292. <xs:documentation>This array provides the event names for the events the fragment could generate.
  293. While fragments are allowed to generate events that are not described in this array, fragment developers choosing to not declare what events
  294. could be generated should carefully consider scenarios involving Controllers where events are only
  295. distributed if the page designer (i.e. the application developer) explicitly says to distribute an event
  296. generated by one fragment to another set of fragments. The information in non-declared events will not be
  297. distributed by such Controllers since the page designer was unaware of them.</xs:documentation>
  298. </xs:annotation>
  299. </xs:element>
  300. <xs:element name="handledEvents" type="xs:string" minOccurs="0" maxOccurs="unbounded">
  301. <xs:annotation>
  302. <xs:documentation>This array provides the event names the fragments is willing to process. Each name specified
  303. is allowed to end with a "*" character to indicate the Portlet is willing to process any event whose name starts
  304. with the characters before the "*" character. Controller responsibilities are the same as the
  305. publishedEvents field.</xs:documentation>
  306. </xs:annotation>
  307. </xs:element>
  308. <xs:element name="eventDescriptions" type="EventDescriptionType" minOccurs="0" maxOccurs="unbounded">
  309. <xs:annotation>
  310. <xs:documentation>Description of event which are used to syncronize fragments</xs:documentation>
  311. </xs:annotation>
  312. </xs:element>
  313. <xs:element name="controlGroups" type="ControlGroupType" minOccurs="0" maxOccurs="unbounded">
  314. <xs:annotation>
  315. <xs:documentation>A multilingual label for rendering properties split by group. This may also be used as a tab label.</xs:documentation>
  316. </xs:annotation>
  317. </xs:element>
  318. <xs:element name="resourceList" type="ResourceListType" minOccurs="0">
  319. <xs:annotation>
  320. <xs:documentation>This is an array of ResourceType, each of which carries the values for a localized resource in various locales.</xs:documentation>
  321. </xs:annotation>
  322. </xs:element>
  323. </xs:sequence>
  324. </xs:complexType>
  325. <!-- properties base -->
  326. <xs:complexType name="PropertiesType">
  327. <xs:sequence>
  328. <xs:element name="label" type="LocalizedStringType">
  329. <xs:annotation>
  330. <xs:documentation>A short, human-readable name for the property. Intended purpose is for display in any Consumer-generated user interface for administering the Fragment.</xs:documentation>
  331. </xs:annotation>
  332. </xs:element>
  333. <xs:element name="hint" type="LocalizedStringType" minOccurs="0">
  334. <xs:annotation>
  335. <xs:documentation>A relatively short description of the property. Intended for display, for example, as a tooltip in any Consumer-generated user interface for editing the property.</xs:documentation>
  336. </xs:annotation>
  337. </xs:element>
  338. <xs:element name="datatype" type="xs:QName" minOccurs="0">
  339. <xs:annotation>
  340. <xs:documentation>Type of the property, using a namespace qualified name. We would encourage these to either be from the set of schema-defined types or be explicitly typed in the schema element of an enclosing ModelDescription.</xs:documentation>
  341. </xs:annotation>
  342. </xs:element>
  343. <xs:element name="default" type="DefaultType" minOccurs="0">
  344. <xs:annotation>
  345. <xs:documentation>Contains the default value for this property as a string.</xs:documentation>
  346. </xs:annotation>
  347. </xs:element>
  348. <xs:element name="control" type="ControlType" minOccurs="0">
  349. <xs:annotation>
  350. <xs:documentation>Contains the visual description of the control to be used along with any localised resources.</xs:documentation>
  351. </xs:annotation>
  352. </xs:element>
  353. <xs:element name="validate" type="val:parameter" minOccurs="0">
  354. <xs:annotation>
  355. <xs:documentation>Describes the validation rules for the property using the Cognos Validation Framework parameter syntax.</xs:documentation>
  356. </xs:annotation>
  357. </xs:element>
  358. <xs:element name="validateErrorMessage" type="LocalizedStringType" minOccurs="0"/>
  359. </xs:sequence>
  360. <xs:attribute name="name" type="xs:NMTOKEN" use="required">
  361. <xs:annotation>
  362. <xs:documentation>Name of the property being described.</xs:documentation>
  363. </xs:annotation>
  364. </xs:attribute>
  365. </xs:complexType>
  366. <!-- localizedString base -->
  367. <xs:complexType name="LocalizedStringType">
  368. <xs:simpleContent>
  369. <xs:extension base="xs:string">
  370. <xs:attribute ref="xml:lang" use="optional">
  371. <xs:annotation>
  372. <xs:documentation>The locale for this supplied localized value.</xs:documentation>
  373. </xs:annotation>
  374. </xs:attribute>
  375. <xs:attribute name="resourceName" type="xs:NMTOKEN" use="optional">
  376. <xs:annotation>
  377. <xs:documentation>The name assigned to this localized string for dereferencing into a ResourceList for values from other locales. When the resourceName is not supplied, there are no values for additional locales available in the ResourceList.</xs:documentation>
  378. </xs:annotation>
  379. </xs:attribute>
  380. </xs:extension>
  381. </xs:simpleContent>
  382. </xs:complexType>
  383. <!-- default -->
  384. <xs:complexType name="DefaultType">
  385. <xs:sequence>
  386. <xs:element name="value" type="xs:string" minOccurs="0"/>
  387. </xs:sequence>
  388. </xs:complexType>
  389. <!-- markup -->
  390. <xs:complexType name="MarkupType">
  391. <xs:sequence>
  392. <xs:element name="validator" type="MarkupValidatorType" minOccurs="0"/>
  393. <xs:element name="mimeType" type="xs:string" default="text/html" minOccurs="0">
  394. <xs:annotation>
  395. <xs:documentation>The mime type of the returned markup. The mimeType field MUST be specified whenever markup is returned, and if the markupBinary field is used to return the markup, the mime type MUST include the character set for textual mime types using the syntax specified in RFC1522 (e.g. "text/html; charset=UTF-8").</xs:documentation>
  396. </xs:annotation>
  397. </xs:element>
  398. <xs:choice>
  399. <xs:element name="markupString" type="xs:string">
  400. <xs:annotation>
  401. <xs:documentation>The markup to be used for visualizing the current state of the Portlet. This is a string in order to support non-XML markup (e.g. HTML).</xs:documentation>
  402. </xs:annotation>
  403. </xs:element>
  404. <xs:element name="markupXml" type="xs:anyType">
  405. <xs:annotation>
  406. <xs:documentation>The markup to be used for visualizing the current state of the Portlet.</xs:documentation>
  407. </xs:annotation>
  408. </xs:element>
  409. <xs:element name="markupBinary" type="xs:base64Binary">
  410. <xs:annotation>
  411. <xs:documentation>The markup to be used for visualizing the current state of the Portlet returned in binary. This is useful if the text is not easily mapped to the string type or an attachment scheme is in use that moves binary types into separate message parts (e.g. DIME).</xs:documentation>
  412. </xs:annotation>
  413. </xs:element>
  414. </xs:choice>
  415. </xs:sequence>
  416. <xs:attribute name="id" type="xs:NMTOKEN" use="optional">
  417. <xs:annotation>
  418. <xs:documentation>In the case of a static fragment that contains multiple markups, each markup section may be referenced by ID using the frag-markupid parameter. If ID is not specified, the first markup is used.</xs:documentation>
  419. </xs:annotation>
  420. </xs:attribute>
  421. </xs:complexType>
  422. <xs:complexType name="MarkupValidatorType">
  423. <xs:sequence>
  424. <xs:element name="param" maxOccurs="unbounded">
  425. <xs:complexType>
  426. <xs:sequence>
  427. <xs:element name="validate" type="val:parameter"/>
  428. </xs:sequence>
  429. <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
  430. </xs:complexType>
  431. </xs:element>
  432. </xs:sequence>
  433. </xs:complexType>
  434. <!-- Fragment Property Controls -->
  435. <xs:complexType name="ControlType">
  436. <xs:group ref="FormControls" minOccurs="0"/>
  437. <xs:attribute name="group" type="xs:string" use="optional">
  438. <xs:annotation>
  439. <xs:documentation>Refers to a ControlGroupType's id.</xs:documentation>
  440. </xs:annotation>
  441. </xs:attribute>
  442. <xs:attribute name="order" type="xs:int" use="optional">
  443. <xs:annotation>
  444. <xs:documentation>Assending ordering number.</xs:documentation>
  445. </xs:annotation>
  446. </xs:attribute>
  447. <xs:attribute name="appearance" type="xs:string" use="optional">
  448. <xs:annotation>
  449. <xs:documentation>Controls the appearance (e.g. "full", "compact", "minimal" or "hidden")</xs:documentation>
  450. </xs:annotation>
  451. </xs:attribute>
  452. <xs:attribute name="relatesTo" type="xs:string" use="optional">
  453. <xs:annotation>
  454. <xs:documentation>Relates this control(C) to an unique item(PI) of another control(P). In other words, brings (C) visually closer to (P)'s (PI) (i.e. sub-control).</xs:documentation>
  455. </xs:annotation>
  456. </xs:attribute>
  457. <xs:attribute name="resetsTo" type="xs:string" use="optional">
  458. <xs:annotation>
  459. <xs:documentation>Resets another control(P) to an item(PI) when an action on this control(C) is invoked.</xs:documentation>
  460. </xs:annotation>
  461. </xs:attribute>
  462. </xs:complexType>
  463. <xs:complexType name="ControlGroupType">
  464. <xs:sequence minOccurs="0">
  465. <xs:element name="label" type="LocalizedStringType"/>
  466. </xs:sequence>
  467. <xs:attribute name="id" type="xs:string" use="required"/>
  468. <xs:attribute name="order" type="xs:int" use="optional"/>
  469. </xs:complexType>
  470. <xs:group name="FormControls">
  471. <xs:choice>
  472. <xs:element name="input" type="ControlInputType">
  473. <xs:annotation>
  474. <xs:documentation>This form control enables free-form data entry.</xs:documentation>
  475. </xs:annotation>
  476. </xs:element>
  477. <xs:element name="secret" type="ControlInputType">
  478. <xs:annotation>
  479. <xs:documentation>This form control is used to provide the user with the ability to supply information to the system in a manner that makes it difficult for someone, other than the user, who may be observing the process to discern the value that is being supplied. A common use is for password entry.</xs:documentation>
  480. </xs:annotation>
  481. </xs:element>
  482. <xs:element name="textarea" type="ControlTextareaType">
  483. <xs:annotation>
  484. <xs:documentation>This form control enables free-form data entry and is intended for use in entering multiline content, e.g., the body of an email message.</xs:documentation>
  485. </xs:annotation>
  486. </xs:element>
  487. <xs:element name="range" type="ControlRangeType">
  488. <xs:annotation>
  489. <xs:documentation>This form control allows selection from a sequential range of values.</xs:documentation>
  490. </xs:annotation>
  491. </xs:element>
  492. <xs:element name="select" type="ControlSelectType">
  493. <xs:annotation>
  494. <xs:documentation>This form control allows the user to make multiple selections from a set of choices.</xs:documentation>
  495. </xs:annotation>
  496. </xs:element>
  497. <xs:element name="select1" type="ControlSelectType">
  498. <xs:annotation>
  499. <xs:documentation>This form control allows the user to make a single selection from multiple choices.</xs:documentation>
  500. </xs:annotation>
  501. </xs:element>
  502. <xs:element name="extension" type="ExtensionType">
  503. <xs:annotation>
  504. <xs:documentation>This is an extension point to add new form control XML. The root element and XML namespace must match the qualified property datatype name.</xs:documentation>
  505. </xs:annotation>
  506. </xs:element>
  507. </xs:choice>
  508. </xs:group>
  509. <xs:attributeGroup name="CommonAttributes">
  510. <xs:annotation>
  511. <xs:documentation>Attributes for form elements and items</xs:documentation>
  512. </xs:annotation>
  513. <xs:attribute name="id" type="xs:ID" use="optional"/>
  514. <xs:anyAttribute namespace="##other" processContents="lax"/>
  515. </xs:attributeGroup>
  516. <xs:complexType name="ControlInputType">
  517. <xs:attributeGroup ref="CommonAttributes"/>
  518. <xs:attribute name="size" type="xs:positiveInteger" use="optional"/>
  519. </xs:complexType>
  520. <xs:complexType name="ControlTextareaType">
  521. <xs:attributeGroup ref="CommonAttributes"/>
  522. <xs:attribute name="cols" type="xs:positiveInteger" use="optional"/>
  523. <xs:attribute name="rows" type="xs:positiveInteger" use="optional"/>
  524. </xs:complexType>
  525. <xs:complexType name="ControlRangeType">
  526. <xs:annotation>
  527. <xs:documentation/>
  528. </xs:annotation>
  529. <xs:attributeGroup ref="CommonAttributes"/>
  530. <xs:attribute name="start" type="xs:string" use="optional"/>
  531. <xs:attribute name="end" type="xs:string" use="optional"/>
  532. <xs:attribute name="step" type="xs:string" use="optional"/>
  533. </xs:complexType>
  534. <xs:complexType name="ControlSelectType">
  535. <xs:group ref="ListGroup" maxOccurs="unbounded"/>
  536. <xs:attributeGroup ref="CommonAttributes"/>
  537. <xs:attribute name="selection" use="optional" default="closed">
  538. <xs:simpleType>
  539. <xs:restriction base="xs:string">
  540. <xs:enumeration value="open"/>
  541. <xs:enumeration value="closed"/>
  542. </xs:restriction>
  543. </xs:simpleType>
  544. </xs:attribute>
  545. <xs:attribute name="size" type="xs:positiveInteger" use="optional"/>
  546. </xs:complexType>
  547. <xs:group name="ListGroup">
  548. <xs:sequence>
  549. <xs:choice>
  550. <xs:element name="item" type="ControlItemType"/>
  551. <xs:element name="choices" type="ControlChoicesType"/>
  552. </xs:choice>
  553. </xs:sequence>
  554. </xs:group>
  555. <xs:complexType name="ControlChoicesType">
  556. <xs:sequence>
  557. <xs:element name="label" type="ControlLabelType" minOccurs="0"/>
  558. <xs:group ref="ListGroup" maxOccurs="unbounded"/>
  559. </xs:sequence>
  560. <xs:attributeGroup ref="CommonAttributes"/>
  561. </xs:complexType>
  562. <xs:complexType name="ControlLabelType">
  563. <xs:simpleContent>
  564. <xs:restriction base="LocalizedStringType"/>
  565. </xs:simpleContent>
  566. </xs:complexType>
  567. <xs:complexType name="ControlItemType">
  568. <xs:sequence>
  569. <xs:element name="label" type="ControlLabelType"/>
  570. <xs:element name="value" type="xs:string"/>
  571. </xs:sequence>
  572. <xs:attributeGroup ref="CommonAttributes"/>
  573. </xs:complexType>
  574. <!-- delay -->
  575. <xs:complexType name="DelayType">
  576. <xs:sequence>
  577. <xs:element name="period" type="xs:positiveInteger"/>
  578. <xs:element name="message" type="xs:string" minOccurs="0"/>
  579. </xs:sequence>
  580. </xs:complexType>
  581. <!-- error -->
  582. <xs:complexType name="ErrorType">
  583. <xs:sequence>
  584. <xs:element name="code" type="xs:string"/>
  585. <xs:element name="message" type="xs:string"/>
  586. <xs:element name="details" type="xs:string" minOccurs="0"/>
  587. </xs:sequence>
  588. </xs:complexType>
  589. <xs:complexType name="BinaryType">
  590. <xs:simpleContent>
  591. <xs:extension base="xs:base64Binary"/>
  592. </xs:simpleContent>
  593. </xs:complexType>
  594. <xs:complexType name="ParamType" mixed="true">
  595. <xs:choice>
  596. <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
  597. <xs:any namespace="##local" processContents="lax" minOccurs="0"/>
  598. </xs:choice>
  599. <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
  600. </xs:complexType>
  601. <!-- events -->
  602. <xs:complexType name="ModelTypesType">
  603. <xs:sequence>
  604. <xs:any namespace="##other">
  605. <xs:annotation>
  606. <xs:documentation/>
  607. </xs:annotation>
  608. </xs:any>
  609. </xs:sequence>
  610. </xs:complexType>
  611. <xs:complexType name="EventDescriptionType">
  612. <xs:sequence>
  613. <xs:element name="aliases" type="xs:QName" minOccurs="0" maxOccurs="unbounded">
  614. <xs:annotation>
  615. <xs:documentation>An array of the QNames of events known to be semantically equivalent to this event. While this
  616. can provide a hint to the Controller concerning potential items that could be correlated with this event, it
  617. remains the Controller's responsibility to do any transformations required to produce the described event.</xs:documentation>
  618. </xs:annotation>
  619. </xs:element>
  620. <xs:element name="description" type="LocalizedStringType" minOccurs="0">
  621. <xs:annotation>
  622. <xs:documentation>A localized, free form description of the event. Expected use of this field is for display at the
  623. Consumer to someone who will choose how this event is mapped to other events.</xs:documentation>
  624. </xs:annotation>
  625. </xs:element>
  626. <xs:element name="label" type="LocalizedStringType" minOccurs="0">
  627. <xs:annotation>
  628. <xs:documentation>A relatively short description of the event. Intended for display (for example, as a tooltip) in any
  629. Consumer-generated user interface for processing/distributing the event.</xs:documentation>
  630. </xs:annotation>
  631. </xs:element>
  632. <xs:element name="hint" type="LocalizedStringType" minOccurs="0">
  633. <xs:annotation>
  634. <xs:documentation>A short, human-readable name for the event. Intended purpose is for display in any Consumergenerated
  635. user interface for processing/distributing the event.</xs:documentation>
  636. </xs:annotation>
  637. </xs:element>
  638. <xs:element name="schemaType" type="ModelTypesType" minOccurs="0">
  639. <xs:annotation>
  640. <xs:documentation>TBD</xs:documentation>
  641. </xs:annotation>
  642. </xs:element>
  643. <xs:element name="extensions" type="ExtensionType" minOccurs="0" maxOccurs="unbounded">
  644. <xs:annotation>
  645. <xs:documentation>The extensions field MAY be used to extend this structure. Extension elements MUST be
  646. from namespaces other than Fragment.</xs:documentation>
  647. </xs:annotation>
  648. </xs:element>
  649. </xs:sequence>
  650. <xs:attribute name="name" type="xs:QName" use="required">
  651. <xs:annotation>
  652. <xs:documentation>A namespaced name for the event being described. If this event's payload is not carried within the
  653. NamedStringArray alternative of the EventPayload structure, this name also becomes the XML element
  654. name carrying the payload with the type field defining the type of the element.</xs:documentation>
  655. </xs:annotation>
  656. </xs:attribute>
  657. <xs:attribute name="type" type="xs:QName" use="optional">
  658. <xs:annotation>
  659. <xs:documentation>A reference to a schema-defined payload the event will carry at runtime. If the type is not supplied,
  660. the Consumer SHOULD treat this as an opaque event payload. Note that this includes those events which
  661. are signals and therefore carry no payload.</xs:documentation>
  662. </xs:annotation>
  663. </xs:attribute>
  664. <xs:attribute name="schemaLocation" type="xs:anyURI" use="optional">
  665. <xs:annotation>
  666. <xs:documentation>TBD</xs:documentation>
  667. </xs:annotation>
  668. </xs:attribute>
  669. </xs:complexType>
  670. <xs:complexType name="EventPayloadType">
  671. <xs:choice>
  672. <xs:element name="params" minOccurs="0">
  673. <xs:annotation>
  674. <xs:documentation/>
  675. </xs:annotation>
  676. <xs:complexType>
  677. <xs:sequence>
  678. <xs:element name="param" type="StringParamType" minOccurs="0" maxOccurs="unbounded"/>
  679. </xs:sequence>
  680. </xs:complexType>
  681. </xs:element>
  682. <xs:any namespace="##other" minOccurs="0">
  683. <xs:annotation>
  684. <xs:documentation>The wrapper element for the event's data. This is required to come from a namespace other than the
  685. Fragment namespace unless it can be carried within the NamedStringArray type (defined as an alternative for convenient serialization/deserialization of
  686. this common type).</xs:documentation>
  687. </xs:annotation>
  688. </xs:any>
  689. </xs:choice>
  690. </xs:complexType>
  691. <xs:complexType name="EventType">
  692. <xs:sequence>
  693. <xs:element name="payload" type="EventPayloadType" minOccurs="0">
  694. <xs:annotation>
  695. <xs:documentation>This optional field contains the data for the event. One example of when this field might not be
  696. included is when the event is simply a signal and the event's name thereby carries all of the semantics of the
  697. event. Its contents MUST conform to the schema referenced by the type field.</xs:documentation>
  698. </xs:annotation>
  699. </xs:element>
  700. <xs:element name="extensions" type="ExtensionType" minOccurs="0" maxOccurs="unbounded">
  701. <xs:annotation>
  702. <xs:documentation>The extensions field MAY be used to extend this structure. Extension elements MUST be
  703. from namespaces other than Fragment.</xs:documentation>
  704. </xs:annotation>
  705. </xs:element>
  706. </xs:sequence>
  707. <xs:attribute name="name" type="xs:QName" use="required">
  708. <xs:annotation>
  709. <xs:documentation>The namespaced name of the event.</xs:documentation>
  710. </xs:annotation>
  711. </xs:attribute>
  712. <xs:attribute name="type" type="xs:QName" use="optional">
  713. <xs:annotation>
  714. <xs:documentation>A reference to a schema-defined type for the event's payload.</xs:documentation>
  715. </xs:annotation>
  716. </xs:attribute>
  717. </xs:complexType>
  718. <!-- library -->
  719. <xs:complexType name="LibraryType">
  720. <xs:attribute name="type" type="xs:string" use="optional" default="text/javascript"/>
  721. <xs:attribute name="href" type="xs:string" use="required"/>
  722. </xs:complexType>
  723. <!-- css -->
  724. <xs:complexType name="CssType">
  725. <xs:attribute name="type" type="xs:string" use="optional" default="text/css"/>
  726. <xs:attribute name="media" type="xs:string" use="optional" default="all"/>
  727. <xs:attribute name="href" type="xs:string" use="required"/>
  728. </xs:complexType>
  729. <xs:complexType name="ParamsType">
  730. <xs:sequence>
  731. <xs:element name="param" type="ParamType" maxOccurs="unbounded"/>
  732. </xs:sequence>
  733. </xs:complexType>
  734. <!-- page -->
  735. <xs:element name="page">
  736. <xs:complexType>
  737. <xs:sequence>
  738. <xs:element name="info" type="InfoType" minOccurs="0"/>
  739. <xs:element name="meta" type="MetaType" minOccurs="0">
  740. <xs:annotation>
  741. <xs:documentation>Metadata description of page capabilities and resources.</xs:documentation>
  742. </xs:annotation>
  743. </xs:element>
  744. <xs:element name="layout" type="LayoutType"/>
  745. <xs:element name="fragmentInstance" type="FragmentInstanceType" minOccurs="0" maxOccurs="unbounded"/>
  746. </xs:sequence>
  747. <xs:attribute name="version" type="xs:double" use="optional"/>
  748. </xs:complexType>
  749. </xs:element>
  750. <!-- layout -->
  751. <xs:complexType name="LayoutType">
  752. <xs:sequence>
  753. <xs:element name="layoutProperties" type="LayoutPropertiesType" minOccurs="0"/>
  754. <xs:choice>
  755. <xs:element name="row" type="LayoutRowType" maxOccurs="unbounded"/>
  756. <xs:element name="grid" type="GridType"/>
  757. </xs:choice>
  758. </xs:sequence>
  759. <xs:attribute name="version" type="xs:double"/>
  760. </xs:complexType>
  761. <xs:complexType name="LayoutRowType">
  762. <xs:sequence>
  763. <xs:element name="layoutProperties" type="LayoutPropertiesType" minOccurs="0"/>
  764. <xs:element name="column" type="LayoutColumnType" minOccurs="0" maxOccurs="unbounded"/>
  765. </xs:sequence>
  766. </xs:complexType>
  767. <xs:complexType name="LayoutColumnType">
  768. <xs:sequence>
  769. <xs:element name="layoutProperties" type="LayoutPropertiesType" minOccurs="0"/>
  770. <xs:element name="row" type="LayoutRowType" minOccurs="0" maxOccurs="unbounded"/>
  771. <xs:element name="fragment" type="LayoutFragmentType" minOccurs="0" maxOccurs="unbounded"/>
  772. </xs:sequence>
  773. <xs:attribute name="width" type="xs:string" use="optional"/>
  774. </xs:complexType>
  775. <xs:complexType name="LayoutFragmentType">
  776. <xs:sequence>
  777. <xs:element name="layoutProperties" type="LayoutPropertiesType" minOccurs="0"/>
  778. </xs:sequence>
  779. <xs:attribute name="refid" type="xs:NMTOKEN" use="required"/>
  780. </xs:complexType>
  781. <xs:complexType name="GridType">
  782. <xs:sequence>
  783. <xs:element name="row" type="GridRowType" maxOccurs="unbounded"/>
  784. </xs:sequence>
  785. </xs:complexType>
  786. <xs:complexType name="GridRowType">
  787. <xs:sequence>
  788. <xs:element name="layoutProperties" type="LayoutPropertiesType" minOccurs="0"/>
  789. <xs:element name="cell" type="GridCellType" minOccurs="0" maxOccurs="unbounded"/>
  790. </xs:sequence>
  791. </xs:complexType>
  792. <xs:complexType name="GridCellType">
  793. <xs:sequence>
  794. <xs:element name="layoutProperties" type="LayoutPropertiesType" minOccurs="0"/>
  795. <xs:element name="fragment" type="LayoutFragmentType" minOccurs="0"/>
  796. </xs:sequence>
  797. <xs:attribute name="rowspan" type="xs:positiveInteger"/>
  798. <xs:attribute name="colspan" type="xs:positiveInteger"/>
  799. </xs:complexType>
  800. <xs:complexType name="FragmentInstanceType">
  801. <xs:sequence>
  802. <xs:element name="custom" type="ParamsType" minOccurs="0"/>
  803. <xs:element name="params" type="ParamsType" minOccurs="0"/>
  804. <xs:element name="info" type="InfoType" minOccurs="0"/>
  805. </xs:sequence>
  806. <xs:attribute name="id" type="xs:NMTOKEN" use="required"/>
  807. <xs:attribute name="href" type="xs:string" use="required"/>
  808. </xs:complexType>
  809. <xs:complexType name="LayoutPropertiesType">
  810. <xs:sequence>
  811. <xs:element name="param" maxOccurs="unbounded">
  812. <xs:complexType>
  813. <xs:simpleContent>
  814. <xs:extension base="xs:string">
  815. <xs:attribute name="name" type="xs:string" use="required">
  816. <xs:annotation>
  817. <xs:documentation>e.g. caption, margins, noedit, nomaximized, etc.</xs:documentation>
  818. </xs:annotation>
  819. </xs:attribute>
  820. </xs:extension>
  821. </xs:simpleContent>
  822. </xs:complexType>
  823. </xs:element>
  824. </xs:sequence>
  825. </xs:complexType>
  826. <!-- application -->
  827. <xs:element name="application">
  828. <xs:complexType>
  829. <xs:sequence>
  830. <xs:element name="info" type="InfoType"/>
  831. <xs:element name="styles" minOccurs="0">
  832. <xs:complexType>
  833. <xs:sequence>
  834. <xs:element name="css" type="CssType" maxOccurs="unbounded"/>
  835. </xs:sequence>
  836. </xs:complexType>
  837. </xs:element>
  838. <xs:element name="libraries" minOccurs="0">
  839. <xs:complexType>
  840. <xs:sequence>
  841. <xs:element name="library" type="LibraryType" maxOccurs="unbounded"/>
  842. </xs:sequence>
  843. </xs:complexType>
  844. </xs:element>
  845. <xs:element name="default" type="FragmentInstanceType"/>
  846. </xs:sequence>
  847. </xs:complexType>
  848. </xs:element>
  849. <!-- resourceList -->
  850. <xs:complexType name="ResourceListType">
  851. <xs:sequence>
  852. <xs:element name="resources" type="ResourceType" maxOccurs="unbounded">
  853. <xs:annotation>
  854. <xs:documentation>Each member of this array provides the localized values for a resource.</xs:documentation>
  855. </xs:annotation>
  856. </xs:element>
  857. <xs:element name="extensions" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
  858. </xs:sequence>
  859. </xs:complexType>
  860. <xs:complexType name="ResourceType">
  861. <xs:sequence>
  862. <xs:element name="values" type="ResourceValueType" maxOccurs="unbounded">
  863. <xs:annotation>
  864. <xs:documentation>Each member of this array provides the value for the resource in a locale.</xs:documentation>
  865. </xs:annotation>
  866. </xs:element>
  867. <xs:element name="extensions" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
  868. </xs:sequence>
  869. <xs:attribute name="name" type="xs:string" use="required">
  870. <xs:annotation>
  871. <xs:documentation>The name of the resource for which this is a list of localized values.</xs:documentation>
  872. </xs:annotation>
  873. </xs:attribute>
  874. </xs:complexType>
  875. <xs:complexType name="ResourceValueType">
  876. <xs:sequence>
  877. <xs:element name="value" type="xs:string">
  878. <xs:annotation>
  879. <xs:documentation>The value for this localized string in the declared locale.</xs:documentation>
  880. </xs:annotation>
  881. </xs:element>
  882. <xs:element name="extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
  883. </xs:sequence>
  884. <xs:attribute ref="xml:lang" use="required">
  885. <xs:annotation>
  886. <xs:documentation>The locale for this localized value.</xs:documentation>
  887. </xs:annotation>
  888. </xs:attribute>
  889. </xs:complexType>
  890. <xs:complexType name="StringParamType">
  891. <xs:simpleContent>
  892. <xs:extension base="xs:string">
  893. <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
  894. </xs:extension>
  895. </xs:simpleContent>
  896. </xs:complexType>
  897. </xs:schema>
  898. <!-- $Header: //cpscrn/main/src/java/etc/webapps/cps/WEB-INF/fragments/schemas/fragments.xsd#1 $ -->
  899. <!-- $DateTime: 2008/10/22 11:12:04 $ -->
  900. <!-- $Change: 25109 $ -->