XML can represent all data.
XML is still on version 1.0 (name another widely used computer specification
that is!)
Humans and computer can read much XML.
All major computer languages have XML support, even XMLNS (XML with
NameSpaces)
Here is a _well-formed_ (1) and _0valid (2) XML document for voting.
I wrote F{64} to represent a 64 character hex string. FF represents a two
character hex string.
Comments?
-Josh Narins
(1) That's easy. There are only 5 or 6 rules. You can't have a & or a <, you
have to write them & and <. You also have limited use of " ' and >
(" ' and >) I leave the rest as an exercise for the reader.
(2) all the DOCTYPE stuff in the second example sets out a set of rules for
the data
<?xml version="1.0"?>
<v:vote id="F{64}" xmlns:v="http://x.narins.net/mlns/vote.dtd">
<time value="2002091120:10:05" />
<location value="F{64}" />
<crew supervisor="F{128}" machine="F{128}:F{128}:F{128}" sub="F{128}" />
<race id="FF">
<candidate id="FF" rank="FF" />
<candidate id="FF" rank="FF" />
<candidate id="FF" rank="FF" />
<candidate id="FF" rank="FF" />
</race>
<issue id="FF">
<option id="FF" rank="FF" />
<option id="FF" rank="FF" />
<option id="FF" rank="FF" />
<option id="FF" rank="FF" />
</issue>
</v:vote>
THIS VERSION INCLUDES ITS OWN DTD, that makes it more correct.
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE vote [
<!ELEMENT vote (time,location,crew,(race|issue)*)>
<!ATTLIST vote xmlns:v CDATA #FIXED
"http://x.narins.net/mnlns/vote.dtd">
<!ELEMENT time EMPTY>
<!ATTLIST time value NMTOKEN #REQUIRED>
<!ELEMENT location EMPTY>
<!ATTLIST location value NMTOKEN #REQUIRED>
<!ELEMENT crew EMPTY>
<!ATTLIST crew supervisor NMTOKEN #REQUIRED
machine NMTOKEN #REQUIRED
sub NMTOKEN #IMPLIED>
<!ELEMENT race (candidate+)>
<!ATTLIST race id NMTOKEN #REQUIRED>
<!ELEMENT candidate EMPTY>
<!ATTLIST candidate id NMTOKEN #REQUIRED
rank NMTOKEN #IMPLIED>
<!ELEMENT issue (option+)>
<!ATTLIST issue id NMTOKEN #REQUIRED>\
<!ELEMENT option EMPTY>
<!ATTLIST option id NMTOKEN #REQUIRED
rank NMTOKEN #IMPLIED>
]>
<v:vote xmlns:v="http://x.narins.net/mlns/vote.dtd">
<time value="2002091120:10:05" />
<location value="F{64}" />
<crew supervisor="F{128}"
machine="F{128}:F{128}:F{128}"
sub="F{128}" />
<race id="FF">
<candidate id="FF" rank="FF" />
<candidate id="FF" rank="FF" />
<candidate id="FF" rank="FF" />
<candidate id="FF" rank="FF" />
</race>
<issue id="FF">
<option id="FF" rank="FF" />
<option id="FF" rank="FF" />
<option id="FF" rank="FF" />
<option id="FF" rank="FF" />
</issue>
</v:vote>
------------------------------------------------------------------------------
This message is intended only for the personal and confidential use of the designated
recipient(s) named above. If you are not the intended recipient of this message you
are hereby notified that any review, dissemination, distribution or copying of this
message is strictly prohibited. This communication is for information purposes only
and should not be regarded as an offer to sell or as a solicitation of an offer to buy
any financial product, an official confirmation of any transaction, or as an official
statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or
error-free. Therefore, we do not represent that this information is complete or
accurate and it should not be relied upon as such. All information is subject to
change without notice.
----
For more information about this list (subscribe, unsubscribe, FAQ, etc),
please see http://www.eskimo.com/~robla/em