You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by Matthew Forsyth <an...@yahoo.com> on 2002/09/13 22:38:14 UTC

psml.xsd

Hi all, allow me to introduce myself.  
My name's Matthew Forsyth and I'm working on a
jetspeed portal for a company called Seawave
(http://www.seawave.com).

Here's my first issue:

I need to implement a new profiler service for
seawave's portal, and was perusing what I believe is
the current psml.xsd in order to really get a grip on
the structure of psml files.

It turns out that this file
http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-jetspeed/src/xml/psml.xsd?rev=HEAD&content-type=text/plain
has several problems which make it an invalid xml
schema document...  so in order to make use of XML spy
I fixed them...  

Here's the problems with psml.xsd what I did about
them.

1.  The opening schema element reads:
<schema
targetNamespace="http://www.apache.org/2000/02/CVS"
xmlns="http://www.w3.org/2001/XMLSchema">
A targetNamespace is defined without having defined a
prefix for the apache namespace.  This is illegal; the
targetNamepace must have an associated prefix.  

I added 
xmlns:apache="http://www.apache.org/2000/02/CVS"  

Furthermore, all of the elements defined such as
"portlets", while part of the target namespace, are
not part of the default namespace and so ref's
pointing them need to be phrased like 
ref="apache:portlets"
I added the apache prefix to all element refs.


2. various attribute definitions throughout the
document have "minOccurs" and "maxOccurs"
attributes... this is not legal.  You're supposed to
use 
use="required" 
or
use="optional"
to indicate whether an attribute is required.  

I replaced the min/maxOccurs with use=x where
appropriate.


3.  some of the elements inside "all" groups have the
property "maxOccurs=unbounded".  I don't know why this
is prohibited, but it is; elements inside "all" groups
must all be minOccurs=0, maxOccurs=1. 
I can't seem to find any way in xml schema to
duplicate the intended semantics here exactly.  The
closest I can come is replacing the "all" with a
"sequence", which unfortunately enforces the order of
the contained elements.  

I replaced the "all"s with "sequences" in the xsd. 
Will this cause compatibility issues?


4. xml comments are used throughout to provide
human-readable documentation.  The preferred way to do
this in xml schema is to provide
<annotation>
  <documentation>
    comments here
  </documentation>
</annotation>
... because this officially binds documentation to
particular elements in a way that can be understood by
automated processes/guis (like XML spy).  Using xml
comments everywhere is the equivalent of using all
"//" instead of javadoc comments in java code.

I changed all of the comments (apart from the legalese
at the beginning) to annotation entries, but kept the
text of the comments intact.

Attached is my new version of psml.xsd.
Should I submit this as an entry in bugzilla, or can
someone simply commit it to the latest development
version... how should I treat bug fixes like this in
the future...?

-matt

__________________________________________________
Do you Yahoo!?
Yahoo! News - Today's headlines
http://news.yahoo.com