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

ใช้ 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.

ตัวอย่าง

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>