| 1 | <?xml version="1.0" encoding="UTF-8" ?> |
|---|
| 2 | <!-- $Id$ --> |
|---|
| 3 | <!-- Document Type Definition for ModiPy <config/> --> |
|---|
| 4 | |
|---|
| 5 | <!-- |
|---|
| 6 | This DTD is not complete, because it doesn't include the |
|---|
| 7 | ZAPI DTD as a child element of <zapicommand/>. This means |
|---|
| 8 | that if you attempt to validate your configuration against |
|---|
| 9 | this DTD using something like xmllint, any custom elements |
|---|
| 10 | of your own (such as extra device settings) and the contents |
|---|
| 11 | of the <zapicommand/> element will fail validation. |
|---|
| 12 | |
|---|
| 13 | This is annoying, but I haven't figured out a good way of |
|---|
| 14 | making the DTD syntax allow for third party enhancements in |
|---|
| 15 | a neat way. |
|---|
| 16 | |
|---|
| 17 | So, this DTD is here for reference of the core configuration |
|---|
| 18 | syntax, rather than for computerised verification. |
|---|
| 19 | |
|---|
| 20 | If you've got any ideas about how I should fix this, let me |
|---|
| 21 | know via email to justin@eigenmagic.com. |
|---|
| 22 | --> |
|---|
| 23 | |
|---|
| 24 | <!ELEMENT config (device* | provisioner* | |
|---|
| 25 | change* | changetemplate* | iterator*)* > |
|---|
| 26 | |
|---|
| 27 | <!ELEMENT device ANY> |
|---|
| 28 | <!ATTLIST device name ID #REQUIRED> |
|---|
| 29 | <!ELEMENT ipaddress (#PCDATA) > |
|---|
| 30 | <!ELEMENT fqdn (#PCDATA) > |
|---|
| 31 | |
|---|
| 32 | <!ELEMENT provisioner ANY> |
|---|
| 33 | <!ATTLIST provisioner name ID #REQUIRED |
|---|
| 34 | module CDATA #REQUIRED |
|---|
| 35 | type CDATA #REQUIRED> |
|---|
| 36 | |
|---|
| 37 | <!ELEMENT command_timeout (#PCDATA)> |
|---|
| 38 | |
|---|
| 39 | <!ELEMENT change (target?, preimpl?, impl?, postimpl?, |
|---|
| 40 | prebackout?, backout?, postbackout?)> |
|---|
| 41 | |
|---|
| 42 | <!ATTLIST change name ID #REQUIRED |
|---|
| 43 | module CDATA #IMPLIED |
|---|
| 44 | type CDATA #IMPLIED |
|---|
| 45 | changetemplate IDREF #IMPLIED |
|---|
| 46 | iterator IDREF #IMPLIED> |
|---|
| 47 | <!ELEMENT target EMPTY> |
|---|
| 48 | <!ATTLIST target name IDREF #REQUIRED> |
|---|
| 49 | |
|---|
| 50 | <!ELEMENT changetemplate (preimpl?, impl?, postimpl?, |
|---|
| 51 | prebackout?, backout?, postbackout?) > |
|---|
| 52 | |
|---|
| 53 | <!ELEMENT preimpl (condition*, command*, zapicommand*)*> |
|---|
| 54 | <!ELEMENT impl (condition*, command*, zapicommand*)*> |
|---|
| 55 | <!ELEMENT postimpl (condition*, command*, zapicommand*)*> |
|---|
| 56 | <!ELEMENT prebackout (condition*, command*, zapicommand*)*> |
|---|
| 57 | <!ELEMENT backout (condition*, command*, zapicommand*)*> |
|---|
| 58 | <!ELEMENT postbackout (condition*, command*, zapicommand*)*> |
|---|
| 59 | |
|---|
| 60 | <!ELEMENT condition (#PCDATA)> |
|---|
| 61 | <!ELEMENT command ANY> |
|---|
| 62 | <!ELEMENT zapicommand ANY> |
|---|
| 63 | |
|---|
| 64 | <!ELEMENT iterator ( dict* )> |
|---|
| 65 | <!ATTLIST iterator name ID #REQUIRED |
|---|
| 66 | type CDATA #IMPLIED |
|---|
| 67 | file CDATA #IMPLIED |
|---|
| 68 | api CDATA #IMPLIED |
|---|
| 69 | sql CDATA #IMPLIED> |
|---|
| 70 | |
|---|
| 71 | <!ELEMENT dict (entry*)> |
|---|
| 72 | |
|---|
| 73 | <!ELEMENT entry (#PCDATA)> |
|---|
| 74 | <!ATTLIST entry name CDATA #REQUIRED> |
|---|
| 75 | |
|---|