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]

Reply via email to