การเลือกบัตรลงคะแนน

ใช้ BallotSelection เพื่อระบุตัวเลือกในการลงคะแนนในรายการแข่งขัน เช่น เมื่อคุณลิงก์ผู้สมัครรับเลือกตั้งและพรรคการเมืองกับจำนวนคะแนนเสียง

เอกสารนี้จะอธิบาย BallotSelection และเอนทิตีย่อย ดังนี้

  • BallotSelection
    • CandidateSelection
    • PartySelection
    • BallotMeasureSelection
    • SpecialBallotSelection

เลือกฟีดประเภทใดประเภทหนึ่งต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ BallotSelection และองค์ประกอบที่เกี่ยวข้องกับฟีดประเภทนั้น


BallotSelection

BallotSelection เป็นองค์ประกอบนามธรรมที่มี 3 ประเภทซึ่งจะใช้ตามประเภทของการแข่งขัน

  • CandidateSelection: ใช้ type ของ BallotSelection นี้เมื่อการแข่งขันมีผู้สมัครรับเลือกตั้งอย่างน้อย 1 คน โดยจะลิงก์ ตัวเลือกในการลงคะแนนกับ Candidate องค์ประกอบ
  • PartySelection: ใช้ type ของ BallotSelection นี้เมื่อประเภทการแข่งขันเป็น Party, เช่น การแข่งขันแบบสัดส่วนของพรรค
  • BallotMeasureSelection: ใช้ BallotSelectionประเภทนี้เพื่อแสดงตัวเลือกที่เป็นไปได้ใน BallotMeasureContest
  • SpecialBallotSelection: BallotSelection ประเภทนี้ใช้สำหรับการรวมคะแนนเสียง (เช่น การรวม ผู้สมัครรับเลือกตั้งหลายคนไว้ใน "อื่นๆ") และการลงคะแนนเสียงประเภทต่างๆ ที่ไม่ใช่การลงคะแนนเสียง (เช่น บัตรลงคะแนนเปล่า บัตรลงคะแนนที่ไม่ถูกต้อง และการลงคะแนนเสียง "ไม่มีตัวเลือกที่กล่าวมาข้างต้น")

แอตทริบิวต์

ตารางต่อไปนี้อธิบายแอตทริบิวต์สำหรับ BallotSelection

แอตทริบิวต์ จำเป็นหรือไม่ ประเภท คำอธิบาย
objectId ต้องระบุ ID ตัวระบุภายในที่ไม่ซ้ำกันซึ่งองค์ประกอบอื่นๆ ใช้เพื่ออ้างอิง องค์ประกอบนี้

องค์ประกอบ

ตารางต่อไปนี้อธิบายองค์ประกอบสำหรับ BallotSelection

องค์ประกอบ ความหลากหลาย ประเภท คำอธิบาย
SequenceOrder 0 หรือ 1 integer

ระบุลำดับเริ่มต้นสำหรับตัวเลือกในการลงคะแนนเพื่อวัตถุประสงค์ในการแสดงผล

หากไม่มี SequenceOrder ในฟีด ระบบจะถือว่าไม่มีลำดับ

CandidateSelection

ใช้ CandidateSelection เพื่อระบุตัวเลือกในการลงคะแนนในการแข่งขันที่มีผู้สมัครรับเลือกตั้ง รวมถึงการเขียนชื่อผู้สมัครรับเลือกตั้งเอง

CandidateSelection สืบทอดแอตทริบิวต์และองค์ประกอบของ BallotSelection คุณสามารถรวมการอ้างอิงองค์ประกอบหลายรายการ Candidateได้หากจำเป็น เช่น เมื่อตัวเลือกในการลงคะแนนเป็นบัตรลงคะแนนที่มีผู้สมัครรับเลือกตั้งหลายคน

เมื่อมีการอ้างอิงผู้สมัครรับเลือกตั้งหลายคนสำหรับบัตรลงคะแนน บางครั้งการรักษาลำดับของผู้สมัครรับเลือกตั้งไว้ก็มีความสำคัญ ในกรณีเหล่านี้ เราคาดหวังให้แอปพลิเคชันที่สร้างรายการอ้างอิงองค์ประกอบ Candidate ภายใน CandidateIds ตามรูปแบบการจัดลำดับที่มีอยู่ ตัวอย่างเช่น ลำดับของผู้สมัครรับเลือกตั้งต้องตรงกับการจัดลำดับการอ้างอิงองค์ประกอบ Officeภายใน OfficeIdsในContestประเภท CandidateContest

หากมีการอ้างอิงออบเจ็กต์ Candidate มากกว่า 1 รายการ ระบบจะแสดงออบเจ็กต์เหล่านั้นต่อผู้ใช้ตามลำดับต่อไปนี้

  • ผู้สมัครรับเลือกตั้งทั้งหมดที่มี IsTopTicket ตั้งค่าเป็น true จะถูกจัดลำดับก่อนผู้สมัครรับเลือกตั้งทั้งหมดที่ไม่มีค่า IsTopTicket ซึ่งจะถูกจัดลำดับก่อนผู้สมัครรับเลือกตั้งทั้งหมดที่มี IsTopTicket ตั้งค่าเป็น false โดยควรตั้งค่าตัวเลือกเป็นผู้สมัครรับเลือกตั้ง 1 คนที่ไม่มีค่า IsTopTicket หรือมีผู้สมัครรับเลือกตั้ง 2 คน และ 1 ในนั้นมี IsTopTicket ตั้งค่าเป็น true หากไม่เป็นไปตามเงื่อนไขต่อไปนี้จะเกิดขึ้น
    • ผู้สมัครรับเลือกตั้งทั้งหมดที่มี IsTopTicket ตั้งค่าเป็น true จะแสดงตามลำดับที่ไม่กำหนด
    • ผู้สมัครรับเลือกตั้งทั้งหมดที่ไม่มี IsTopTicket จะแสดงตามลำดับที่ไม่กำหนด
    • ผู้สมัครรับเลือกตั้งทั้งหมดที่มี IsTopTicket ตั้งค่าเป็น false จะแสดงตามลำดับที่ไม่กำหนด

ไวยากรณ์ XML สำหรับ CandidateSelection คือ <BallotSelection xsi:type="CandidateSelection">

องค์ประกอบ

ตารางต่อไปนี้อธิบายองค์ประกอบสำหรับ CandidateSelection

องค์ประกอบ ความหลากหลาย ประเภท คำอธิบาย
CandidateIds 1 IDREFS ตัวระบุที่ไม่ซ้ำกันสำหรับองค์ประกอบอย่างน้อย 1 รายการ Candidate ใช้เพื่อเชื่อมโยงผู้สมัครรับเลือกตั้งกับตัวเลือกในการลงคะแนนของผู้สมัครรับเลือกตั้งบน บัตรลงคะแนน นอกจากนี้ยังเป็นประโยชน์เมื่อตัวเลือกในการลงคะแนนมีผู้สมัครรับเลือกตั้งหลายคน เช่น บัตรลงคะแนนที่มีการเลือกประธานาธิบดีและรองประธานาธิบดี พร้อมกัน
EndorsementPartyIds 0 รายการขึ้นไป IDREFS ตัวระบุที่ไม่ซ้ำกันสำหรับเอนทิตีอย่างน้อย 2 รายการ Party ซึ่งแสดงถึงข้อตกลงที่พรรคการเมืองต่างๆ ระบุผู้สมัครรับเลือกตั้งคนเดียวกันในบัตรลงคะแนน
IncludedInAggregation 0 หรือ 1 boolean ระบุว่าคะแนนเสียงของตัวเลือกจะรวมอยู่ใน AggregateBallotSelection สำหรับการแข่งขันหรือไม่ ระบบจะถือว่าเป็น false หากไม่ได้ระบุ
IsWriteIn 0 หรือ 1 boolean ระบุว่าผู้สมัครรับเลือกตั้งเป็นผู้สมัครรับเลือกตั้งที่เขียนชื่อเองหรือไม่ ค่าเริ่มต้นคือ false.
PostElectionStatus 0 หรือ 1 CandidatePostElectionStatus สถานะสุดท้ายของผู้สมัครรับเลือกตั้ง เช่น winner หรือ advanced-to-runoff
PreElectionStatus 0 หรือ 1 CandidatePreElectionStatus สถานะการลงทะเบียนของผู้สมัครรับเลือกตั้ง เช่น filed หรือ qualified

ตัวอย่าง

XML

    <BallotSelection objectId="cs-10861" xsi:type="CandidateSelection">
      <CandidateIds>can-10861a can-10861b</CandidateIds>
    </BallotSelection>

PartySelection

ใช้ PartySelection เพื่อระบุตัวเลือกในการลงคะแนนที่เกี่ยวข้องกับพรรคการเมือง เช่น ตัวเลือกรายชื่อพรรคการเมืองในบัตรลงคะแนน

PartySelection สืบทอดแอตทริบิวต์และองค์ประกอบของ BallotSelection ไวยากรณ์ XML สำหรับ PartySelection คือ <BallotSelection xsi:type="PartySelection" ... />

องค์ประกอบ

ตารางต่อไปนี้อธิบายองค์ประกอบสำหรับ PartySelection

องค์ประกอบ ความหลากหลาย ประเภท คำอธิบาย
IncludedInAggregation 0 หรือ 1 boolean ระบุว่าคะแนนเสียงของตัวเลือกจะรวมอยู่ใน AggregateBallotSelection สำหรับการแข่งขันหรือไม่ ระบบจะถือว่าเป็น false หากไม่ได้ระบุ
PartyIds 1 IDREFS ตัวระบุที่ไม่ซ้ำกันสำหรับองค์ประกอบอย่างน้อย 1 รายการ Party ใช้เพื่อเชื่อมโยงพรรคการเมืองอย่างน้อย 1 พรรคกับการเลือกพรรคการเมือง

ตัวอย่าง

XML

    <BallotSelection objectId="ps-150" xsi:type="PartySelection">
      <PartyIds>par-100</PartyIds>
    </BallotSelection>

BallotMeasureSelection

ใช้ BallotMeasureSelection เพื่อระบุตัวเลือกในการลงคะแนนที่เกี่ยวข้องกับมาตรการลงคะแนน เช่น การลงประชามติ

BallotMeasureSelection สืบทอดแอตทริบิวต์และองค์ประกอบของ BallotSelection ไวยากรณ์ XML สำหรับ BallotMeasureSelection คือ <BallotSelection xsi:type="BallotMeasureSelection" ... />

องค์ประกอบ

ตารางต่อไปนี้อธิบายองค์ประกอบสำหรับ BallotMeasureSelection

องค์ประกอบ ความหลากหลาย ประเภท คำอธิบาย
ExternalIdentifiers 0 หรือ 1 ExternalIdentifiers เชื่อมโยงรหัสกับตัวเลือกมาตรการลงคะแนน ต้องมีตัวระบุที่เสถียร
Selection 1 InternationalizedText ระบุตัวเลือกที่มีให้สำหรับบัตรลงคะแนน เช่น Yes หรือ No

ตัวอย่าง

XML

    <BallotSelection objectId="bms-00" xsi:type="BallotMeasureSelection">
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>bms-00-yes</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
      <Selection>
        <Text language="en">Yes</Text>
      </Selection>
    </BallotSelection>

XML

    <BallotSelection objectId="bms-00" xsi:type="BallotMeasureSelection">
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>bms-00-yes</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
      <Selection>
        <Text language="en">Yes</Text>
      </Selection>
    </BallotSelection>

SpecialBallotSelection

BallotSelection ประเภทนี้ใช้สำหรับการรวมคะแนนเสียง (เช่น การรวมผู้สมัครรับเลือกตั้งหลายคนไว้ใน "อื่นๆ") และการลงคะแนนเสียงประเภทต่างๆ ที่ไม่ใช่การลงคะแนนเสียง (เช่น บัตรลงคะแนนเปล่า บัตรลงคะแนนที่ไม่ถูกต้อง และการลงคะแนนเสียง "ไม่มีตัวเลือกที่กล่าวมาข้างต้น")

SpecialBallotSelection ไม่ควรใช้ใน BallotSelection องค์ประกอบย่อยทั่วไปของ Contest แต่ควรใช้ฟิลด์ที่แยกต่างหากของ Contest, ได้แก่ AggregateBallotSelection, BlankBallotSelection, NoneOfTheAboveBallotSelection และ NullBallotSelection ดูรายละเอียดเพิ่มเติมได้ที่องค์ประกอบ Contest

องค์ประกอบ

ตารางต่อไปนี้อธิบายองค์ประกอบสำหรับ SpecialBallotSelection

องค์ประกอบ ความหลากหลาย ประเภท คำอธิบาย
CountedInTotal 0 หรือ 1 boolean ระบุว่าคะแนนเสียงของตัวเลือกเอนทิตีจะรวมอยู่ในคะแนนเสียงทั้งหมดที่ลงคะแนน ซึ่งถือว่ามีความสำคัญหรือไม่ ระบบจะถือว่าเป็น true หาก ไม่ได้ระบุ
ExternalIdentifiers 0 หรือ 1 ExternalIdentifiers เชื่อมโยงรหัสกับตัวเลือกมาตรการลงคะแนน ต้องมีตัวระบุที่เสถียร
Selection 1 InternationalizedText ระบุชื่อสำหรับตัวเลือกในการลงคะแนนนี้ เช่น "อื่นๆ" หรือ "ไม่มี ตัวเลือกที่กล่าวมาข้างต้น"

ตัวอย่าง

XML

    <AggregateBallotSelection objectId="sbs-3">
      <Selection>
        <Text language="en">Other Candidates</Text>
      </Selection>
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>sbs-3</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </AggregateBallotSelection>
    <!-- Counts of ballots left blank -->
    <BlankBallotSelection objectId="sbs-4">
      <Selection>
        <Text language="en">Blank ballots</Text>
      </Selection>
      <!-- These ballots count in the total and can affect majorities -->
      <CountedInTotal>true</CountedInTotal>
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>sbs-4</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </BlankBallotSelection>
    <!-- Votes for "None of the above" option on the ballot -->
    <NoneOfTheAboveBallotSelection objectId="sbs-5">
      <!--
        The NOTA selection optiona as it appears on the ballot, often
        "None of the above", "None", or "Uncommitted"
      -->
      <Selection>
        <Text language="en">None</Text>
      </Selection>
      <!-- These ballots count in the total and can affect majorities -->
      <CountedInTotal>true</CountedInTotal>
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>sbs-5</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </NoneOfTheAboveBallotSelection>
    <!--
      Counts of null or spoiled ballots, i.e. ballots that have been marked in
      a way that the vote cannot be counted
    -->
    <NullBallotSelection objectId="sbs-6">
      <!--
        How these ballots are often called in a given country, often
        "null" or "spoiled"
      -->
      <Selection>
        <Text language="en">Spoiled ballots</Text>
      </Selection>
      <!--
        These ballots do count in the total and are treated as the same as
        if this vote did not happen at all
      -->
      <CountedInTotal>false</CountedInTotal>
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>sbs-6</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </NullBallotSelection>