Colin Paul Adams wrote:

"Vadim" == Vadim Gritsenko <[EMAIL PROTECTED]> writes:

Vadim> Please mind that all invalid parts in lint are commented
Vadim> out. The rest is valid sitemap (which, btw, works).

OK - lint sitemap now validates except for unknown-tag. In order for
that to validate, I have to add a line:

<!ELEMENT unknown-tag EMPTY>

or some such to the dtd. Is this reasonable?

AFAIU, it is not possible to create DTD for the sitemap language exactly because some components allow any element name (for example, see RequestParameterExistsAction, and don't mind javadoc: it's not completely correct); the only possibility is to create DTD for all existing sitemap files.

If you are after second, then yes, it is reasonable.

PS Last thing which does not allow to run Cocoon in validating mode are XSLT files without DTD - and here universal DTD is also not possible to create.

PPS If it helps, attached find sitemap DTD which only purpose is to allow parsing with validation, but it does not have a purpose of validating sitemap... Hope it's clear.

Vadim

<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT attribute-name (#PCDATA)>
<!ELEMENT base (#PCDATA)>
<!ELEMENT browser EMPTY>
<!ATTLIST browser
	name CDATA #REQUIRED
	useragent CDATA #REQUIRED
>
<!ELEMENT buffer-size (#PCDATA)>
<!ELEMENT cache-at-startup (#PCDATA)>
<!ELEMENT catalogue-location (#PCDATA)>
<!ELEMENT catalogue-name (#PCDATA)>
<!ELEMENT create-session (#PCDATA)>
<!ELEMENT doctype-public (#PCDATA)>
<!ELEMENT doctype-system (#PCDATA)>
<!ELEMENT driver (#PCDATA)>
<!ELEMENT encoding (#PCDATA)>
<!ELEMENT header-name (#PCDATA)>
<!ELEMENT indent (#PCDATA)>
<!ELEMENT omit-xml-declaration (#PCDATA)>
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
	type CDATA #IMPLIED
	name CDATA #REQUIRED
	value CDATA #REQUIRED
>
<!ELEMENT parameter-name (#PCDATA)>
<!ELEMENT store-in-cookie (#PCDATA)>
<!ELEMENT store-in-request (#PCDATA)>
<!ELEMENT store-in-session (#PCDATA)>
<!ELEMENT use-browser-capabilities-db (#PCDATA)>
<!ELEMENT use-deli (#PCDATA)>
<!ELEMENT use-request-parameters (#PCDATA)>
<!ELEMENT unknown-tag (#PCDATA)>


<!ENTITY % pipecontent "(map:parameter|map:act|map:match|map:select|map:call|map:redirect-to|map:read|map:aggregate|map:generate|map:transform|map:serialize|map:mount)*">
<!ENTITY % compatts "
	label CDATA #IMPLIED
	logger CDATA #IMPLIED
	name CDATA #IMPLIED
	pool-grow CDATA #IMPLIED
	pool-max CDATA #IMPLIED
	pool-min CDATA #IMPLIED
	src CDATA #IMPLIED
	id CDATA #IMPLIED
">


<!ELEMENT map:act %pipecontent;>
<!ATTLIST map:act
	type CDATA #IMPLIED
	action CDATA #IMPLIED
	set CDATA #IMPLIED
	src CDATA #IMPLIED
>
<!ELEMENT map:action ANY>
<!ATTLIST map:action %compatts;>
<!ELEMENT map:action-set (map:act+)>
<!ATTLIST map:action-set
	name CDATA #REQUIRED
>
<!ELEMENT map:action-sets (map:action-set*)>
<!ELEMENT map:actions (map:action*)>
<!ELEMENT map:aggregate (map:part+)>
<!ATTLIST map:aggregate
	element CDATA #REQUIRED
	ns CDATA #IMPLIED
	prefix CDATA #IMPLIED
>
<!ELEMENT map:call (map:parameter?)>
<!ATTLIST map:call
	resource CDATA #REQUIRED
>
<!ELEMENT map:components (map:generators?, map:transformers?, map:readers?, map:serializers?, map:matchers?, map:selectors?, map:actions?, map:pipelines?)*>
<!ELEMENT map:generate (map:parameter*)>
<!ATTLIST map:generate
	src CDATA #IMPLIED
	type CDATA #IMPLIED
	label CDATA #IMPLIED
>
<!ELEMENT map:generator ANY>
<!ATTLIST map:generator %compatts;>
<!ELEMENT map:generators (map:generator*)>
<!ATTLIST map:generators
	default CDATA #REQUIRED
>
<!ELEMENT map:handle-errors %pipecontent;>
<!ATTLIST map:handle-errors
	type CDATA #IMPLIED
>
<!ELEMENT map:match %pipecontent;>
<!ATTLIST map:match
	pattern CDATA #REQUIRED
	type CDATA #IMPLIED
>
<!ELEMENT map:matcher ANY>
<!ATTLIST map:matcher %compatts;>
<!ELEMENT map:matchers (map:matcher*)>
<!ATTLIST map:matchers
	default CDATA #REQUIRED
>
<!ELEMENT map:mount EMPTY>
<!ATTLIST map:mount
	check-reload CDATA #IMPLIED
	reload-method CDATA #IMPLIED
	src CDATA #REQUIRED
	uri-prefix CDATA #REQUIRED
>
<!ELEMENT map:parameter EMPTY>
<!ATTLIST map:parameter
	name CDATA #REQUIRED
	value CDATA #REQUIRED
>
<!ELEMENT map:part EMPTY>
<!ATTLIST map:part
	element CDATA #IMPLIED
	ns CDATA #IMPLIED
	prefix CDATA #IMPLIED
	strip-root CDATA #IMPLIED
	src CDATA #IMPLIED
	label CDATA #IMPLIED
>
<!ELEMENT map:pipeline (%pipecontent;, map:handle-errors*)?>
<!ATTLIST map:pipeline %compatts;
	internal CDATA #IMPLIED
>
<!ELEMENT map:pipelines (map:pipeline+)>
<!ATTLIST map:pipelines
	default CDATA #IMPLIED
>
<!ELEMENT map:read (map:parameter*)>
<!ATTLIST map:read
	mime-type CDATA #REQUIRED
	src CDATA #REQUIRED
	type CDATA #IMPLIED
>
<!ELEMENT map:reader ANY>
<!ATTLIST map:reader %compatts;>
<!ELEMENT map:readers (map:reader*)>
<!ATTLIST map:readers
	default CDATA #REQUIRED
>
<!ELEMENT map:redirect-to EMPTY>
<!ATTLIST map:redirect-to
	uri CDATA #REQUIRED
>
<!ELEMENT map:resource %pipecontent;>
<!ATTLIST map:resource
	name CDATA #REQUIRED
>
<!ELEMENT map:resources (map:resource*)>
<!ELEMENT map:selector ANY>
<!ATTLIST map:selector %compatts;>
<!ELEMENT map:select (map:parameter*, map:when*, map:otherwise?)>
<!ATTLIST map:select
	type CDATA #IMPLIED
>
<!ELEMENT map:selectors (map:selector*)>
<!ATTLIST map:selectors
	default CDATA #REQUIRED
>
<!ELEMENT map:serialize EMPTY>
<!ATTLIST map:serialize
	type CDATA #IMPLIED
	status-code CDATA #IMPLIED
	src CDATA #IMPLIED
>
<!ELEMENT map:serializer ANY>
<!ATTLIST map:serializer
	%compatts;
	mime-type CDATA #IMPLIED
>
<!ELEMENT map:serializers (map:serializer*)>
<!ATTLIST map:serializers
	default CDATA #REQUIRED
>
<!ELEMENT map:sitemap (map:components, map:views?, map:resources?, map:action-sets?, map:pipelines)>
<!ATTLIST map:sitemap
	xmlns:map CDATA #REQUIRED
>
<!ELEMENT map:transform (map:parameter*)>
<!ATTLIST map:transform
	src CDATA #IMPLIED
	type CDATA #IMPLIED
	label CDATA #IMPLIED
>
<!ELEMENT map:transformer ANY>
<!ATTLIST map:transformer %compatts;>
<!ELEMENT map:transformers (map:transformer*)>
<!ATTLIST map:transformers
	default CDATA #REQUIRED
>
<!ELEMENT map:view %pipecontent;>
<!ATTLIST map:view
	from-label CDATA #IMPLIED
	name CDATA #REQUIRED
	from-position CDATA #IMPLIED
>
<!ELEMENT map:views (map:view*)>
<!ELEMENT map:when %pipecontent;>
<!ATTLIST map:when
	test CDATA #IMPLIED
>
<!ELEMENT map:otherwise %pipecontent;>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to