programmingDomain.xsd 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- ============================================================= -->
  3. <!-- HEADER -->
  4. <!-- ============================================================= -->
  5. <!-- MODULE: DITA Programming Domain -->
  6. <!-- VERSION: 1.1 -->
  7. <!-- DATE: November 2006 -->
  8. <!-- -->
  9. <!-- ============================================================= -->
  10. <!-- ============================================================= -->
  11. <!-- SYSTEM: Darwin Information Typing Architecture (DITA) -->
  12. <!-- -->
  13. <!-- PURPOSE: Define elements and specialization attributes -->
  14. <!-- for Programming Domain -->
  15. <!-- -->
  16. <!-- ORIGINAL CREATION DATE: -->
  17. <!-- March 2001 -->
  18. <!-- -->
  19. <!-- (C) Copyright OASIS-Open.org 2005., 2006 -->
  20. <!-- (C) Copyright IBM Corporation 2001, 2004. -->
  21. <!-- All Rights Reserved. -->
  22. <!-- ============================================================= -->
  23. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  24. <!-- ==================== Import Section ======================= -->
  25. <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="urn:oasis:names:tc:dita:xsd:xml.xsd:1.1"/>
  26. <xs:group name="pr-d-keyword">
  27. <xs:choice>
  28. <xs:element ref="option"/>
  29. <xs:element ref="parmname"/>
  30. <xs:element ref="apiname"/>
  31. </xs:choice >
  32. </xs:group >
  33. <xs:group name="pr-d-ph">
  34. <xs:choice>
  35. <xs:element ref="codeph" />
  36. <xs:element ref="synph" />
  37. </xs:choice>
  38. </xs:group>
  39. <xs:group name="pr-d-pre">
  40. <xs:choice>
  41. <xs:element ref="codeblock"/>
  42. </xs:choice >
  43. </xs:group >
  44. <xs:group name="pr-d-dl">
  45. <xs:choice>
  46. <xs:element ref="parml"/>
  47. </xs:choice >
  48. </xs:group >
  49. <xs:group name="pr-d-fig">
  50. <xs:choice>
  51. <xs:element ref="syntaxdiagram"/>
  52. </xs:choice >
  53. </xs:group >
  54. <xs:group name="syntaxdiagram">
  55. <xs:choice>
  56. <xs:element ref="syntaxdiagram"/>
  57. </xs:choice>
  58. </xs:group>
  59. <xs:group name="parml">
  60. <xs:choice>
  61. <xs:element ref="parml"/>
  62. </xs:choice>
  63. </xs:group>
  64. <xs:group name="codeblock">
  65. <xs:choice>
  66. <xs:element ref="codeblock"/>
  67. </xs:choice>
  68. </xs:group>
  69. <xs:group name="synph">
  70. <xs:choice>
  71. <xs:element ref="synph"/>
  72. </xs:choice>
  73. </xs:group>
  74. <xs:group name="codeph">
  75. <xs:choice>
  76. <xs:element ref="codeph"/>
  77. </xs:choice>
  78. </xs:group>
  79. <xs:group name="option">
  80. <xs:choice>
  81. <xs:element ref="option"/>
  82. </xs:choice>
  83. </xs:group>
  84. <xs:group name="parmname">
  85. <xs:choice>
  86. <xs:element ref="parmname"/>
  87. </xs:choice>
  88. </xs:group>
  89. <xs:group name="apiname">
  90. <xs:choice>
  91. <xs:element ref="apiname"/>
  92. </xs:choice>
  93. </xs:group>
  94. <xs:attributeGroup name="univ-atts-no-importance">
  95. <xs:attributeGroup ref="id-atts"/>
  96. <xs:attribute name="base" type="xs:string" />
  97. <xs:attributeGroup ref="base-attribute-extensions"/>
  98. <xs:attribute name="rev" type="xs:string"/>
  99. <xs:attribute name="status" type="status-atts.class"/>
  100. <xs:attributeGroup ref="localization-atts"/>
  101. <xs:attributeGroup ref="filter-atts"/>
  102. </xs:attributeGroup>
  103. <xs:attributeGroup name="univ-atts-importance-nodefault">
  104. <xs:attributeGroup ref="id-atts"/>
  105. <xs:attribute name="platform" type="xs:string"/>
  106. <xs:attribute name="product" type="xs:string"/>
  107. <xs:attribute name="audience" type="xs:string"/>
  108. <xs:attribute name="otherprops" type="xs:string"/>
  109. <xs:attribute name="rev" type="xs:string"/>
  110. <xs:attribute name="importance" type="importance-att-nodefault.class"/>
  111. <xs:attribute name="translate" type="yesno-att.class"/>
  112. <xs:attribute ref="xml:lang"/>
  113. </xs:attributeGroup>
  114. <xs:simpleType name="importance-att-progdom.class">
  115. <xs:restriction base="importance-atts.class">
  116. <xs:enumeration value="optional"/>
  117. <xs:enumeration value="required"/>
  118. <xs:enumeration value="default"/>
  119. <xs:enumeration value="-dita-use-conref-target"/>
  120. </xs:restriction>
  121. </xs:simpleType>
  122. <xs:simpleType name="importance-att-nodefault.class">
  123. <xs:restriction base="importance-atts.class">
  124. <xs:enumeration value="optional"/>
  125. <xs:enumeration value="required"/>
  126. <xs:enumeration value="-dita-use-conref-target"/>
  127. </xs:restriction>
  128. </xs:simpleType>
  129. <xs:element name="codeph">
  130. <xs:annotation>
  131. <xs:documentation>
  132. The code phrase (&lt;<keyword>codeph</keyword>&gt;) element represents a snippet
  133. of code within the main flow of text. The code phrase may be displayed in
  134. a monospaced font for emphasis. This element is part of the DITA programming
  135. domain, a special set of DITA elements designed to document programming tasks,
  136. concepts and reference information.
  137. </xs:documentation>
  138. </xs:annotation>
  139. <xs:complexType mixed="true">
  140. <xs:complexContent>
  141. <xs:extension base="codeph.class">
  142. <xs:attribute ref="class" default="+ topic/ph pr-d/codeph "/>
  143. </xs:extension>
  144. </xs:complexContent>
  145. </xs:complexType>
  146. </xs:element>
  147. <xs:complexType name="codeph.class" mixed="true">
  148. <xs:choice minOccurs="0" maxOccurs="unbounded">
  149. <xs:group ref="basic.ph.notm" />
  150. <xs:group ref="data.element.incl"/>
  151. <xs:group ref="foreign.unknown.incl"/>
  152. </xs:choice>
  153. <xs:attribute name="outputclass" type="xs:string"/>
  154. <xs:attributeGroup ref="global-atts"/>
  155. <xs:attributeGroup ref="univ-atts"/>
  156. </xs:complexType>
  157. <xs:element name="codeblock">
  158. <xs:annotation>
  159. <xs:documentation>
  160. The &lt;<keyword>codeblock</keyword>&gt; element represents lines of
  161. program code. Like the <ph>
  162. <xref href="xref.xml">&lt;<keyword>pre</keyword>&gt;</xref>
  163. </ph> element,
  164. content of this element has preserved line endings and is output in a monospaced
  165. font. This element is part of the DITA programming domain, a special set of
  166. DITA elements designed to document programming tasks, concepts and reference
  167. information.
  168. </xs:documentation>
  169. </xs:annotation>
  170. <xs:complexType mixed="true">
  171. <xs:complexContent>
  172. <xs:extension base="codeblock.class">
  173. <xs:attribute ref="class" default="+ topic/pre pr-d/codeblock "/>
  174. </xs:extension>
  175. </xs:complexContent>
  176. </xs:complexType>
  177. </xs:element>
  178. <xs:complexType name="codeblock.class" mixed="true">
  179. <xs:choice minOccurs="0" maxOccurs="unbounded">
  180. <xs:group ref="basic.ph.notm"/>
  181. <xs:group ref="txt.incl"/>
  182. <xs:group ref="data.element.incl"/>
  183. <xs:group ref="foreign.unknown.incl"/>
  184. </xs:choice>
  185. <xs:attribute name="outputclass" type="xs:string"/>
  186. <xs:attribute name="spectitle" type="xs:string"/>
  187. <xs:attributeGroup ref="display-atts"/>
  188. <xs:attributeGroup ref="univ-atts"/>
  189. <xs:attribute ref="xml:space" fixed="preserve"/>
  190. <xs:attributeGroup ref="global-atts"/>
  191. </xs:complexType>
  192. <xs:element name="option">
  193. <xs:annotation>
  194. <xs:documentation>
  195. The &lt;<keyword>option</keyword>&gt; element describes an option
  196. that can be used to modify a command (or something else, like a configuration).
  197. This element is part of the DITA programming domain, a special set of DITA
  198. elements designed to document programming tasks, concepts and reference information.
  199. </xs:documentation>
  200. </xs:annotation>
  201. <xs:complexType mixed="true">
  202. <xs:complexContent>
  203. <xs:extension base="option.class">
  204. <xs:attribute ref="class" default="+ topic/keyword pr-d/option "/>
  205. </xs:extension>
  206. </xs:complexContent>
  207. </xs:complexType>
  208. </xs:element>
  209. <xs:complexType name="option.class" mixed="true">
  210. <xs:attribute name="keyref" type="xs:string"/>
  211. <xs:attribute name="outputclass" type="xs:string"/>
  212. <xs:attributeGroup ref="global-atts"/>
  213. <xs:attributeGroup ref="univ-atts"/>
  214. </xs:complexType>
  215. <xs:element name="var">
  216. <xs:annotation>
  217. <xs:documentation>
  218. Within a syntax definition, the &lt;<keyword>var</keyword>&gt; element
  219. defines a variable for which the user must supply content, such as their user
  220. name or password. It is represented in output in an italic font.
  221. This element is part of the DITA programming domain, a special set of DITA
  222. elements designed to document programming tasks, concepts and reference information.
  223. </xs:documentation>
  224. </xs:annotation>
  225. <xs:complexType mixed="true">
  226. <xs:complexContent>
  227. <xs:extension base="var.class">
  228. <xs:attribute ref="class" default="+ topic/ph pr-d/var "/>
  229. </xs:extension>
  230. </xs:complexContent>
  231. </xs:complexType>
  232. </xs:element>
  233. <xs:complexType name="var.class" mixed="true">
  234. <xs:choice minOccurs="0" maxOccurs="unbounded">
  235. <xs:group ref="words.cnt"/>
  236. </xs:choice>
  237. <xs:attribute name="outputclass" type="xs:string"/>
  238. <xs:attribute name="importance" type="importance-att-progdom.class"/>
  239. <xs:attributeGroup ref="global-atts"/>
  240. <xs:attributeGroup ref="univ-atts-no-importance"/>
  241. </xs:complexType>
  242. <xs:element name="parmname">
  243. <xs:annotation>
  244. <xs:documentation>
  245. When referencing the name of an application programming interface
  246. parameter within the text flow of your topic, use the parameter
  247. name (&lt;<keyword>parmname</keyword>&gt;) element to markup the parameter. This element
  248. is part of the DITA programming domain, a special set of DITA elements designed
  249. to document programming tasks, concepts and reference information.
  250. </xs:documentation>
  251. </xs:annotation>
  252. <xs:complexType mixed="true">
  253. <xs:complexContent>
  254. <xs:extension base="parmname.class">
  255. <xs:attribute ref="class" default="+ topic/keyword pr-d/parmname "/>
  256. </xs:extension>
  257. </xs:complexContent>
  258. </xs:complexType>
  259. </xs:element>
  260. <xs:complexType name="parmname.class" mixed="true">
  261. <xs:attribute name="keyref" type="xs:string"/>
  262. <xs:attribute name="outputclass" type="xs:string"/>
  263. <xs:attributeGroup ref="global-atts"/>
  264. <xs:attributeGroup ref="univ-atts"/>
  265. </xs:complexType>
  266. <xs:element name="synph">
  267. <xs:annotation>
  268. <xs:documentation>
  269. The syntax phrase (&lt;synph&gt;) element is a container for syntax
  270. definition elements. It is used when a complete syntax definition is not needed,
  271. but some of the syntax elements, such as kwd, oper, delim, are used within
  272. the text flow of the topic content. This element is part of the DITA programming
  273. domain, a special set of DITA elements designed to document programming tasks,
  274. concepts and reference information.
  275. </xs:documentation>
  276. </xs:annotation>
  277. <xs:complexType mixed="true">
  278. <xs:complexContent>
  279. <xs:extension base="synph.class">
  280. <xs:attribute ref="class" default="+ topic/ph pr-d/synph "/>
  281. </xs:extension>
  282. </xs:complexContent>
  283. </xs:complexType>
  284. </xs:element>
  285. <xs:complexType name="synph.class" mixed="true">
  286. <xs:choice minOccurs="0" maxOccurs="unbounded">
  287. <!-- ph -->
  288. <xs:element ref="codeph"/>
  289. <xs:element ref="var"/>
  290. <xs:element ref="oper"/>
  291. <xs:element ref="delim"/>
  292. <xs:element ref="sep"/>
  293. <xs:element ref="synph"/>
  294. <!-- keyword -->
  295. <xs:element ref="option"/>
  296. <xs:element ref="parmname"/>
  297. <xs:element ref="kwd"/>
  298. </xs:choice>
  299. <xs:attribute name="outputclass" type="xs:string"/>
  300. <xs:attributeGroup ref="global-atts"/>
  301. <xs:attributeGroup ref="univ-atts"/>
  302. </xs:complexType>
  303. <xs:element name="oper">
  304. <xs:annotation>
  305. <xs:documentation>
  306. The operator (&lt;<keyword>oper</keyword>&gt;) element defines an operator
  307. within a syntax definition. Typical operators are equals (=), plus (+) or
  308. multiply (*). This element is part of the DITA programming domain, a special
  309. set of DITA elements designed to document programming tasks, concepts and
  310. reference information.
  311. </xs:documentation>
  312. </xs:annotation>
  313. <xs:complexType mixed="true">
  314. <xs:complexContent>
  315. <xs:extension base="oper.class">
  316. <xs:attribute ref="class" default="+ topic/ph pr-d/oper "/>
  317. </xs:extension>
  318. </xs:complexContent>
  319. </xs:complexType>
  320. </xs:element>
  321. <xs:complexType name="oper.class" mixed="true">
  322. <xs:choice minOccurs="0" maxOccurs="unbounded">
  323. <xs:group ref="words.cnt"/>
  324. </xs:choice>
  325. <xs:attribute name="outputclass" type="xs:string"/>
  326. <xs:attributeGroup ref="univ-atts-no-importance"/>
  327. <xs:attribute name="importance" type="importance-att-progdom.class"/>
  328. <xs:attributeGroup ref="global-atts"/>
  329. </xs:complexType>
  330. <xs:element name="delim">
  331. <xs:annotation>
  332. <xs:documentation>
  333. Within a syntax definition, the delimiter (&lt;delim&gt;) element defines
  334. a character marking the beginning or end of a section or part of the complete
  335. syntax. Typical delimiter characters are the parenthesis, comma, tab, vertical
  336. bar or other special characters. This element is part of the DITA programming
  337. domain, a special set of DITA elements designed to document programming tasks,
  338. concepts and reference information.
  339. </xs:documentation>
  340. </xs:annotation>
  341. <xs:complexType mixed="true">
  342. <xs:complexContent>
  343. <xs:extension base="delim.class">
  344. <xs:attribute ref="class" default="+ topic/ph pr-d/delim "/>
  345. </xs:extension>
  346. </xs:complexContent>
  347. </xs:complexType>
  348. </xs:element>
  349. <xs:complexType name="delim.class" mixed="true">
  350. <xs:choice minOccurs="0" maxOccurs="unbounded">
  351. <xs:group ref="words.cnt"/>
  352. </xs:choice>
  353. <xs:attribute name="outputclass" type="xs:string"/>
  354. <xs:attributeGroup ref="global-atts"/>
  355. <xs:attributeGroup ref="univ-atts-no-importance"/>
  356. <xs:attribute name="importance" type="importance-att-nodefault.class"/>
  357. </xs:complexType>
  358. <xs:element name="sep">
  359. <xs:annotation>
  360. <xs:documentation>
  361. The separator (&lt;sep&gt;) element defines a separator character that
  362. is inline with the content of a syntax definition. The separator occurs between
  363. keywords, operators or groups in a syntax definition. This element is part
  364. of the DITA programming domain, a special set of DITA elements designed to
  365. document programming tasks, concepts and reference information.
  366. </xs:documentation>
  367. </xs:annotation>
  368. <xs:complexType mixed="true">
  369. <xs:complexContent>
  370. <xs:extension base="sep.class">
  371. <xs:attribute ref="class" default="+ topic/ph pr-d/sep "/>
  372. </xs:extension>
  373. </xs:complexContent>
  374. </xs:complexType>
  375. </xs:element>
  376. <xs:complexType name="sep.class" mixed="true">
  377. <xs:choice minOccurs="0" maxOccurs="unbounded">
  378. <xs:group ref="words.cnt"/>
  379. </xs:choice>
  380. <xs:attribute name="outputclass" type="xs:string"/>
  381. <xs:attributeGroup ref="global-atts"/>
  382. <xs:attributeGroup ref="univ-atts-no-importance"/>
  383. <xs:attribute name="importance" type="importance-att-nodefault.class"/>
  384. </xs:complexType>
  385. <xs:element name="apiname">
  386. <xs:annotation>
  387. <xs:documentation>
  388. The &lt;<keyword>apiname</keyword>&gt; element provides the name of
  389. an application programming interface (API) such as a Java class name or method
  390. name. This element is part of the DITA programming domain, a special set of
  391. DITA elements designed to document programming tasks, concepts and reference
  392. information.
  393. </xs:documentation>
  394. </xs:annotation>
  395. <xs:complexType mixed="true">
  396. <xs:complexContent>
  397. <xs:extension base="apiname.class">
  398. <xs:attribute ref="class" default="+ topic/keyword pr-d/apiname "/>
  399. </xs:extension>
  400. </xs:complexContent>
  401. </xs:complexType>
  402. </xs:element>
  403. <xs:complexType name="apiname.class" mixed="true">
  404. <xs:attribute name="keyref" type="xs:string"/>
  405. <xs:attribute name="outputclass" type="xs:string"/>
  406. <xs:attributeGroup ref="global-atts"/>
  407. <xs:attributeGroup ref="univ-atts"/>
  408. </xs:complexType>
  409. <xs:element name="parml">
  410. <xs:annotation>
  411. <xs:documentation>
  412. The parameter list (&lt;<keyword>parml</keyword>&gt;) element contains a list of
  413. terms and definitions that describes the parameters in an application programming
  414. interface. This is a special kind of definition list that is
  415. designed for computer parameters. This element is part of the DITA programming
  416. domain, a special set of DITA elements designed to document programming tasks,
  417. concepts and reference information.
  418. </xs:documentation>
  419. </xs:annotation>
  420. <xs:complexType>
  421. <xs:complexContent>
  422. <xs:extension base="parml.class">
  423. <xs:attribute ref="class" default="+ topic/dl pr-d/parml "/>
  424. </xs:extension>
  425. </xs:complexContent>
  426. </xs:complexType>
  427. </xs:element>
  428. <xs:complexType name="parml.class">
  429. <xs:choice maxOccurs="unbounded">
  430. <xs:element ref="plentry" />
  431. </xs:choice>
  432. <xs:attribute name="spectitle" type="xs:string"/>
  433. <xs:attribute name="outputclass" type="xs:string"/>
  434. <xs:attributeGroup ref="global-atts"/>
  435. <xs:attributeGroup ref="univ-atts"/>
  436. <xs:attribute name="compact" type="yesno-att.class"/>
  437. </xs:complexType>
  438. <xs:element name="plentry">
  439. <xs:annotation>
  440. <xs:documentation>
  441. The parameter list entry element (&lt;plentry&gt;) contains one or more parameter terms and definitions (pd and pt).
  442. This element is part of the DITA programming domain, a special set of DITA elements designed to document
  443. programming tasks, concepts and reference information.
  444. </xs:documentation>
  445. </xs:annotation>
  446. <xs:complexType>
  447. <xs:complexContent>
  448. <xs:extension base="plentry.class">
  449. <xs:attribute ref="class" default="+ topic/dlentry pr-d/plentry "/>
  450. </xs:extension>
  451. </xs:complexContent>
  452. </xs:complexType>
  453. </xs:element>
  454. <xs:complexType name="plentry.class">
  455. <xs:sequence>
  456. <xs:element ref="pt" maxOccurs="unbounded"/>
  457. <xs:element ref="pd" maxOccurs="unbounded"/>
  458. </xs:sequence>
  459. <xs:attribute name="outputclass" type="xs:string"/>
  460. <xs:attributeGroup ref="global-atts"/>
  461. <xs:attributeGroup ref="univ-atts"/>
  462. </xs:complexType>
  463. <xs:element name="pt">
  464. <xs:annotation>
  465. <xs:documentation>
  466. A parameter term, within a parameter list entry, is enclosed by the &lt;<keyword>pt</keyword>&gt; element.
  467. This element is part of the DITA programming domain, a special set of DITA elements designed to document
  468. programming tasks, concepts and reference information.
  469. </xs:documentation>
  470. </xs:annotation>
  471. <xs:complexType mixed="true">
  472. <xs:complexContent>
  473. <xs:extension base="pt.class">
  474. <xs:attribute ref="class" default="+ topic/dt pr-d/pt "/>
  475. </xs:extension>
  476. </xs:complexContent>
  477. </xs:complexType>
  478. </xs:element>
  479. <xs:complexType name="pt.class" mixed="true">
  480. <xs:choice minOccurs="0" maxOccurs="unbounded">
  481. <xs:group ref="term.cnt"/>
  482. </xs:choice>
  483. <xs:attribute name="keyref" type="xs:string"/>
  484. <xs:attribute name="outputclass" type="xs:string"/>
  485. <xs:attributeGroup ref="global-atts"/>
  486. <xs:attributeGroup ref="univ-atts"/>
  487. </xs:complexType>
  488. <xs:element name="pd">
  489. <xs:annotation>
  490. <xs:documentation>
  491. A parameter definition, within a parameter list entry, is enclosed by the &lt;<keyword>pd</keyword>&gt; element.
  492. This element is part of the DITA programming domain, a special set of DITA elements designed to document
  493. programming tasks, concepts and reference information.
  494. </xs:documentation>
  495. </xs:annotation>
  496. <xs:complexType mixed="true">
  497. <xs:complexContent>
  498. <xs:extension base="pd.class">
  499. <xs:attribute ref="class" default="+ topic/dd pr-d/pd "/>
  500. </xs:extension>
  501. </xs:complexContent>
  502. </xs:complexType>
  503. </xs:element>
  504. <xs:complexType name="pd.class" mixed="true">
  505. <xs:choice minOccurs="0" maxOccurs="unbounded">
  506. <xs:group ref="defn.cnt"/>
  507. </xs:choice>
  508. <xs:attribute name="outputclass" type="xs:string"/>
  509. <xs:attributeGroup ref="global-atts"/>
  510. <xs:attributeGroup ref="univ-atts"/>
  511. </xs:complexType>
  512. <!-- Base form: Syntax Diagram -->
  513. <xs:element name="syntaxdiagram">
  514. <xs:annotation>
  515. <xs:documentation>
  516. The syntax diagram (&lt;<keyword>syntaxdiagram</keyword>&gt;) element
  517. is the main container for all the syntax elements that make up a syntax definition.
  518. The syntax diagram represents the syntax of a statement from a computer language,
  519. or a command, function call or programming language statement. Traditionally,
  520. the syntax diagram is formatted with <q>railroad tracks</q> that
  521. connect the units of the syntax together, but this presentation may differ
  522. depending on the output media. The syntax diagram element is part of the DITA
  523. programming domain, a special set of DITA elements designed to document programming
  524. tasks, concepts and reference information.
  525. </xs:documentation>
  526. </xs:annotation>
  527. <xs:complexType>
  528. <xs:complexContent>
  529. <xs:extension base="syntaxdiagram.class">
  530. <xs:attribute ref="class" default="+ topic/fig pr-d/syntaxdiagram "/>
  531. </xs:extension>
  532. </xs:complexContent>
  533. </xs:complexType>
  534. </xs:element>
  535. <xs:complexType name="syntaxdiagram.class">
  536. <xs:sequence>
  537. <xs:element ref="title" minOccurs="0" maxOccurs="1"/>
  538. <xs:choice minOccurs="0" maxOccurs="unbounded">
  539. <xs:group ref="syntaxdiagram.grp"/>
  540. <xs:element ref="fragment"/>
  541. <xs:element ref="synblk"/>
  542. </xs:choice>
  543. </xs:sequence>
  544. <xs:attribute name="outputclass" type="xs:string"/>
  545. <xs:attributeGroup ref="global-atts"/>
  546. <xs:attributeGroup ref="univ-atts"/>
  547. <xs:attributeGroup ref="display-atts"/>
  548. </xs:complexType>
  549. <xs:group name="syntaxdiagram.grp">
  550. <xs:choice>
  551. <xs:element ref="groupseq"/>
  552. <xs:element ref="groupchoice"/>
  553. <xs:element ref="groupcomp"/>
  554. <xs:element ref="fragref"/>
  555. <xs:element ref="synnote"/>
  556. <xs:element ref="synnoteref"/>
  557. </xs:choice>
  558. </xs:group>
  559. <xs:group name="syntaxdiagramprog.grp">
  560. <xs:choice>
  561. <xs:element ref="kwd"/>
  562. <xs:element ref="var"/>
  563. <xs:element ref="delim"/>
  564. <xs:element ref="oper"/>
  565. <xs:element ref="sep"/>
  566. </xs:choice>
  567. </xs:group>
  568. <xs:element name="synblk">
  569. <xs:annotation>
  570. <xs:documentation>
  571. The syntax block (&lt;<keyword>synblk</keyword>&gt;) element
  572. organizes small pieces of a syntax definition into a larger piece. The syntax
  573. block element is part of the DITA programming domain, a special set of DITA
  574. elements designed to document programming tasks, concepts and reference information.
  575. </xs:documentation>
  576. </xs:annotation>
  577. <xs:complexType>
  578. <xs:complexContent>
  579. <xs:extension base="synblk.class">
  580. <xs:attribute ref="class" default="+ topic/figgroup pr-d/synblk "/>
  581. </xs:extension>
  582. </xs:complexContent>
  583. </xs:complexType>
  584. </xs:element>
  585. <xs:complexType name="synblk.class">
  586. <xs:sequence>
  587. <xs:element ref="title" minOccurs="0"/>
  588. <xs:choice minOccurs="0" maxOccurs="unbounded">
  589. <xs:group ref="syntaxdiagram.grp"/>
  590. <xs:element ref="fragment"/>
  591. </xs:choice>
  592. </xs:sequence>
  593. <xs:attribute name="outputclass" type="xs:string"/>
  594. <xs:attributeGroup ref="global-atts"/>
  595. <xs:attributeGroup ref="univ-atts"/>
  596. </xs:complexType>
  597. <xs:element name="groupseq">
  598. <xs:annotation>
  599. <xs:documentation>
  600. The &lt;<keyword>groupseq</keyword>&gt; element is part of the subset
  601. of elements that define syntax diagrams in DITA. A group is a logical set
  602. of pieces of syntax that go together. Within the syntax definition, groups
  603. of keywords, delimiters and other syntax units act as a combined unit, and
  604. they occur in a specific sequence, as delimited by the &lt;<keyword>groupseq</keyword>&gt;
  605. element. This element is part of the DITA programming domain, a special set
  606. of DITA elements designed to document programming tasks, concepts and reference
  607. information.
  608. </xs:documentation>
  609. </xs:annotation>
  610. <xs:complexType>
  611. <xs:complexContent>
  612. <xs:extension base="groupseq.class">
  613. <xs:attribute ref="class" default="+ topic/figgroup pr-d/groupseq "/>
  614. </xs:extension>
  615. </xs:complexContent>
  616. </xs:complexType>
  617. </xs:element>
  618. <xs:complexType name="groupseq.class">
  619. <xs:sequence>
  620. <xs:element ref="title" minOccurs="0"/>
  621. <xs:element ref="repsep" minOccurs="0"/>
  622. <xs:choice minOccurs="0" maxOccurs="unbounded">
  623. <xs:group ref="syntaxdiagram.grp"/>
  624. <xs:group ref="syntaxdiagramprog.grp"/>
  625. </xs:choice>
  626. </xs:sequence>
  627. <xs:attribute name="outputclass" type="xs:string"/>
  628. <xs:attributeGroup ref="global-atts"/>
  629. <xs:attributeGroup ref="univ-atts-no-importance"/>
  630. <xs:attribute name="importance" type="importance-att-progdom.class"/>
  631. </xs:complexType>
  632. <xs:element name="groupchoice">
  633. <xs:annotation>
  634. <xs:documentation>
  635. The &lt;<keyword>groupchoice</keyword>&gt; element is part
  636. of the subset of elements that define syntax diagrams in DITA. A group is
  637. a logical set of pieces of syntax that go together. A group choice specifies
  638. that the user must make a choice about which part of the syntax to use. Groups
  639. are often nested. This element is part of the DITA programming domain, a special
  640. set of DITA elements designed to document programming tasks, concepts and
  641. reference information.
  642. </xs:documentation>
  643. </xs:annotation>
  644. <xs:complexType>
  645. <xs:complexContent>
  646. <xs:extension base="groupchoice.class">
  647. <xs:attribute ref="class" default="+ topic/figgroup pr-d/groupchoice "/>
  648. </xs:extension>
  649. </xs:complexContent>
  650. </xs:complexType>
  651. </xs:element>
  652. <xs:complexType name="groupchoice.class">
  653. <xs:sequence>
  654. <xs:element ref="title" minOccurs="0"/>
  655. <xs:element ref="repsep" minOccurs="0"/>
  656. <xs:choice minOccurs="0" maxOccurs="unbounded">
  657. <xs:group ref="syntaxdiagram.grp"/>
  658. <xs:group ref="syntaxdiagramprog.grp"/>
  659. </xs:choice>
  660. </xs:sequence>
  661. <xs:attribute name="outputclass" type="xs:string"/>
  662. <xs:attributeGroup ref="global-atts"/>
  663. <xs:attributeGroup ref="univ-atts-no-importance"/>
  664. <xs:attribute name="importance" type="importance-att-progdom.class"/>
  665. </xs:complexType>
  666. <xs:element name="groupcomp">
  667. <xs:annotation>
  668. <xs:documentation>
  669. The &lt;<keyword>groupcomp</keyword>&gt; element is part
  670. of the subset of elements that define syntax diagrams in DITA. A group is
  671. a logical set of pieces of syntax that go together. The group composite means
  672. that the items that make up the syntax diagram will be formatted close together
  673. rather than being separated by a horizontal or vertical line, which is the
  674. usual formatting method. This element is part of the DITA programming domain,
  675. a special set of DITA elements designed to document programming tasks, concepts
  676. and reference information.
  677. </xs:documentation>
  678. </xs:annotation>
  679. <xs:complexType>
  680. <xs:complexContent>
  681. <xs:extension base="groupcomp.class">
  682. <xs:attribute ref="class" default="+ topic/figgroup pr-d/groupcomp "/>
  683. </xs:extension>
  684. </xs:complexContent>
  685. </xs:complexType>
  686. </xs:element>
  687. <xs:complexType name="groupcomp.class">
  688. <xs:sequence>
  689. <xs:element ref="title" minOccurs="0"/>
  690. <xs:element ref="repsep" minOccurs="0"/>
  691. <xs:choice minOccurs="0" maxOccurs="unbounded">
  692. <xs:group ref="syntaxdiagram.grp"/>
  693. <xs:group ref="syntaxdiagramprog.grp"/>
  694. </xs:choice>
  695. </xs:sequence>
  696. <xs:attribute name="outputclass" type="xs:string"/>
  697. <xs:attributeGroup ref="global-atts"/>
  698. <xs:attributeGroup ref="univ-atts-no-importance"/>
  699. <xs:attribute name="importance" type="importance-att-progdom.class"/>
  700. </xs:complexType>
  701. <xs:element name="fragment">
  702. <xs:annotation>
  703. <xs:documentation>
  704. Within a syntax definition, a &lt;<keyword>fragment</keyword>&gt; is
  705. a labeled subpart of the syntax. The &lt;<keyword>fragment</keyword>&gt; element
  706. allows breaking out logical chunks of a large syntax diagram
  707. into named fragments. This element is part of the DITA programming domain,
  708. a special set of DITA elements designed to document programming tasks, concepts
  709. and reference information.
  710. </xs:documentation>
  711. </xs:annotation>
  712. <xs:complexType>
  713. <xs:complexContent>
  714. <xs:extension base="fragment.class">
  715. <xs:attribute ref="class" default="+ topic/figgroup pr-d/fragment "/>
  716. </xs:extension>
  717. </xs:complexContent>
  718. </xs:complexType>
  719. </xs:element>
  720. <xs:complexType name="fragment.class">
  721. <xs:sequence>
  722. <xs:element ref="title" minOccurs="0"/>
  723. <xs:choice minOccurs="0" maxOccurs="unbounded">
  724. <xs:group ref="syntaxdiagram.grp"/>
  725. </xs:choice>
  726. </xs:sequence>
  727. <xs:attribute name="outputclass" type="xs:string"/>
  728. <xs:attributeGroup ref="global-atts"/>
  729. <xs:attributeGroup ref="univ-atts"/>
  730. </xs:complexType>
  731. <xs:element name="fragref">
  732. <xs:annotation>
  733. <xs:documentation>
  734. The fragment reference (&lt;<keyword>fragref</keyword>&gt;) element provides a
  735. logical reference to a syntax definition fragment so that you can reference
  736. a syntax fragment multiple times. This element is part of the DITA programming
  737. domain, a special set of DITA elements designed to document programming tasks,
  738. concepts and reference information.
  739. </xs:documentation>
  740. </xs:annotation>
  741. <xs:complexType mixed="true">
  742. <xs:complexContent>
  743. <xs:extension base="fragref.class">
  744. <xs:attribute ref="class" default="+ topic/xref pr-d/fragref "/>
  745. </xs:extension>
  746. </xs:complexContent>
  747. </xs:complexType>
  748. </xs:element>
  749. <xs:complexType name="fragref.class" mixed="true">
  750. <xs:choice minOccurs="0" maxOccurs="unbounded">
  751. <xs:group ref="xrefph.cnt"/>
  752. </xs:choice>
  753. <xs:attribute name="href" type="xs:string"/>
  754. <xs:attribute name="outputclass" type="xs:string"/>
  755. <xs:attributeGroup ref="global-atts"/>
  756. <xs:attributeGroup ref="univ-atts-no-importance"/>
  757. <xs:attribute name="importance" type="importance-att-nodefault.class"/>
  758. </xs:complexType>
  759. <xs:element name="synnote">
  760. <xs:annotation>
  761. <xs:documentation>
  762. The syntax note (&lt;<keyword>synnote</keyword>&gt;) element
  763. contains a note (similar to a footnote) within a syntax definition group or
  764. fragment. The syntax note explains aspects of the syntax that cannot be expressed
  765. in the markup itself. The note will appear at the bottom of the syntax diagram
  766. instead of at the bottom of the page. The syntax block element is part of
  767. the DITA programming domain, a special set of DITA elements designed to document
  768. programming tasks, concepts and reference information.
  769. </xs:documentation>
  770. </xs:annotation>
  771. <xs:complexType mixed="true">
  772. <xs:complexContent>
  773. <xs:extension base="synnote.class">
  774. <xs:attribute ref="class" default="+ topic/fn pr-d/synnote "/>
  775. </xs:extension>
  776. </xs:complexContent>
  777. </xs:complexType>
  778. </xs:element>
  779. <xs:complexType name="synnote.class" mixed="true">
  780. <xs:choice minOccurs="0" maxOccurs="unbounded">
  781. <xs:group ref="basic.ph"/>
  782. </xs:choice>
  783. <xs:attribute name="callout" type="xs:string"/>
  784. <xs:attribute name="outputclass" type="xs:string"/>
  785. <xs:attributeGroup ref="global-atts"/>
  786. <xs:attributeGroup ref="univ-atts"/>
  787. </xs:complexType>
  788. <xs:element name="synnoteref">
  789. <xs:annotation>
  790. <xs:documentation>
  791. The syntax note (&lt;<keyword>synnoteref</keyword>&gt;) reference element references
  792. a syntax note element (&lt;<keyword>synnote</keyword>&gt;) that has already been defined
  793. elsewhere in the topic. The same notation can be used in more than one syntax
  794. definition. The syntax note reference element is part of the DITA programming
  795. domain, a special set of DITA elements designed to document programming tasks,
  796. concepts and reference information.
  797. </xs:documentation>
  798. </xs:annotation>
  799. <xs:complexType>
  800. <xs:complexContent>
  801. <xs:extension base="synnoteref.class">
  802. <xs:attribute ref="class" default="+ topic/xref pr-d/synnoteref "/>
  803. </xs:extension>
  804. </xs:complexContent>
  805. </xs:complexType>
  806. </xs:element>
  807. <xs:complexType name="synnoteref.class">
  808. <xs:attribute name="href" type="xs:string" />
  809. <xs:attribute name="outputclass" type="xs:string"/>
  810. <xs:attributeGroup ref="global-atts"/>
  811. <xs:attributeGroup ref="univ-atts"/>
  812. </xs:complexType>
  813. <xs:element name="repsep">
  814. <xs:annotation>
  815. <xs:documentation>
  816. The repeat separator (&lt;<keyword>repsep</keyword>&gt;) element defines
  817. a group of syntax elements that can (or should) be repeated. If the &lt;<keyword>repsep</keyword>&gt;
  818. element contains a separator character, such as a plus (+), this
  819. indicates that the character must be used between repetitions of the syntax
  820. elements. This element is part of the DITA programming domain, a special set
  821. of DITA elements designed to document programming tasks, concepts and reference
  822. information.
  823. </xs:documentation>
  824. </xs:annotation>
  825. <xs:complexType mixed="true">
  826. <xs:complexContent>
  827. <xs:extension base="repsep.class">
  828. <xs:attribute ref="class" default="+ topic/ph pr-d/repsep "/>
  829. </xs:extension>
  830. </xs:complexContent>
  831. </xs:complexType>
  832. </xs:element>
  833. <xs:complexType name="repsep.class" mixed="true">
  834. <xs:choice minOccurs="0" maxOccurs="unbounded">
  835. <xs:group ref="words.cnt"/>
  836. </xs:choice>
  837. <xs:attribute name="outputclass" type="xs:string"/>
  838. <xs:attributeGroup ref="global-atts"/>
  839. <xs:attributeGroup ref="univ-atts-no-importance"/>
  840. <xs:attribute name="importance" type="importance-att-nodefault.class"/>
  841. </xs:complexType>
  842. <xs:element name="kwd">
  843. <xs:annotation>
  844. <xs:documentation>
  845. The &lt;<keyword>kwd</keyword>&gt; element defines a keyword in a syntax
  846. definition. A keyword must be typed or output, either by the user or application,
  847. exactly as specified in the syntax definition. This element is
  848. part of the DITA programming domain, a special set of DITA elements designed
  849. to document programming tasks, concepts and reference information.
  850. </xs:documentation>
  851. </xs:annotation>
  852. <xs:complexType mixed="true">
  853. <xs:complexContent>
  854. <xs:extension base="kwd.class">
  855. <xs:attribute ref="class" default="+ topic/keyword pr-d/kwd "/>
  856. </xs:extension>
  857. </xs:complexContent>
  858. </xs:complexType>
  859. </xs:element>
  860. <xs:complexType name="kwd.class" mixed="true">
  861. <xs:attribute name="keyref" type="xs:string"/>
  862. <xs:attribute name="outputclass" type="xs:string"/>
  863. <xs:attributeGroup ref="global-atts"/>
  864. <xs:attributeGroup ref="univ-atts-no-importance"/>
  865. <xs:attribute name="importance" type="importance-att-progdom.class"/>
  866. </xs:complexType>
  867. </xs:schema>