1/*      XMLCATALOG CL command.                                                */
2/*                                                                            */
3/*      See Copyright for the status of this software.                        */
4/*                                                                            */
5/*      Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.          */
6
7/*      Interface to program XMLCATLGCL                                       */
8
9             CMD        PROMPT('XML/SGML catalog  tool')
10
11             /* Catalog file path. */
12
13             PARM       KWD(INSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)    +
14                          CASE(*MIXED) EXPR(*YES) MIN(1) SPCVAL((*NEW ''))     +
15                          CHOICE('Stream file path')                           +
16                          PROMPT('XML/SGML catalog file')
17
18             /* Catalog kind: XML/SGML. */
19
20             PARM       KWD(KIND) TYPE(*CHAR) LEN(7) VARY(*YES *INT2)          +
21                          EXPR(*YES) RSTD(*YES) DFT(*XML)                      +
22                          SPCVAL((*XML '') (*SGML '--sgml'))                   +
23                          PROMPT('Catalog kind')
24
25             /* Output file. */
26
27             PARM       KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)   +
28                          CASE(*MIXED) EXPR(*YES) DFT(*STDOUT)                 +
29                          SPCVAL((*STDOUT '') (*INSTMF X'00'))                 +
30                          CHOICE('*STDOUT, *INSTMF or file path')              +
31                          PROMPT('Output stream file path')
32
33             /* Convert SGML to XML catalog. */
34
35             PARM       KWD(CONVERT) TYPE(*CHAR) LEN(10) VARY(*YES *INT2)      +
36                          RSTD(*YES) SPCVAL((*YES '--convert') (*NO ''))       +
37                          EXPR(*YES) DFT(*NO) PMTCTL(TYPEXML)                  +
38                          PROMPT('Convert SGML to XML catalog')
39
40             /* SGML super catalog update. */
41
42             PARM       KWD(SUPERUPD) TYPE(*CHAR) LEN(17) VARY(*YES *INT2)     +
43                          SPCVAL((*YES '') (*NO '--no-super-update'))          +
44                          EXPR(*YES) DFT(*YES) RSTD(*YES) PMTCTL(TYPESGML)     +
45                          PROMPT('Update the SGML super catalog')
46
47             /* Verbose/debug output. */
48
49             PARM       KWD(VERBOSE) TYPE(*CHAR) LEN(4) VARY(*YES *INT2)       +
50                          RSTD(*YES) SPCVAL((*YES '-v') (*NO ''))              +
51                          EXPR(*YES) DFT(*NO)                                  +
52                          PROMPT('Output debugging information')
53
54             /* Interactive shell not supported. */
55
56             /* Values to delete. */
57
58             PARM       KWD(DELETE) TYPE(*PNAME) LEN(256) VARY(*YES *INT2)     +
59                          CASE(*MIXED) MAX(64) EXPR(*YES)                      +
60                          CHOICE('Identifier value')                           +
61                          PROMPT('Delete System/URI identifier')
62
63             /* Values to add. */
64
65             PARM       KWD(ADD) TYPE(XMLELEM) MAX(10) PMTCTL(TYPEXML)         +
66                          PROMPT('Add definition')
67XMLELEM:     ELEM       TYPE(*CHAR) LEN(16) VARY(*YES *INT2) DFT(*PUBLIC)      +
68                          PROMPT('Entry type')                                 +
69                          EXPR(*YES) RSTD(*YES) SPCVAL(                        +
70                            (*PUBLIC         'public')                         +
71                            (*SYSTEM         'system')                         +
72                            (*URI            'uri')                            +
73                            (*REWRITESYSTEM  'rewriteSystem')                  +
74                            (*REWRITEURI     'rewriteURI')                     +
75                            (*DELEGATEPUBLIC 'delegatePublic')                 +
76                            (*DELEGATESYSTEM 'delegateSystem')                 +
77                            (*DELEGATEURI    'delegateURI')                    +
78                            (*NEXTCATALOG    'nextCatalog')                    +
79                          )
80             ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
81                          CASE(*MIXED) PROMPT('Original reference/file name')
82             ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
83                          CASE(*MIXED) PROMPT('Replacement entity URI')
84
85             PARM       KWD(SGMLADD) TYPE(SGMLELEM) MAX(10)                    +
86                          PMTCTL(TYPESGML) PROMPT('Add SGML definition')
87SGMLELEM:    ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
88                          CASE(*MIXED) PROMPT('SGML catalog file name')
89             ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
90                          CASE(*MIXED) PROMPT('SGML definition')
91
92             /* Entities to resolve. */
93
94             PARM       KWD(ENTITY) TYPE(*PNAME) LEN(256) VARY(*YES *INT2)     +
95                          CASE(*MIXED) EXPR(*YES) MAX(150)                     +
96                          PROMPT('Resolve entity')
97
98             /* Additional catalog files. */
99
100             PARM       KWD(CATALOG) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)   +
101                          CASE(*MIXED) EXPR(*YES) MAX(150) DFT(*DEFAULT)       +
102                          CHOICE('Catalog stream file path')                   +
103                          PROMPT('Additional catalog file') SPCVAL(            +
104                            (*DEFAULT       '/etc/xml/catalog')                +
105                            (*NONE          '')                                +
106                          )
107
108
109             /* Conditional prompting. */
110
111TYPEXML:     PMTCTL     CTL(KIND) COND((*EQ ''))
112TYPESGML:    PMTCTL     CTL(KIND) COND((*NE ''))
113