OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

election-services message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: BML - first cut discussion document


Greg et al.,

Here is a first cut of an election results DTD that we've developed
in-house.

My key concern at this early point is that the fields used to identify
an election (Office, Type, State, Party, District/Seat) be consistent
both in collecting and reporting votes.

Regards,

Tim
-- 
Tim Bovee, Director of Projects/Technology
The Associated Press, Washington
202-776-9465, tbovee@ap.org
--

<!-- Root element: ELECTION RETURNS  -->
<!ELEMENT ELECTION_RETURNS
       (P*, DATETIME?, P*, (REGION_NAME, REGION_TYPE?)?, RACE+, P*)>

<!ELEMENT P (#PCDATA)>     <!-- opening or closing paragraphs -->


<!ELEMENT DATETIME (MONTH,DAY,YEAR,HOUR,MINUTE)>
    <!ELEMENT MONTH (#PCDATA)>
    <!ELEMENT DAY (#PCDATA)>
    <!ELEMENT YEAR (#PCDATA)>
    <!ELEMENT HOUR (#PCDATA)>
    <!ELEMENT MINUTE (#PCDATA)>

<!ELEMENT RACE
         ((OFFICE, SEAT?, P*, DATETIME?, CANDIDATE+)|
          (BALLOT_QUESTION, P*, DATETIME?, YES, NO)>
    <!ELEMENT OFFICE (#PCDATA)>
    <!ELEMENT SEAT   (#PCDATA)>
    <!ELEMENT CANDIDATE (BALLOT_NAME, PARTY?, INCUMBENT?,
                    (WINNER|ADVANCED)?, VOTES, PCT?)>
        <!ELEMENT BALLOT_NAME (#PCDATA)>
        <!ELEMENT WINNER      EMPTY    >
        <!ELEMENT PARTY       (#PCDATA)>
        <!ELEMENT INCUMBENT   EMPTY    >
        <!ELEMENT ADVANCED    EMPTY    >  <!--advanced to runoff-->

<!ELEMENT VOTES   (#PCDATA)>
<!ELEMENT PCT (#PCDATA)>   <!--  PCT=percentage -->

<!ELEMENT REGION (REGION_NAME, REGION_TYPE, PRECINCTS?, VOTES, PCT?)>
<!ELEMENT REGION_NAME (#PCDATA)>
<!ELEMENT REGION_TYPE
            (NONE |
              COUNTY | PARISH | 
              CITY | TOWN | BOROUGH | TOWNSHIP |
              DISTRICT | STATE | COMMONWEALTH | 
              DIVISION | PRECINCT | WARD | OTHER )>


<!ELEMENT PRECINCTS ((REPORTING,TOTAL)?,PCT)>
<!ELEMENT REPORTING (#PCDATA)>
<!ELEMENT TOTAL (#PCDATA)>


> "McGilvray, Gregg" wrote:
> 
> 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 )>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC