[EM] Why is XML perfect?

Narins, Josh josh.narins at lehman.com
Mon Sep 30 06:33:25 PDT 2002


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



More information about the Election-Methods mailing list