اختيار الاقتراع

استخدِم BallotSelection لتحديد خيارات بطاقة الاقتراع في إحدى الانتخابات، مثلاً عند ربط المرشحين والأحزاب بأعداد الأصوات التي حصلوا عليها.

يتناول هذا المستند BallotSelection والكيانات الفرعية التابعة له:

  • BallotSelection
    • CandidateSelection
    • PartySelection
    • BallotMeasureSelection
    • SpecialBallotSelection

اختَر أحد أنواع الخلاصات التالية لمعرفة المزيد حول كيفية استخدام BallotSelection وعناصره المضمّنة مع هذا النوع من الخلاصات.


BallotSelection

BallotSelection هو عنصر مجرّد يتضمّن ثلاثة أنواع يتم استخدامها استنادًا إلى نوع المسابقة:

  • CandidateSelection: استخدِم type BallotSelection هذا عندما تكون المسابقة مخصّصة لمرشّح واحد أو أكثر. ويربط هذا المعرّف خيار الاقتراع بعناصر 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 واحد، سيتم عرضه للمستخدمين بالترتيب التالي:

  • يتم ترتيب جميع المرشحين الذين تم ضبط IsTopTicket على true قبل جميع المرشحين الذين ليس لديهم قيمة IsTopTicket. ويتم ترتيبها قبل جميع المرشحين الذين تم ضبط قيمة IsTopTicket لديهم على false. من المفترض أن يتم ضبط الاختيار باستخدام مرشّح واحد بدون قيمة IsTopTicket، أو أن يكون هناك زوج من المرشّحين، وأن يتم ضبط قيمة IsTopTicket لأحدهما على true. في حال عدم استيفاء هذه الشروط، سيحدث ما يلي:
    • يتم عرض جميع المرشحين الذين تم ضبط قيمة السمة IsTopTicket على true بترتيب غير محدّد.
    • يتم عرض جميع المرشحين الذين لا يتضمّنون IsTopTicket بترتيب غير محدّد.
    • يتم عرض جميع المرشحين الذين تم ضبط قيمة السمة IsTopTicket على false بترتيب غير محدّد.

في ما يلي بنية XML الخاصة بـ CandidateSelection: <BallotSelection xsi:type="CandidateSelection">

العناصر

يوضّح الجدول التالي عناصر CandidateSelection:

العنصر التعددية النوع الوصف
CandidateIds 1 IDREFS معرّفات فريدة لعنصر واحد أو أكثر من عناصر Candidate. يُستخدَم لربط مرشّح بخيار المرشّح في بطاقة الاقتراع. ويكون هذا الخيار مفيدًا أيضًا عندما يكون اختيار بطاقة الاقتراع لعدة مرشحين، مثل بطاقة اقتراع يتم فيها اختيار الرئيس ونائبه معًا.
EndorsementPartyIds ‫0 أو أكثر IDREFS تمثّل هذه السمة المعرّف الفريد لكيانين أو أكثر من كيانات Party. يشير ذلك إلى ترتيب تدرج فيه الأحزاب السياسية المرشح نفسه في بطاقة الاقتراع.
IncludedInAggregation 0 أو 1 boolean تُستخدَم لتحديد ما إذا كانت أصوات الاختيار مضمّنة في AggregateBallotSelection للمسابقة. يتم افتراض القيمة false في حال عدم تحديدها.
IsWriteIn 0 أو 1 boolean تشير هذه السمة إلى ما إذا كان المرشّح غير مدرَج في اللوائح الانتخابية. القيمة التلقائية هي false.

أمثلة

XML

    <BallotSelection objectId="cs10861" xsi:type="CandidateSelection">
      <CandidateIds>can10861a can10861b</CandidateIds>
    </BallotSelection>

JSON

    "BallotSelection": [
      {
        "@type": "CandidateSelection",
        "objectId": "cs10861",
        "CandidateIds": [
          "can10861a",
          "can10861b"
        ]
      }
    ]

PartySelection

استخدِم PartySelection لتحديد خيارات الاقتراع التي تتضمّن حزبًا، مثل اختيار قائمة حزبية في بطاقة الاقتراع.

يرث PartySelection السمات والعناصر الخاصة بـ BallotSelection. بنية XML الخاصة بـ PartySelection هي كما يلي: <BallotSelection xsi:type="PartySelection" ... />.

العناصر

يوضّح الجدول التالي عناصر PartySelection:

العنصر التعددية النوع الوصف
IncludedInAggregation 0 أو 1 boolean تُستخدَم لتحديد ما إذا كانت أصوات الاختيار مضمّنة في AggregateBallotSelection للمسابقة. يتم افتراض القيمة false في حال عدم تحديدها.
PartyIds 1 IDREFS معرّف فريد لعنصر واحد أو أكثر من عناصر Party. تُستخدَم لربط جهة واحدة أو أكثر بخيار الجهة.

أمثلة

XML

    <BallotSelection objectId="ps150" xsi:type="PartySelection">
      <PartyIds>par100</PartyIds>
    </BallotSelection>

JSON

    "BallotSelection": [
      {
        "@type": "PartySelection",
        "objectId": "ps150",
        "PartyIds": [
          "par100"
        ]
      }
    ]

BallotMeasureSelection

استخدِم BallotMeasureSelection لتحديد خيارات الاقتراع التي تتضمّن إجراء اقتراع، مثل الاستفتاءات.

يرث BallotMeasureSelection السمات والعناصر الخاصة بـ BallotSelection. في ما يلي بنية XML الخاصة بـ BallotMeasureSelection: <BallotSelection xsi:type="BallotMeasureSelection" ... />

العناصر

يوضّح الجدول التالي عناصر BallotMeasureSelection:

العنصر التعددية النوع الوصف
ExternalIdentifiers 0 أو 1 ExternalIdentifiers يربط هذا الحقل معرّفًا بخيار إجراء الاقتراع. يجب توفير معرّف ثابت.
Selection 1 InternationalizedText توفّر خيارًا متاحًا في بطاقة الاقتراع، مثل Yes أو No.

أمثلة

XML

    <BallotSelection objectId="bms00" xsi:type="BallotMeasureSelection">
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>bmc0_yes</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
      <Selection>
        <Text language="en">Yes</Text>
      </Selection>
    </BallotSelection>

JSON

    "BallotSelection": [
      {
        "@type": "BallotMeasureSelection",
        "objectId": "bms00",
        "ExternalIdentifiers": {
          "ExternalIdentifier" : [
            {
              "Type": "other",
              "OtherType": "stable",
              "Value": "bmc0_yes"
            }
          ]
        },
        "Selection": {
          "Text": [
            {
              "value": "Yes",
              "language": "en"
            }
          ]
        }
      }
    ]

XML

    <BallotSelection objectId="bms00" xsi:type="BallotMeasureSelection">
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>bmc0_yes</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
      <Selection>
        <Text language="en">Yes</Text>
      </Selection>
    </BallotSelection>

JSON

    "BallotSelection": [
      {
        "@type": "BallotMeasureSelection",
        "objectId": "bms00",
        "ExternalIdentifiers": {
          "ExternalIdentifier" : [
            {
              "Type": "other",
              "OtherType": "stable",
              "Value": "bmc0_yes"
            }
          ]
        },
        "Selection": {
          "Text": [
            {
              "value": "Yes",
              "language": "en"
            }
          ]
        }
      }
    ]

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="selection3">
      <Selection>
        <Text language="en">Other Candidates</Text>
      </Selection>
      <ExternalIdentifiers>
        <ExternalIdentifier>
          <Type>other</Type>
          <OtherType>stable</OtherType>
          <Value>selection3</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </AggregateBallotSelection>
    <!-- Counts of ballots left blank -->
    <BlankBallotSelection objectId="selection4">
      <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>selection4</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </BlankBallotSelection>
    <!-- Votes for "None of the above" option on the ballot -->
    <NoneOfTheAboveBallotSelection objectId="selection5">
      <!--
        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>selection5</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="selection5">
      <!--
        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>selection5</Value>
        </ExternalIdentifier>
      </ExternalIdentifiers>
    </NullBallotSelection>
      

JSON

    "AggregateBallotSelection": {
      "objectId": "selection3",
      "Selection": {
        "Text": {
          "@language": "en",
          "#text": "Other Candidates"
        }
      },
      "ExternalIdentifiers": {
        "ExternalIdentifier": {
          "Type": "other",
          "OtherType": "stable",
          "Value": "selection3"
        }
      },
    },
    "BlankBallotSelection": {
      "objectId": "selection4",
      "Selection": {
        "Text": {
          "@language": "en",
          "#text": "Blank Ballots"
        }
      },
      "CountedInTotal": true,
      "ExternalIdentifiers": {
        "ExternalIdentifier": {
          "Type": "other",
          "OtherType": "stable",
          "Value": "selection4"
        }
      }
    },
    "NoneOfTheAboveBallotSelection": {
      "objectId": "selection5",
      "Selection": {
        "Text": {
          "@language": "en",
          "#text": "None"
        }
      },
      "CountedInTotal": true,
      "ExternalIdentifiers": {
        "ExternalIdentifier": {
          "Type": "other",
          "OtherType": "stable",
          "Value": "selection5"
        }
      }
    },
    "NullBallotSelection": {
      "objectId": "selection5",
      "Selection": {
        "Text": {
          "@language": "en",
          "#text": "Spoiled ballots"
        }
      },
      "CountedInTotal": false,
      "ExternalIdentifiers": {
        "ExternalIdentifier": {
          "Type": "other",
          "OtherType": "stable",
          "Value": "selection5"
        }
      }
    }