Here is draft schemaware for snapshot 0.2 of PEAW (Pie/Echo/Atom/Whatever).
This is quite a lot better than the 0.1 cut. I took account of smart things that were said by Norm Walsh and Jeni Tennison.
One real improvement is that all the elements in <feed>
and <entry>
are nailed-down in fixed order, for three
reasons:
Life is easier for quickie script writers.
It is possible to construct a slightly-less-unreadable XSD.
There doesn’t seem to be a downside.
Aside from that, the schema is very close to the snapshot spec and also more idiomatic (I’m starting to get the hang of this RelaxNG stuff).
RelaxNG Again · Once again, this is written in the RelaxNG Compact Syntax. Here’s a strong claim: this is the best syntax currently available for writing schemas for XML languages. If you’re writing schemas, and you haven’t yet taken a good look at RNG, please stop now and do so. You’ll be doing yourself a favor.
Check out that schema, there are three things in there that seem pretty magical to me that were just no trouble at all to write down:
The way the <content>
element handles the
multipart/related
situation (mind you, I think this is an
unnecessary innovation that should be stricken from PEAW, but the schema is
nifty).
Specifying that the content of <content>
can
contain arbitrary markup that has to be in a namespace but can’t be in
the PEAW namespace.
Dispatching to three very different content encodings inside
<content>
based on the mode=
attribute.
PEAW ·
I think it’s about ready to go, most of my gripes about the 0.1
snapshot have been addressed.
I’d still like to dump the multipart/related
bit, and I
don’t think the way to point at a web address should be labeled
Universal Republic of Love
(how about <web>
or <www>
or
<uri>
), and the <generator>
element has its
content and attribute backwards, but none of these are showstoppers.
Oh yes, and please bring xml:base
back, it’s not rocket
science.
It’s getting to be about time to declare victory and turn to the software. Accordingly, ongoing now has a PEAW 0.2 syndication feed, which is valid per this schema and per the validator.