RE: BML - first cut discussion document

From
[ichael Yolotarev
Date
2001-06-12T07:12:23+00:00
ID
Thread
RE: BML - first cut discussion document
Title: BML - first cut discussion document

Gregg,

My 
experience shows that when trying to define a structured token, such as a 
ballot, semantics are of much higher importance than the notation used to 
express them. Therefore we should probably start by describing "what" goes into 
a token, and only after that start thinking about the actual tags and 
identifiers. Tags/IDs are easy and will come rather natural, once you know what 
they are to contain.

 

Doing 
it another way - i.e. by hacking an XML/XSL before there is an agreement on the 
content, would be simply wrong and wasteful, IMHO. 

 

And 
another one - should we be using xml schemas (XSD) instead of DTDs? In addition 
to the obvious advantages offered by the schemas, I found them being 
a much greater presentation tool (using XMLSpy).

 

Best 
regards

Michael

  
-----Original Message-----
From: McGilvray, Gregg 
  [mailto:]
Sent: Tuesday, 12 June 2001 
  8:45
To: Election Services Committee (E-mail)
Subject: BML 
  - first cut discussion document

  
Here is a first cut for the Ballot Markup Language 
  (BML).  There is a sample XML, DTD, and XSL 
file at the end. The sylesheet ballot.xsl will display a simple ballot 
  in HTML format.  
If you create 
  separate files for each of them with the proper names you may try to open 
  ballot.xml 
in an XML compliant 
  browser.  I used IE 5.5 to view the results. 

  
Please use this as a starting point for discussions 
  about how to start the development and approval of 
the EML standard.  This is not a comprehensive description and 
  will need to be embellished.  We will formalize 
the document as we go along. 

  
I used a DTD for this example which is not to imply 
  that DTD's will be used instead of schemas.  I also 
used only elements in favor of attributes which does not 
  necessarily mean it is the best method.  

  
A few definitions: 

  
The term ITEM is meant to represent the thing voted 
  upon whether it is an office, position-elect 
or referendum.  This is a very generic term and can be replaced if 
  necessary.  The term SELECTION refers 
to the candidate, answer, etc which is the option or choice for 
  election.  Each ballot has a unique ID as 
do the ITEMS and SELECTIONS.  The VOTELIMIT defines the number of 
  vacancies to be filled in that particulat ITEM. 
The UNDERVOTE element indicates whether it is allowable to vote for 
  fewer than the allowable SELECTIONS.  The 
WRITEIN element describes the number of write in candidates 
  allowed.  The ITEM_TYPE element describes the type 
of ITEM (such as first-past-the-post, plurality, 
  proportional vote, etc.) and will need to be discussed further. 

  
Structure: 

  
Each ballot will be enclosed with the tags 
  <ballot>...</ballot>.  The ballot has a description (such 
  as 
Nassau County, ED1,SD1) and a unique 
  number.  There are as many <item>...</item> pairs as there 
  are 
offices to be voted upon. Each has a 
  unique number, a description, an ID which describes the voting 
  
characteristics of this ITEM, the number of 
  vacancies (VOTELIMIT), whether the number of selections may be 
  
less than the number to be voted upon, and 
  if write in votes are accepted.  There will be a number of 
  
<selection>...</selection> pairs as 
  there are candidates (selections) running for that office.  Each 
  SELECTION 
has a unique number and 
  description. 

  
This structure will generically accommodate a large 
  number of eletion possibilities. 

  
Ballot.xml 

  
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" 
  href="ballot.xsl"?> 
<!DOCTYPE ballot 
  SYSTEM "ballot.dtd"> 
<ballot> 
  
  <ballot_id>1</ballot_id> 
  
  <ballot_description>US 
  Election 2000 Test</ballot_description> 
  <item> 
    <item_id>1</item_id> 
    
  <item_type>1</item_type> 
    <item_description>President of the United 
  States</item_description> 
    <votelimit>1</votelimit> 
  
    
  <undervote>Y</undervote> 
    <writeins>0</writeins> 
    <selection> 
        
  <selection_id>10</selection_id> 
         
  <selection_description>Al Gore</selection_description> 
  
    </selection> 
  
    <selection> 
  
         
  <selection_id>11</selection_id> 
         
  <selection_description>George W. Bush</selection_description> 
  
     </selection> 
  
   </item> 
</ballot> 

  
Ballot.xsl 

  
<?xml version='1.0'?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> 
  
<xsl:template match="/"> 
  <html> 
  <H1><CENTER><xsl:value-of 
  select="/ballot/ballot_description"/></CENTER></H1> 
  
  <body bgcolor = "TEAL"> 
  
    <table border="2" 
  bgcolor="yellow"> 
     <xsl:for-each 
  select="/ballot/item"> 
        <tr> 
          
  <th> 
            
  <xsl:value-of select="item_description"/> 
          
  </th> 
        </tr> 
        <xsl:for-each 
  select="/ballot/item/selection"> 
          
  <tr> 
            
  <th> 
              
  <xsl:value-of select="selection_description"/> 
            
  </th> 
          
  </tr> 
        </xsl:for-each> 
  
     
  </xsl:for-each> 
    
  </table> 
  </body> 
  
  </html> 
</xsl:template> 
</xsl:stylesheet> 

  
Ballot.dtd 

  
<!ELEMENT ballot  (ballot_id , 
  ballot_description , item+ )> 

  
<!ELEMENT ballot_id  (#PCDATA )> 
  

  
<!ELEMENT ballot_description  (#PCDATA 
  )> 

  
<!ELEMENT item  (item_id , item_type , 
  item_input_type , item_description , votelimit , undervote , writeins , 
  selection+ )>

  
<!ELEMENT item_id  (#PCDATA )> 
  

  
<!ELEMENT item_type  (#PCDATA )> 
  

  
<!ELEMENT item_input_type  (#PCDATA 
  )> 

  
<!ELEMENT item_description  (#PCDATA 
  )> 

  
<!ELEMENT votelimit  (#PCDATA )> 
  

  
<!ELEMENT undervote  (#PCDATA )> 
  

  
<!ELEMENT writeins  (#PCDATA )> 
  

  
<!ELEMENT selection  (selection_id , 
  selection_description )> 

  
<!ELEMENT selection_id  (#PCDATA 
  )> 

  
<!ELEMENT selection_description  (#PCDATA 
  )> 

This footnote confirms that 
  this email message has been swept by
MIMEsweeper for the presence of 
  computer viruses.

-----------------------------------------------------------------------------------------------------------------

"How can I make sure the right people get access to the right resources 

and business applications, with a user base that's constantly growing and

changing?" 

The answer... 

Baltimore SelectAccess 

Next Generation Authorisation Management 

http://www.baltimore.com/selectaccess/index.html

-----------------------------------------------------------------------------------------------------------------

The information contained in this message is confidential and is intended 

for the addressee(s) only.  If you have received this message in error or 

there are any problems please notify the originator immediately.  The 

unauthorized use, disclosure, copying or alteration of this message is 

strictly forbidden. Baltimore Technologies plc will not be liable for direct, 

special, indirect or consequential damages arising from alteration of the 

contents of this message by a third party or as a result of any virus being 

passed on.

In addition, certain Marketing collateral may be added from time to time to 

promote Baltimore Technologies products, services, Global e-Security or 

appearance at trade shows and conferences.

 

This footnote confirms that this email message has been swept by 

Baltimore MIMEsweeper for Content Security threats, including

computer viruses.