Last modified 5 years ago
플러그인 스펙을 정의합니다.
플러그인 xml 스펙
아래의 xsd 스펙은 태터툴즈 1.1.3 기준의 plugin 바인더 xml 의 스펙입니다. 아래에서 xsd 파일을 내려 받을 수 있습니다.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 3 <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> 4 <xs:element name="plugin"> 5 <xs:complexType> 6 <xs:sequence> 7 <xs:element name="title" minOccurs="1" maxOccurs="unbounded"> 8 <xs:complexType> 9 <xs:simpleContent> 10 <xs:extension base="xs:normalizedString"> 11 <xs:attribute ref="xml:lang"/> 12 </xs:extension> 13 </xs:simpleContent> 14 </xs:complexType> 15 </xs:element> 16 <xs:element name="link" minOccurs="1" maxOccurs="1" type="xs:anyURI"/> 17 <xs:element name="version" minOccurs="1" maxOccurs="1" type="xs:token"/> 18 <xs:element name="description" minOccurs="1" maxOccurs="unbounded"> 19 <xs:complexType> 20 <xs:simpleContent> 21 <xs:extension base="xs:string"> 22 <xs:attribute ref="xml:lang"/> 23 </xs:extension> 24 </xs:simpleContent> 25 </xs:complexType> 26 </xs:element> 27 <xs:element name="license" minOccurs="1" maxOccurs="1" type="xs:normalizedString"/> 28 <xs:element name="author" minOccurs="1" maxOccurs="unbounded"> 29 <xs:complexType> 30 <xs:simpleContent> 31 <xs:extension base="xs:normalizedString"> 32 <xs:attribute ref="xml:lang"/> 33 <xs:attribute name="link" use="required" type="xs:anyURI"/> 34 </xs:extension> 35 </xs:simpleContent> 36 </xs:complexType> 37 </xs:element> 38 <xs:element name="safety" minOccurs="1" maxOccurs="1"> 39 <xs:complexType> 40 <xs:attribute name="accessLocal" use="required" type="yesno"/> 41 <xs:attribute name="accessRaw" use="required" type="yesno"/> 42 <xs:attribute name="accessRemote" use="required" type="yesno"/> 43 <xs:attribute name="changeData" use="required" type="yesno"/> 44 <xs:attribute name="exposeData" use="required" type="yesno"/> 45 </xs:complexType> 46 </xs:element> 47 <xs:element name="requirements" minOccurs="1" maxOccurs="1"> 48 <xs:complexType> 49 <xs:sequence> 50 <xs:element name="tattertools" minOccurs="1" maxOccurs="1" type="xs:token"/> 51 <xs:element name="textcube" minOccurs="0" maxOccurs="1" type="xs:token"/> 52 </xs:sequence> 53 </xs:complexType> 54 </xs:element> 55 <xs:element name="storage" minOccurs="0" maxOccurs="1" type="storage"/> 56 <xs:element name="binding" minOccurs="0" maxOccurs="1"> 57 <xs:complexType> 58 <xs:sequence> 59 <xs:element name="listener" type="listener" minOccurs="0" maxOccurs="unbounded"/> 60 <xs:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded"/> 61 <xs:element name="sidebar" type="sidebar" minOccurs="0" maxOccurs="unbounded"/> 62 <xs:element name="center" type="center" minOccurs="0" maxOccurs="unbounded"/> 63 <xs:element name="adminMenu" type="adminMenu" minOccurs="0" maxOccurs="unbounded"/> 64 <xs:element name="config" type="config" minOccurs="0" maxOccurs="1"/> 65 </xs:sequence> 66 </xs:complexType> 67 </xs:element> 68 </xs:sequence> 69 <xs:attribute name="version" use="required" type="xs:decimal"/> 70 </xs:complexType> 71 </xs:element> 72 73 <xs:complexType name="storage"> 74 <xs:sequence> 75 <xs:element name="table" minOccurs="1" maxOccurs="unbounded"> 76 <xs:complexType> 77 <xs:sequence> 78 <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:token"/> 79 <xs:element name="fields" minOccurs="1" maxOccurs="1"> 80 <xs:complexType> 81 <xs:sequence> 82 <xs:element name="field" minOccurs="1" maxOccurs="unbounded"> 83 <xs:complexType> 84 <xs:sequence> 85 <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:token"/> 86 <xs:element name="attributes" minOccurs="1" maxOccurs="1" type="xs:token"/> 87 <xs:element name="length" minOccurs="0" maxOccurs="1" type="xs:unsignedInt"/> 88 <xs:element name="isnull" minOccurs="0" maxOccurs="1" type="xs:boolean"/> 89 <xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:string"/> 90 <xs:element name="autoincrement" minOccurs="0" maxOccurs="1" type="xs:boolean"/> 91 </xs:sequence> 92 </xs:complexType> 93 </xs:element> 94 </xs:sequence> 95 </xs:complexType> 96 </xs:element> 97 <xs:element name="key" minOccurs="0" maxOccurs="unbounded" type="xs:token"/> 98 </xs:sequence> 99 </xs:complexType> 100 </xs:element> 101 </xs:sequence> 102 </xs:complexType> 103 104 <xs:complexType name="tag"> 105 <xs:attribute name="name" use="required" type="xs:token"/> 106 <xs:attribute name="handler" use="required" type="functionName"/> 107 </xs:complexType> 108 <xs:complexType name="sidebar"> 109 <xs:sequence> 110 <xs:element name="params"> 111 <xs:complexType> 112 <xs:sequence> 113 <xs:element name="param"> 114 <xs:complexType> 115 <xs:sequence> 116 <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:token"/> 117 <xs:element name="type" minOccurs="1" maxOccurs="1" type="paramType"/> 118 <xs:element name="title" minOccurs="1" maxOccurs="unbounded"> 119 <xs:complexType> 120 <xs:simpleContent> 121 <xs:extension base="xs:normalizedString"> 122 <xs:attribute ref="xml:lang"/> 123 </xs:extension> 124 </xs:simpleContent> 125 </xs:complexType> 126 </xs:element> 127 </xs:sequence> 128 </xs:complexType> 129 </xs:element> 130 </xs:sequence> 131 </xs:complexType> 132 </xs:element> 133 </xs:sequence> 134 <xs:attribute name="title" use="required" type="xs:token"/> 135 <xs:attribute name="handler" use="required" type="functionName"/> 136 </xs:complexType> 137 <xs:complexType name="listener"> 138 <xs:simpleContent> 139 <xs:extension base="functionName"> 140 <xs:attribute name="event" use="required" type="xs:token"/> 141 </xs:extension> 142 </xs:simpleContent> 143 </xs:complexType> 144 <xs:complexType name="center"> 145 </xs:complexType> 146 <xs:complexType name="adminMenu"> 147 <xs:sequence> 148 <xs:element name="viewMethods"> 149 <xs:complexType> 150 <xs:sequence> 151 <xs:element name="method"> 152 <xs:complexType> 153 <xs:sequence> 154 <xs:element name="title" minOccurs="1" maxOccurs="unbounded" type="xs:token"/> 155 <xs:element name="position" type="xs:token"/> 156 <xs:element name="helpurl" type="xs:anyURI"/> 157 <xs:element name="handler" minOccurs="1" maxOccurs="1" type="functionName"/> 158 <xs:element name="params"> 159 <xs:complexType> 160 <xs:sequence> 161 <xs:element maxOccurs="unbounded" name="param"> 162 <xs:complexType> 163 <xs:sequence> 164 <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:token"/> 165 <xs:element name="type" minOccurs="1" maxOccurs="1" type="parameterType"/> 166 <xs:choice minOccurs="0" maxOccurs="1"> 167 <xs:element name="default" type="xs:string"/> 168 <xs:element name="mandatory" type="boolean"/> 169 </xs:choice> 170 </xs:sequence> 171 </xs:complexType> 172 </xs:element> 173 </xs:sequence> 174 </xs:complexType> 175 </xs:element> 176 </xs:sequence> 177 </xs:complexType> 178 </xs:element> 179 </xs:sequence> 180 </xs:complexType> 181 </xs:element> 182 </xs:sequence> 183 </xs:complexType> 184 <xs:complexType name="config"> 185 <xs:sequence> 186 <xs:element name="fieldset" minOccurs="0" maxOccurs="unbounded"> 187 <xs:complexType> 188 <xs:sequence> 189 <xs:element name="field" minOccurs="0" maxOccurs="unbounded"> 190 <xs:complexType> 191 <xs:sequence> 192 <xs:element name="op" minOccurs="0" maxOccurs="unbounded"> 193 <xs:complexType> 194 <xs:simpleContent> 195 <xs:extension base="xs:string"> 196 <xs:attribute name="name" use="required" type="xs:token"/> 197 <xs:attribute name="value" type="xs:string"/> 198 <xs:attribute name="checked" type="xs:string"/> 199 </xs:extension> 200 </xs:simpleContent> 201 </xs:complexType> 202 </xs:element> 203 <xs:element name="caption" minOccurs="0" maxOccurs="1" type="xs:string"/> 204 </xs:sequence> 205 <xs:attribute name="title" use="required" type="xs:normalizedString"/> 206 <xs:attribute name="name" use="required" type="xs:token"/> 207 <xs:attribute name="type" use="required" type="fieldType"/> 208 <xs:attribute name="value" type="xs:string"/> 209 <xs:attribute name="titledirection" type="fieldTitleDirection"/> 210 <xs:attribute name="size" type="xs:unsignedInt"/> 211 <xs:attribute name="rows" type="xs:unsignedInt"/> 212 <xs:attribute name="cols" type="xs:unsignedInt"/> 213 </xs:complexType> 214 </xs:element> 215 </xs:sequence> 216 <xs:attribute name="legend" type="xs:normalizedString"/> 217 </xs:complexType> 218 </xs:element> 219 </xs:sequence> 220 <xs:attribute name="dataValHandler" type="functionName"/> 221 <xs:attribute name="manifestHandler" type="functionName"/> 222 </xs:complexType> 223 224 <xs:simpleType name="yesno"> 225 <xs:restriction base="xs:string"> 226 <xs:pattern value="yes|no"/> 227 </xs:restriction> 228 </xs:simpleType> 229 <xs:simpleType name="boolean"> 230 <xs:restriction base="xs:integer"> 231 <xs:minInclusive value="0"/> 232 <xs:maxInclusive value="1"/> 233 </xs:restriction> 234 </xs:simpleType> 235 <xs:simpleType name="functionName"> 236 <xs:restriction base="xs:NMTOKEN"/> 237 </xs:simpleType> 238 <xs:simpleType name="paramType"> 239 <xs:restriction base="xs:token"> 240 <xs:enumeration value="string"/> 241 <xs:enumeration value="int"/> 242 <xs:enumeration value="textarea"/> 243 </xs:restriction> 244 </xs:simpleType> 245 <xs:simpleType name="parameterType"> 246 <xs:restriction base="xs:token"> 247 <xs:enumeration value="any"/> 248 <xs:enumeration value="bool"/> 249 <xs:enumeration value="number"/> 250 <xs:enumeration value="int"/> 251 <xs:enumeration value="id"/> 252 <xs:enumeration value="url"/> 253 <xs:enumeration value="string"/> 254 <xs:enumeration value="list"/> 255 <xs:enumeration value="timestamp"/> 256 <xs:enumeration value="period"/> 257 <xs:enumeration value="ip"/> 258 <xs:enumeration value="domain"/> 259 <xs:enumeration value="email"/> 260 <xs:enumeration value="language"/> 261 <xs:enumeration value="filename"/> 262 <xs:enumeration value="directory"/> 263 <xs:enumeration value="path"/> 264 <xs:enumeration value="file"/> 265 </xs:restriction> 266 </xs:simpleType> 267 <xs:simpleType name="fieldType"> 268 <xs:restriction base="xs:string"> 269 <xs:enumeration value="text"/> 270 <xs:enumeration value="textarea"/> 271 <xs:enumeration value="select"/> 272 <xs:enumeration value="checkbox"/> 273 <xs:enumeration value="radio"/> 274 </xs:restriction> 275 </xs:simpleType> 276 <xs:simpleType name="fieldTitleDirection"> 277 <xs:restriction base="xs:string"> 278 <xs:enumeration value="bk"/> 279 <xs:enumeration value=""/> 280 </xs:restriction> 281 </xs:simpleType> 282 </xs:schema>
Attachments
-
plugin.xsd
(10.8 KB) -
added by inureyes 5 years ago.
