On Thu, 2002-06-06 at 18:34, Piroumian Konstantin wrote:
[snip]
>
> Please, try it and tell me what else can be added/improved and patch it at
> will.
>
Sorry for the late response, but hey, it's better late than nothing :-)
I tried out your schema with Xerces 2.01 on a sitemap I have here (that
works with cocoon 2.02).
Some errors I found in the schema:
* Additional configuration attributes and child elements on the
component declarations are apparently not allowed by the schema.
e.g. <map:transformer name="foo" src="a.b.c.d.FooImpl" foo-factor="5"/>
* Giving parameters to a selector is not allowed by the schema:
e.g.
<map:select>
<map:parameter name="foo" value="bar"/>
[...]
</map:select>
Also, with current sitemap implementations the parameters may be
anywhere as long as they're a child of the parent element:
e.g.
<map:select>
<map:parameter name="..." value="..."/>
<map:when ... </map:when>
<map:parameter name="..." value="..."/>
<map:when ... </map:when>
</map:select>
Although this kind of usage should probably be discouraged ;-)
* Everywhere the data type xs:anyURI is required, this should be removed
because in the sitemap you may use {param} things in these attributes,
and that are not valid URI's.
e.g. <map:redirect-to uri="{page}"/>
Some missing attributes:
* src and set on map:act
* session on map:redirect-to
* language on map:mount
* strip-root and prefix on map:part
* map:mount is a strange case: in the sitemap.xsl (C2.02) there is
'reload-method' attribute with values 'synchron' and 'asynchron',
however that attribute is not used by the treeprocessor (as far as I can
see).
Then some errors that are a consequence of trying to formalize the
content model of the pipeline elements, which I have always found quite
difficult because just about any combination of elements is allowed.
Here are some examples of what does not work:
* content starting with map:transform is not allowed by the schema, e.g.
<map:pipeline>
<map:select>
<map:when>
<map:act type="hello">
<map:generate/>
</map:act>
<map:transform type="x"/>
<map:serialize/>
</map:when>
</map:select>
</map:pipeline>
* stuff before <map:redirect-to> is not allowed by the schema:
<map:pipeline>
<map:act/>
<map:redirect-to uri="http://www.somewhere.be"/>
</map:pipeline>
* A map:serialize on its own is not allowed by the schema:
<map:pipeline>
<map:select>
<map:when test="...">
<map:generate/>
<map:transform/>
</map:when>
</map:select>
<map:serialize/>
</map:pipeline>
Finally, here are the errors in the schema itself as reported by Xerces:
[Error] sitemap-2.1-draft.xsd:308:41: Error: The child 'choice' of the
named group definition 'indirectComponents' must not specify either the
minOccurs or maxOccurs attribute.
[Error] sitemap-2.1-draft.xsd:205:76: p-props-correct.2.1: {min occurs}
= '1' must not be greater than {max occurs} = '0' for 'group'.
[Error] sitemap-2.1-draft.xsd:206:77: p-props-correct.2.1: {min occurs}
= '1' must not be greater than {max occurs} = '0' for 'group'.
[Error] sitemap-2.1-draft.xsd:204:28: derivation-ok-restriction.5.2:
Error for type 'noGenerationPipelineType'. The content type of this
type is empty, but the content type of the base is not.
[Error] sitemap-2.1-draft.xsd:190:30: cos-ct-extends.1.4.2.2.2.2.1:
Error for type 'viewType'. The content type of a derived type and that
of its base must both be mixed or element-only.
[Error] sitemap-2.1-draft.xsd:359:30: cos-ct-extends.1.4.2.2.2.2.1:
Error for type 'handle-errorsType'. The content type of a derived type
and that of its base must both be mixed or element-only.
[Error] sitemap-2.1-draft.xsd:330:49: s4s-att-not-allowed: Attribute
'name' cannot appear in element 'complexType'.
[Error] sitemap-2.1-draft.xsd:421:33: cos-nonambig:
("http://apache.org/cocoon/sitemap/1.0":call) and
("http://apache.org/cocoon/sitemap/1.0":call){0-UNBOUNDED} (or elements
from their substitution group) violate "Unique Particle Attribution".
[Error] sitemap-2.1-draft.xsd:393:41: cos-nonambig:
("http://apache.org/cocoon/sitemap/1.0":call) and
("http://apache.org/cocoon/sitemap/1.0":call){0-UNBOUNDED} (or elements
from their substitution group) violate "Unique Particle Attribution".
[Error] sitemap-2.1-draft.xsd:373:38: cos-nonambig:
("http://apache.org/cocoon/sitemap/1.0":call) and
("http://apache.org/cocoon/sitemap/1.0":call){0-UNBOUNDED} (or elements
from their substitution group) violate "Unique Particle Attribution".
[Error] sitemap-2.1-draft.xsd:317:36: cos-nonambig:
("http://apache.org/cocoon/sitemap/1.0":parameter){0-UNBOUNDED} and
("http://apache.org/cocoon/sitemap/1.0":parameter){0-UNBOUNDED} (or
elements from their substitution group) violate "Unique Particle
Attribution".
[Error] sitemap-2.1-draft.xsd:201:53: cos-particle-restrict.2: Forbidden
particle restriction: 'any:choice,sequence,all,elt'.
[Error] sitemap-2.1-draft.xsd:201:53: derivation-ok-restriction.5.3:
Error for type 'noGenerationPipelineType'. The particle of the type is
not a valid restriction of the particle of the base.
[Error] sitemap-2.1-draft.xsd:173:41: cos-nonambig:
("http://apache.org/cocoon/sitemap/1.0":call) and
("http://apache.org/cocoon/sitemap/1.0":call){0-UNBOUNDED} (or elements
from their substitution group) violate "Unique Particle Attribution".
[Error] sitemap-2.1-draft.xsd:243:48: cos-nonambig:
("http://apache.org/cocoon/sitemap/1.0":call) and
("http://apache.org/cocoon/sitemap/1.0":call){0-UNBOUNDED} (or elements
from their substitution group) violate "Unique Particle Attribution".
That's all.
I'm not an xml schema guru myself (who is?), but maybe someone else can
do something usefull with this.
--
Bruno Dumon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]