validator.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  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. <validator
  13. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  14. xsi:schemaLocation="http://developer.cognos.com/schemas/validator/1/ ../../schemas/validator.xsd"
  15. xmlns="http://developer.cognos.com/schemas/validator/1/"
  16. namespace="urn:cognos:fragments:validator"
  17. version="1.0">
  18. <!--
  19. ======================================================================
  20. Pattern definitions
  21. ======================================================================
  22. -->
  23. <patternDef id="crn-objects">
  24. <regex>^(account|adminFolder|agentDefinition(View)?|agentOutput(HotList|ResultSet)|any|agent(Service|State|TaskDefinition)|analysis|archiveLocation|asyncDetailUnstructuredData|baseHistory|batchReportService|capability|certificateService|cmmSystemTask|configuration(Folder)?|contact|contentReference|cd|advisor|content(ManagerService|Task)?|dashboard|dataIntegrationService|dataMovement(Service|Task)|dataSource(Connection|Signon)?|deliveryService|deploymentDetail|deploymentHistory|dimensionalDataService|directory|dispatcher|distributionList|document(Content|Version)?|drillPath|eventManagementService|exportDeployment(Folder)?|folder|graphic|group(Type)?|history|historyDetail|historyDetailRelatedHistory|historyDetailRelatedReports|historyDetailReportService|index(Data|Search|Update)(Service|Task)|importDeployment(Folder)?|jobAndScheduleMonitoringService|job(Definition|History|Service|StepDefinition)|logService|memo|metadataService|metric(Type)?|metrics(DataSourceETLTask|ExtractTask|ExportTask|FileImportTask|MaintenanceTask|ManagerPDFService|ManagerService|Package|TaskExecutionService)|mobileService|model|modelView|namespace(Folder)?|monitorService|mruFolder|nil|output|package(Configuration)?|page|pageDefinition|pagelet(Folder|Instance)?|planning(AdministrationConsoleService|RuntimeService|Task(Service)?)|portal(Package|Skin)?(Folder)?|portlet(Folder|Instance|Producer)?|powerPlayCube|powerPlayReport|powerPlay8Cube|powerPlay8Report|powerPlay8ReportView|presentationService|printer|project|query|interactiveReport|report(History|(Data)?Service(AgentDefinition)?|Template|View)?|role|root|runTimeState|schedule|scorecard|secured(Feature|Function)|service|session|shortcut(Agent)?(RSSTask)?|SQL|storedProcedureTask|subscriptionFolder|systemService|textExtractTask|transientStateFolder|undefined|uiProfile|unknown|url|URL|urlRSSTask|webServiceTask|areaChart|barChart|bubbleChart|bulletChart|crosstab|gaugeChart|lineChart|list|mapChart|marimekkoChart|metricsChart|nopart|paretoChart|pieChart|polarChart|progressiveChart|part|radarChart|scatterChart|threeDCombinationChart|threeDScatterChart|winLossChart|combinationChart|analyticPackage|analyticsPackage|comment|launchable|dataMovement|advisorPackage|metricTask|planningApplication|planningPackage|tm1Package)$</regex>
  25. </patternDef>
  26. <patternDef id="PATDEF_identifier">
  27. <regex>[A-Za-z0-9_]{0,1024}</regex>
  28. </patternDef>
  29. <!--
  30. ======================================================================
  31. Fragment definitions
  32. ======================================================================
  33. -->
  34. <ruleDef id="RULEDEF_id">
  35. <pattern>
  36. <regex>[A-Za-z0-9_:\-.$]{0,1024}</regex>
  37. </pattern>
  38. </ruleDef>
  39. <ruleDef id="RULEDEF_url">
  40. <type>
  41. <string urlType="true"/>
  42. </type>
  43. </ruleDef>
  44. <ruleDef id="RULEDEF_absolute_url_pattern">
  45. <pattern>
  46. <regex caseSensitive="false">(.{0})|^http(s)?://([\w-_.]+)(:(\d|[1-9]\d|[1-9]\d\d|[1-9]\d\d\d|[1-5]\d\d\d\d|6[0-4]\d\d\d|65[0-4]\d\d|655[0-2]\d|6553[0-5]))?((/?)|((/{1,2}.+)+/?))$</regex>
  47. </pattern>
  48. </ruleDef>
  49. <ruleDef id="RULEDEF_resource" operator="or">
  50. <pattern>
  51. <regex>(/.*|\?.*|(bus|pipeline)://(.*))?</regex>
  52. </pattern>
  53. <ruleRef id="RULEDEF_url"/>
  54. </ruleDef>
  55. <ruleDef id="RULEDEF_searchpath">
  56. <pattern>
  57. <regex>^(storeID\(("|')\w{32,36}("|')\)|/.{1,32768}|CAMID\(("|').*("|')\)(\/.*)?|\~)</regex>
  58. </pattern>
  59. </ruleDef>
  60. <ruleDef id="RULEDEF_searchpath_or_url" operator="or">
  61. <ruleRef id="RULEDEF_searchpath"/>
  62. <ruleRef id="RULEDEF_url"/>
  63. </ruleDef>
  64. <ruleDef id="RULEDEF_skin">
  65. <pattern>
  66. <regex>[a-zA-Z0-9_-]{0,1024}</regex>
  67. </pattern>
  68. </ruleDef>
  69. <ruleDef id="help_contextid">
  70. <type>
  71. <string maxLength="64" />
  72. </type>
  73. <patternRef id="PATDEF_identifier" />
  74. </ruleDef>
  75. <!--
  76. ======================================================================
  77. Obsolete definitions
  78. ======================================================================
  79. -->
  80. <ruleDef id="global-max-length">
  81. <type>
  82. <string maxLength="16777216"/>
  83. </type>
  84. </ruleDef>
  85. <ruleDef id="global-invalid-chars">
  86. <pattern>
  87. <regex not="true">\u0000|\u0001|\u0002|\u0003|\u0004|\u0005|\u0006|\u0007|\u0008|\u000b|\u000c|\u000e|\u000f|\u0010|\u0011|\u0012|\u0013|\u0014|\u0015|\u0016|\u0017|\u0018|\u0019|\u001a|\u001b|\u001c|\u001d|\u001e|\u001f</regex>
  88. </pattern>
  89. </ruleDef>
  90. <ruleDef id="name">
  91. <pattern>
  92. <regex>[a-zA-Z0-9_]{0,128}</regex>
  93. </pattern>
  94. </ruleDef>
  95. <ruleDef id="searchpath">
  96. <type>
  97. <string maxLength="32768"/>
  98. </type>
  99. </ruleDef>
  100. <ruleDef id="searchtext">
  101. <type>
  102. <string maxLength="1024" />
  103. </type>
  104. </ruleDef>
  105. <ruleDef id="frag-id">
  106. <ruleRef id="RULEDEF_id" />
  107. </ruleDef>
  108. <ruleDef id="frag-resource">
  109. <ruleRef id="RULEDEF_resource" />
  110. </ruleDef>
  111. <ruleDef id="helpid">
  112. <type>
  113. <string maxLength="64" />
  114. </type>
  115. <patternRef id="PATDEF_identifier" />
  116. </ruleDef>
  117. <ruleDef id="localizedString">
  118. <type>
  119. <string maxLength="1024" />
  120. </type>
  121. </ruleDef>
  122. <ruleDef id="localeList">
  123. <pattern>
  124. <regex>(([a-z][a-z](-[A-Za-z][A-Za-z])?)?(;)?)*</regex>
  125. <!-- e.g.: en, en-US, en-ca -->
  126. </pattern>
  127. <type>
  128. <string />
  129. </type>
  130. </ruleDef>
  131. <ruleDef id="locale">
  132. <pattern>
  133. <regex>([a-z][a-z](-[A-Za-z][A-Za-z])?)?</regex>
  134. <!-- e.g.: en, en-US, en-ca -->
  135. </pattern>
  136. <type>
  137. <string maxLength="6" />
  138. </type>
  139. </ruleDef>
  140. <!--
  141. ======================================================================
  142. Global rules
  143. ======================================================================
  144. -->
  145. <global skipJavaScript="true">
  146. <ruleRef id="global-max-length" />
  147. </global>
  148. <global skipJavaScript="true">
  149. <ruleRef id="global-invalid-chars" />
  150. </global>
  151. <!--
  152. ======================================================================
  153. Parameters
  154. ======================================================================
  155. -->
  156. <!-- transients with a channel have this name pattern: name[channel?] -->
  157. <parameter skipJavaScript="false">
  158. <namePattern>
  159. <regex>[A-Za-z0-9_]+\[([A-Za-z0-9_]*)?\]</regex>
  160. </namePattern>
  161. <rule>
  162. <type>
  163. <string />
  164. </type>
  165. </rule>
  166. </parameter>
  167. <parameter skipJavaScript="true">
  168. <name>encoding</name>
  169. <rule>
  170. <type>
  171. <string maxLength="64" />
  172. </type>
  173. </rule>
  174. </parameter>
  175. <parameter skipJavaScript="true">
  176. <name>frag-agent</name>
  177. <rule>
  178. <type>
  179. <string maxLength="512" />
  180. </type>
  181. </rule>
  182. </parameter>
  183. <parameter skipJavaScript="true">
  184. <name>frag-channel</name>
  185. <rule>
  186. <patternRef id="PATDEF_identifier" />
  187. </rule>
  188. </parameter>
  189. <parameter skipJavaScript="true">
  190. <name>frag-custom</name>
  191. <sign />
  192. </parameter>
  193. <parameter skipJavaScript="true">
  194. <name>frag-debug</name>
  195. <rule>
  196. <enumeration>
  197. <list>routing,restart,src,xml,pipeline,controller,fragment</list>
  198. </enumeration>
  199. </rule>
  200. </parameter>
  201. <parameter skipJavaScript="true">
  202. <name>frag-delegate</name>
  203. <rule>
  204. <enumeration emptyValid="true">
  205. <list>edit,view,config</list>
  206. </enumeration>
  207. </rule>
  208. </parameter>
  209. <parameter skipJavaScript="true">
  210. <name>frag-event</name>
  211. <rule>
  212. <type>
  213. <string />
  214. </type>
  215. </rule>
  216. </parameter>
  217. <parameter skipJavaScript="true">
  218. <name>frag-id</name>
  219. <ruleRef id="RULEDEF_id" />
  220. </parameter>
  221. <parameter skipJavaScript="true">
  222. <name>frag-markupid</name>
  223. <ruleRef id="RULEDEF_id" />
  224. </parameter>
  225. <parameter skipJavaScript="true">
  226. <name>frag-mode</name>
  227. <rule>
  228. <enumeration emptyValid="true">
  229. <list>view,edit,help,preview,config</list>
  230. </enumeration>
  231. </rule>
  232. </parameter>
  233. <parameter skipJavaScript="true">
  234. <name>frag-portalAgent</name>
  235. <rule>
  236. <type>
  237. <string maxLength="100" />
  238. </type>
  239. </rule>
  240. </parameter>
  241. <parameter skipJavaScript="true">
  242. <name>frag-producer</name>
  243. <rule>
  244. <type>
  245. <string />
  246. </type>
  247. </rule>
  248. </parameter>
  249. <parameter skipJavaScript="true">
  250. <name>frag-resource</name>
  251. <ruleRef id="RULEDEF_resource" />
  252. </parameter>
  253. <parameter skipJavaScript="true">
  254. <name>frag-state</name>
  255. <sign />
  256. </parameter>
  257. <parameter skipJavaScript="true">
  258. <name>frag-sub</name>
  259. <rule>
  260. <type>
  261. <string />
  262. </type>
  263. </rule>
  264. </parameter>
  265. <parameter skipJavaScript="true">
  266. <name>frag-validator</name>
  267. <rule>
  268. <type>
  269. <string />
  270. <!--note: frag-validator is a signed blob & transparently validated by Validator -->
  271. </type>
  272. </rule>
  273. </parameter>
  274. <parameter skipJavaScript="true">
  275. <name>frag-view</name>
  276. <rule>
  277. <enumeration emptyValid="true">
  278. <list>vtabs,htabs,dialog,details</list>
  279. </enumeration>
  280. </rule>
  281. </parameter>
  282. <parameter skipJavaScript="true">
  283. <name>frag-windowState</name>
  284. <rule>
  285. <enumeration emptyValid="true">
  286. <list>solo,normal,maximized,minimized</list>
  287. </enumeration>
  288. </rule>
  289. </parameter>
  290. <parameter skipJavaScript="true">
  291. <name>skin</name>
  292. <ruleRef id="RULEDEF_skin" />
  293. </parameter>
  294. <parameter skipJavaScript="true">
  295. <name>frag-gateway</name>
  296. <ruleRef id="RULEDEF_url" />
  297. </parameter>
  298. <parameter skipJavaScript="true">
  299. <name>frag-webcontent</name>
  300. <ruleRef id="RULEDEF_url" />
  301. </parameter>
  302. <parameter skipJavaScript="true">
  303. <name>frag-authToken</name>
  304. <rule><type><string/></type></rule>
  305. </parameter>
  306. <parameter skipJavaScript="true">
  307. <name>cps-authToken</name>
  308. <rule><type><string/></type></rule>
  309. </parameter>
  310. <parameter skipJavaScript="true">
  311. <name>frag-action</name>
  312. <rule>
  313. <enumeration emptyValid="true">
  314. <list>reset,attach</list>
  315. </enumeration>
  316. </rule>
  317. </parameter>
  318. <parameter skipJavaScript="true">
  319. <name>frag-customProperties</name>
  320. <rule><type><string/></type></rule>
  321. </parameter>
  322. </validator>