<!--DOCTYPE rollcall-vote [  -->
<!-- ==========================================================	-->
<!--  CREATOR: United States Congress		-->
<!--  MODULE: Legislative Branch Vote DTD	-->
<!--  VERSION: 1.0                                               	-->
<!--  DATE: November 2003			-->
<!-- ==========================================================
     Formal Public Identifier:
"-//Legislative Branch//DTD rollcall-vote v1.0 20031121 //EN"		-->

<!-- ==========================================================	-->
<!--  SYSTEM:    Legislative Branch DTDs				-->
<!--  PURPOSE: Contains Vote-specific declarations.			-->
<!--	To be used in committee reports, the			-->
<!--	Congressional Record, the web, and data exchange		-->
<!--  CONTAINS:  1) No calls to External Modules			-->
<!--  ORIGINAL CREATION DATE:				-->
<!--             Jan. 24, 2003					-->
<!-- ==========================================================	-->
<!--	Modifications

	3 April 2007
	Added majority element

	21 November 2003 JC
	Added vote-correction element

	17 September 2003 csl
	1.  The attribute on action-time currently "time" was changed
	"time-est" est standing for Eastern Standard Time.  Subsequently
	changed to ETZ for Eastern time zone.  Est too close to estimated
	and confusing when dealing with daylight savings time.  24 hour time.
	2.  Added the attribute "unaccented-name" to the element legislator.
	3.  Added the attribute "unaccented-name" to the element candidate.
							-->

<!--              ROLLCALL-VOTE                                    -->
<!--	Container for the recorded data originating in
	the House, Senate, or a committee.  Broadly,
	there are two types of votes: Yes/No and 
	Elections.                                       -->

<!ELEMENT rollcall-vote (vote-metadata?,vote-data)>


<!--  *****************************************	-->
<!--  VOTE-METADATA CONTAINER	-->
<!--  *****************************************	-->

<!--	VOTE-METADATA		-->
<!--	Container for metadata associated with the roll call
	event.  Most of this data normally does not appear 
	in printed products (e.g., committee reports, the 
	Congressional Record), but may appear on the web. 
	The metadata identifies the roll call event in a 
	unique manner independent of the publication and
	will enable long-term enhanced search capabilities. -->

<!ELEMENT vote-metadata (majority?, congress, session, chamber, committee-name?, 
	rollcall-num?,(legis-num | vote-issue)?,vote-question, vote-correction?,
	amendment-num?, amendment-author?, vote-type,
	vote-result, action-date,action-time,
	vote-desc?,vote-totals)>


<!--	ROLLCALL-NUM			-->
<!--	The rollcall number is a one up number associated with
	the vote event.  Roll call numbers for the House and 
	Senate start over at the beginning of each session.
	This element contains attributes that uniquely identify
	the event (i.e., congress number, session, chamber, and
	committee). An example is 12.		-->

