|
<?xml version="1.0" encoding="UTF-8"?> <!-- Jeffrey Ricker NG (Usonia Holdings) [EMAIL PROTECTED] 2001.07.15 NOTE: * INITIAL DRAFT for DTD for the Cocoon2 XMAP file * Needed by many editing tools for creating documents easier. * Can generate XSD once DTD is locked down * Developed from the XMAP instance included in current download * The big questions are: "What possibilities were not included in the example?" and "What in the example is mandatory versus optional?" --> <!ELEMENT sitemap (components, views, resources, action-sets, pipelines)> <!-- ===========COMPONENTS =============================--> <!ELEMENT components (generators, transformers, readers, serializers, selectors, matchers, actions)> <!-- RNG: must they appear in this order? must they all appear, even if they are empty? --> <!ELEMENT generators (generator*)> <!ATTLIST generators default CDATA #IMPLIED > <!ELEMENT generator EMPTY> <!ATTLIST generator name CDATA #REQUIRED src CDATA #REQUIRED label CDATA #IMPLIED > <!-- RNG: with all attributes, which are required and which are implied? --> <!ELEMENT transformers (transformer*)> <!ATTLIST transformers default CDATA #IMPLIED > <!ELEMENT transformer ANY> <!-- RNG: surely the content is not ANY. However, there were so many children here that I did not know where to begin --> <!ATTLIST transformer name CDATA #REQUIRED src CDATA #REQUIRED > <!ELEMENT readers (reader*)> <!ATTLIST readers default CDATA #IMPLIED > <!ELEMENT reader EMPTY> <!-- RNG: does reader ever have children? Its peers do. --> <!ATTLIST reader name CDATA #REQUIRED src CDATA #REQUIRED > <!ELEMENT serializers (serializer*)> <!ATTLIST serializers default CDATA #IMPLIED > <!ELEMENT serializer (doctype-public?, doctype-system?)> <!-- RNG: are these the only children of serializer? --> <!ATTLIST serializer name CDATA #REQUIRED mime-type CDATA #REQUIRED src CDATA #REQUIRED > <!ELEMENT doctype-public (#PCDATA)> <!ELEMENT doctype-system (#PCDATA)> <!ELEMENT selectors (selector*)> <!ATTLIST selectors default CDATA #IMPLIED > <!ELEMENT selector (browser*)> <!ATTLIST selector name CDATA #REQUIRED src CDATA #REQUIRED > <!ELEMENT browser EMPTY> <!ATTLIST browser name CDATA #REQUIRED useragent CDATA #REQUIRED > <!ELEMENT matchers (matcher*)> <!ATTLIST matchers default CDATA #IMPLIED > <!ELEMENT matcher EMPTY> <!ATTLIST matcher name CDATA #REQUIRED src CDATA #REQUIRED > <!ELEMENT actions (action*)> <!ATTLIST actions default CDATA #IMPLIED > <!ELEMENT action EMPTY> <!ATTLIST action name CDATA #REQUIRED src CDATA #REQUIRED > <!-- ===========VIEWS =============================--> <!ELEMENT views (view*)> <!ELEMENT view (serialize)> <!ATTLIST view name CDATA #REQUIRED from-label CDATA #IMPLIED from-position CDATA #IMPLIED > <!ELEMENT serialize EMPTY> <!ATTLIST serialize type CDATA #REQUIRED > <!-- ===========RESOURCES =============================--> <!ELEMENT resources (resource*)> <!ELEMENT resource (generate, transform, serialize)> <!ATTLIST resource name CDATA #REQUIRED > <!-- generate and transform defined in PIPELINE section --> <!-- ===========ACTIONSETS =============================--> <!ELEMENT action-sets (action-set*)> <!ELEMENT action-set (act+)> <!ATTLIST action-set name CDATA #REQUIRED > <!ELEMENT act EMPTY> <!ATTLIST act type CDATA #REQUIRED action CDATA #REQUIRED > <!-- ===========PIPELINES =============================--> <!ELEMENT pipelines (pipeline*)> <!ELEMENT pipeline (match*, handle-errors?)> <!ELEMENT match ((mount* | redirect-to* | generate* | transform* | serialize* | read* | aggregate*)*)> <!-- RNG: It seemed from the example that match should be defined as match (mount*|redirect-to*|(generate*,transform*,serialize*)*|read*|aggregate*) but I have no way of knowing. --> <!ATTLIST match type CDATA #IMPLIED pattern CDATA #REQUIRED > <!ELEMENT mount EMPTY> <!ATTLIST mount uri-prefix CDATA #REQUIRED src CDATA #REQUIRED check-reload (yes | no) "no" > <!ELEMENT redirect-to EMPTY> <!ATTLIST redirect-to uri CDATA #REQUIRED > <!ELEMENT generate (parameter*)> <!ATTLIST generate type CDATA #IMPLIED src CDATA #IMPLIED > <!ELEMENT parameter EMPTY> <!ATTLIST parameter name CDATA #REQUIRED value CDATA #REQUIRED > <!ELEMENT transform (parameter*)> <!ATTLIST transform type CDATA #IMPLIED src CDATA #IMPLIED > <!-- serialize already defined in VIEWS section --> <!ELEMENT read EMPTY> <!ATTLIST read src CDATA #REQUIRED mime-type CDATA #REQUIRED > <!ELEMENT aggregate (part*)> <!ATTLIST aggregate element CDATA #IMPLIED ns CDATA #IMPLIED > <!ELEMENT part EMPTY> <!ATTLIST part src CDATA #IMPLIED element CDATA #IMPLIED ns CDATA #IMPLIED > <!ELEMENT handle-errors (generate* | transform* | serialize*)> <!-- RNG: or is it (generate*,transform*,serialize*) -->
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]