<!ELEMENT rollcall-num (#PCDATA)>


<!--	MAJORITY			-->
<!--	The majority party of the Congress, e.g. D, R -->

<!ELEMENT majority (#PCDATA)>


<!--	CONGRESS			-->
<!--	The number of the Congress, e.g., "101" for
	the 101st Congress			-->

<!ELEMENT congress (#PCDATA)>
<!ATTLIST congress
	display (yes | no) "yes">



<!--	SESSION				-->
<!--	The session, or meeting, of Congress,
	i.e., 1st, 2d, 3d, 4th, etc.		-->

<!ELEMENT  session      (#PCDATA)>
<!ATTLIST  session
	display (yes | no) "yes">



<!--	CHAMBER			-->
<!--	The chamber of Congress
	i.e., House of Representatives or Senate	-->

<!ELEMENT  chamber      (#PCDATA)>



<!--	COMMITTEE-NAME			-->
<!--	The name of the committee
	i.e., Committee on Judiciary		-->

<!ELEMENT  committee-name      (#PCDATA)>
<!ATTLIST committee-name
                        committee-id 
                                    CDATA	 #IMPLIED
                        amending-committee-num 
                                        (1 | 2 | 3 | 4 | 5)  #IMPLIED  >



<!--	LEGIS-NUM			-->
<!--	The  "legis-num" is the legislation's official
	identifier e.g., "H.R. 1514" or "S.J.RES. 42"
	The first "word" indicates  the chamber creating the
	legislation and the type of legislation.  The
	element comes from the bill and resolution DTD.
	Values are:
	H.R.		House Bill 
	S.		Senate Bill 
	H.J.RES.		House Joint Resolution
	S.J.RES.		Senate Joint Resolution 
	H.CON.RES.	House Concurrent Resolution
	S.CON.RES.	Senate Concurrent Resolution
	H.RES.		House simple Resolution
	S.RES.		Senate simple Resolution	-->

<!ELEMENT legis-num (#PCDATA)>



<!--	VOTE-ISSUE			-->
<!--	When the item being voted on is not a legis-num, it
	is usually a nomination (PN number).  It's also 
	possible to have n/a in this element.	-->
		  
<!ELEMENT vote-issue (#PCDATA)>



<!--	VOTE-QUESTION				-->
<!--              The vote-question is the question that is laid upon
	the table to be voted upon.                      
	An example in the Senate is: On the Joint Resolution 
	(H.J.Res. 2 ).  In the House, an example is: 
	On Motion to Suspend the Rules and Agree.	-->

<!ELEMENT vote-question (#PCDATA)>



<!--	VOTE-CORRECTION			-->
<!--	Text for the correction of vote information as 
	printed in the Congressional Record.  
	Examples include Roll Call 305 in 2000
	and Roll Call 23 in 2001		-->

<!ELEMENT vote-correction (#PCDATA)>



<!--	AMENDMENT-NUM			-->

<!ELEMENT amendment-num (#PCDATA)>



<!--	AMENDMENT-AUTHOR		-->

<!ELEMENT amendment-author (#PCDATA)>



<!--	VOTE-TYPE			-->
<!--	The vote type identifies the type of vote taking
	place.  In the House, vote types include 
	Recorded Vote, Yea-and-Nay, Quorom, 2/3 Yea and Nay  
	The explanation is pretty basic a recorded vote
	(ordered by 1/5 of a quorum) is listed as the ayes/noes,
	while a vote by the yeas and nays (or an automatic vote,
	which is considered to be a vote by the yeas and nays and
	obtainable by 1/5 of those present) is listed by as yeas/nays.
	See clause 1 of rule 20.		-->

<!ELEMENT vote-type (#PCDATA)>



<!--              VOTE-RESULT			-->
<!--	The vote result identifies the outcome of the vote, 
	whether it Passed, Failed or was Agreed To. In the
	case of nominations, the vote-resust is Confirmed or
	Rejected.     -->

<!ELEMENT vote-result (#PCDATA)>



<!--	ENTITY: %date-attributes		-->
<!--	Originated from bill and resolution DTD	-->
<!--	date	Date written in YYYYMMDD form.
	legis-day	The legislative day designated in YYYYMMDD
		form. The legislative date is only recorded 
		when that date differs from the
		calendar date, otherwise the two are
		understood to be the same.		-->

<!ENTITY % date-attributes
             "date       CDATA  #IMPLIED
              legis-day  CDATA  #IMPLIED">



<!--	ACTION DATE			-->
<!--	Date on which a particular floor action occurred -->

<!ELEMENT action-date  (#PCDATA)>
<!ATTLIST  action-date
             %date-attributes;>



<!--              ACTION TIME                                      -->
<!--              TIme in which a particular floor action occurred -->

<!ELEMENT action-time (#PCDATA)>
<!ATTLIST action-time time-etz CDATA #IMPLIED>	<!-- etz=Eastern time zone/24 hr  -->



<!--              VOTE DESCRIPTION                                 -->
<!--	Description or title of the measure or item 
	being voted on. For example, "Motion to Table 
	Lautenberg Amdt. No. 192; To increase the 
	appropriation for the Hazardous Substance Superfund" 
	or "Department of Defense Appropriations for 
	Fiscal Year 2002" -->

<!ELEMENT vote-desc (#PCDATA)>



<!--  ************************************		-->
<!--  VOTE TOTALS WITHIN VOTE-METADATA	-->
<!--  ************************************		-->

<!--              VOTE TOTALS                                      -->
<!--              Container for two types of vote totals. For non-election 
	votes, totals are provided by party.  For election votes,
	totals are provided by candidate.
	This data could be derived from the vote-data, but
	is presented for efficiency.                     -->

<!ELEMENT vote-totals ((totals-by-party-header,totals-by-party+, totals-by-vote) | 
                       totals-by-candidate+) >



<!--	TOTALS-BY-PARTY-HEADER                           -->
<!--	Container for semantic table row to enable 
	the display of column headings within the authoring
                  application and possibly used in output.         -->

<!ELEMENT totals-by-party-header (party-header,yea-header,
	nay-header,
	present-header,not-voting-header)>
<!ELEMENT party-header (#PCDATA)>
<!ELEMENT yea-header (#PCDATA)>
<!ELEMENT nay-header (#PCDATA)>
<!ELEMENT present-header (#PCDATA)>
<!ELEMENT not-voting-header (#PCDATA)>



<!--	TOTALS-BY-PARTY			-->
<!--              Container for the total yea, nay, present and not 
	voting counts for each politcal party.  The party
	is identified as the first child element in this 
	element.				-->

<!ELEMENT totals-by-party (party,(yea-total | aye-total),
	(nay-total | no-total),
	present-total,not-voting-total)>



<!--              TOTALS-BY-VOTE                                   -->
<!--              Container for the total yea, nay, present and not 
                  voting counts for the roll call.                 -->

<!ELEMENT totals-by-vote (total-stub,(yea-total | aye-total),(nay-total | no-total),
                          present-total,not-voting-total)>



<!--              TOTALS-BY-CANDIDATE                              -->
<!--              Container for the total yea, nay, present and not 
                  voting counts for each candidate when the roll call 
                  is an election (e.g., the Speaker election).     -->

<!ELEMENT totals-by-candidate (candidate,candidate-total)>



<!--              PARTY                                            -->
<!--              A political party as it may appear on output 
                  (e.g. Republican, Rep, or R).  XSLT can transform
                  this element.                                    -->

<!ELEMENT party (#PCDATA)>



<!--              TOTAL-STUB                                       -->
<!--              The element to hold the word "Total" or "Totals" in
                  the totals-by-vote container.                    -->

<!ELEMENT total-stub (#PCDATA)>




<!--              YEA-TOTAL                                        -->
<!--              The total number of legislators voting in the 
                  affirmative on the question.  This element is used
                  to represent the total "yes" votes by party when
                  used in the totals-by-party container and the 
                  overall "yes" total when used in the totals-by-vote
                  container. Yea is used for the chambers, as opposed 
                  to aye which is used by committees (including the
                  Committee of the Whole).  This eliminate is not used
                  in the totals-by-candidate container.             -->

<!ELEMENT yea-total (#PCDATA)>



<!--              AYE-TOTAL                                        -->
<!--              The total number of legislators voting in the 
                  affirmative on the question.  This element is used
                  to represent the total "yes" votes by party when
                  used in the totals-by-party container and the 
                  overall "yes" total when used in the totals-by-vote
                  container. It's not applicable to totals-by-
                  candidate. Aye (as opposed to yea) is used when the
                  vote occurs in committees (including the Committee 
                  of the Whole).                                   -->

<!ELEMENT aye-total (#PCDATA)>



<!--              NAY-TOTAL                                        -->
<!--              The total number of legislators voting against
                  the question.  This element is used to represent 
                  the total "no" votes by party when used in the 
                  totals-by-party container and overall no total 
                  when used in the totals-by-vote container. It's 
                  not applicable to totals-by-candidate. Nay (as 
                  opposed to no) is used when the full chamber is 
                  voting.  No is used by committees (including the
                  Committee of the Whole).                         -->


<!ELEMENT nay-total (#PCDATA)>



<!--              NO-TOTAL                                         -->
<!--              The total number of legislators voting against
                  the question.  This element is used to represent 
                  the total "no" votes by party when used in the 
                  totals-by-party container and overall no total 
                  when used in the totals-by-vote container. It's 
                  not applicable to totals-by-candidate. No (as 
                  opposed to nay) is used when the vote occurs in 
                  committees (including the Committee of 
                  the Whole).                                      -->

<!ELEMENT no-total (#PCDATA)>



<!--              PRESENT-TOTAL                                    -->
<!--              The total number of legislators voting present
                  on the question.                                 -->

<!ELEMENT present-total (#PCDATA)>



<!--              NOT-VOTING-TOTAL                                 -->
<!--              The total number of legislators not voting 
                  on the question.                                 -->

<!ELEMENT not-voting-total (#PCDATA)>


<!--              CANDIDATE                                        -->
<!--              The name of the candidate for an election (e.g.,                
                  the Speaker election).  Used only in the totals-
                  by-candidate container.                          -->

<!ELEMENT candidate (#PCDATA)>
<!ATTLIST candidate
		unaccented-name  CDATA	#IMPLIED	>




<!--              CANDIDATE-TOTAL                                  -->
<!--              The total number of legislators voting for the 
                  candidate contained in the candidate element 
                  (the previous sibling in the totals-by-candidate
                  container.                                       -->

<!ELEMENT candidate-total (#PCDATA)>

<!-- END OF VOTE-METADATA CONTAINER                               -->



<!--  ************************************                         -->
<!--  VOTE-DATA CONTAINER                                          -->
<!--  ************************************                         -->



<!--              VOTE-DATA                                        -->
<!--              The container for recorded votes for each 
                  legislator.                                      -->

<!ELEMENT vote-data (recorded-vote)+>



<!--              RECORDED-VOTE                                    -->
<!--              The container for recorded votes for each 
                  legislator.                                      -->

<!ELEMENT recorded-vote (legislator,vote)>



<!--              LEGISLATOR                                       -->
<!--              The legislator's name as it should appear when
                  displayed.  This element contains several
                  attributes to further identify the legislator
                  (name-id, party, state, and district).  The 
                  name-id is a unique identifier to the person. The 
                  sort-field provides additional control for sorting 
                  of legislator names upon display.  When displayed 
                  in committee reports, committee members are 
                  displayed by order of seniority.                 -->

<!ELEMENT legislator (#PCDATA)>
<!ATTLIST legislator name-id CDATA #IMPLIED
		sort-field CDATA #IMPLIED
		state CDATA #IMPLIED
		district CDATA #IMPLIED
		party CDATA #IMPLIED
		role (legislator | chairman | speaker | vice-chairman | ranking) "legislator" 
		unaccented-name  CDATA	#IMPLIED	>


<!--              VOTE                                       -->
<!--              The vote of the legislator. Yea, Aye, Nay, No,
                  Present, Not Voting, or the name of a 
                  candidate.                                 -->

<!ELEMENT vote (#PCDATA)>


<!-- END OF ROLLCALL-VOTE DTD                                -->
