修订历史记录

此处列出了 CDF 文档的变更。

2026 年 11 月 12 日

  • 修复了验证器库中的 RulesRegistry.get_all_exceptions(),使其返回记录的异常,而不是 None。
  • 更新了验证器命令行,使其在发现严重消息时以代码 4(而不是 0)退出。
  • 更新了 Schema 验证器规则,将架构验证失败报告为严重错误,而不是一般错误。
  • 更新了 MissingPartyAbbreviationTranslation 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。
  • 更新了 MissingPartyNameTranslation 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。
  • 更新了 DateOfBirthIsInPast 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是公职人员 Feed。
  • 更新了 GpUnitsHaveSingleRoot 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。
  • 修复了 ElectionDatesSpanContestDates 验证器规则,以报告日期在其选举日期之外的每个竞选,而不仅仅是最后一个。
  • 修复了找不到撰写竞赛时 ComposingContestIdsAreValidRelatedContests 验证器规则的出错提示。
  • 修复了以下问题:当竞选和选举都没有结束日期时,SubsequentContestIdIsValidRelatedContest 验证器规则会崩溃;对于没有结束日期的选举,会重复使用之前竞选的结束日期。

2026 年 11 月 11 日

  • 更新了 CoalitionParties 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。
  • 更新了 DuplicatedPartyAbbreviation 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。
  • 更新了 DuplicatedPartyName 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。

2026 年 11 月 10 日

  • 更新了 MultipleInternationalizedTextWithSameLanguageCode 验证器规则,使其适用于除元数据 Feed 之外的所有 Feed 类型,而不仅仅是选举和选举日期 Feed。

2026 年 11 月 2 日

  • 向 CandidatePreElectionStatus 添加了 disqualified 和 sub-judice。
  • 向 CandidatePostElectionStatus 添加了 defeated、did-not-participate、disqualified、projected-advanced-to-runoff 和 sub-judice。
  • 废弃了 CandidatePostElectionStatus 中的 withdrawn。
  • 更新了 Candidate,以阐明 PreElectionStatus 和 PostElectionStatus 是候选人在相关竞选中的总体最终状态,而每场竞选的状态属于 CandidateSelection。
  • 更新了 Contest,以阐明 SubUnitsReported 和 TotalSubUnits 的粒度。
  • 已将 InheritFromComposedContest 添加到 Contest 中的 ResultsReportingStageCollection。
  • 添加了 ValidateResultReportingStages 验证器规则,以确保 ResultsReportingStageCollection 不包含 ResultsReportingStage 元素,并且当 InheritFromComposedContest 为 true 时,其 Contest 会列在另一个 Contest 的 ComposingContestIds 中,否则它至少包含一个 ResultsReportingStage,并在它不包含至少两个 ResultsReportingStage 元素(一个类型为 no-results,至少一个类型为 preliminary 或 official)时发出警告。
  • 已将 InheritFromComposedContest 添加到 Contest 中的 ResultsReportingStageCollection。
  • 添加了 ValidateResultReportingStages 验证器规则,以确保当 InheritFromComposedContest 为 true 时, ResultsReportingStageCollection 不包含 ResultsReportingStage 元素,否则至少包含一个 元素;如果 不包含至少两个 ResultsReportingStage 元素(一个类型为 no-results,至少一个 类型为 preliminary 或 official),则发出警告。
  • 更新了 CandidatesReferencedInRelatedContests 验证器规则和候选人参考文档,再次将后续竞选视为相关竞选,因此后续竞选中的 Person 必须由同一 Candidate 引用。

2026 年 10 月 28 日

  • 更新了 Contest,以移除 EarliestPollsClose、LatestPollsClose、ResultsEmbargoEnd 和 ResultsExpected 的撰写上下文继承。

2026 年 10 月 23 日

  • 更新了 GpUnitOcdId 验证器规则,以检查 ReportingUnit 元素。

2026 年 10 月 22 日

  • 已将 OutcomeDetermined 添加到Contest。

2026 年 10 月 21 日

  • 更新了 Contest,以阐明 ResultsReportingStageCollection 应包含完整的预期阶段及其归因,而不仅仅是当前阶段(当前阶段应放入 CurrentResultsReportingStage)。

2026 年 10 月 16 日

2026 年 10 月 15 日

  • 已将 Alias 添加到Person。

2026 年 10 月 13 日

  • 向 CandidateSelection 添加了 PreElectionStatus 和 PostElectionStatus。
  • 已将 diplomat 添加到OfficeRole。
  • 向 Office 添加了 DiplomatSendingStateId 和 DiplomatReceivingStateId。
  • 更新了 ValidIDREF 验证器规则,以将 DiplomatSendingStateId 和 DiplomatReceivingStateId 识别为引用 GpUnit 元素
  • 添加了 DiplomaticOfficesHaveCorrespondingGpUnitsSet 验证器规则,以确保具有 diplomat 角色的办公室至少设置了其中一个字段。

2026 年 10 月 12 日

  • 已将 EstimatedExpectedVotePercentage 添加到 Contest 中。

2026 年 10 月 8 日

  • 移除了 ContestStage,取而代之的是 ResultsReportingStage 和 ResultsReportingStageType。
  • 更新了 EmptyString 验证器规则,当第一个子元素前面没有空格时,不会在具有子元素的元素上引发错误。

2026 年 10 月 6 日

  • 已将 ResultsLastUpdated 添加到 Contest 中。

2026 年 9 月 24 日

  • 添加了 CandidateImageInContactInformation 验证器规则,以便在 ContactInformation.Uri 中设置 candidate-image 时发出警告,并建议改用 Person.ImageUri。

2026 年 9 月 14 日

  • 更新了 CandidatesReferencedInRelatedContests 验证器规则和候选人参考文档,不再将后续竞选视为相关竞选。

2026 年 9 月 2 日

  • 添加了 SqsQueueNameIsFullyQualifiedArn 验证器规则,以确保如果在元数据 Feed 中设置了 SqsQueueName,则它是有效的完全限定 SQS ARN。

2026 年 8 月 28 日

  • 已将 TotalSeats 添加到 Contest 中。
  • 更新了 VoteCountValidSeatsDeltaTypes 规则,以便在 SpecialBallotSelection 元素中出现旧版 seats-delta 时报错,并支持 seats-delta-institutional,而无需设置 seats-delta-mandate。

2026 年 8 月 27 日

  • 弃用了旧版 JSON Feed 格式,并移除了开发者指南和参考文档中的所有 JSON 架构示例,改用 CDF XML。

2026 年 8 月 26 日

  • 更新了参考文档中稳定 ID 和对象 ID 的示例,以使用带连字符的匈牙利命名法。
  • 更新了稳定标识符指南,列出了各种实体类型的前缀建议。

2026 年 8 月 25 日

  • 已移除 HungarianStyleNotation 条规则。
  • 更新了稳定标识符指南,以阐明匈牙利表示法是最佳实践,但并非必需,并添加了前缀示例。

2026 年 8 月 24 日

  • 更新了国际注意事项指南,阐明了对候选人和政党名称的英文翻译的要求,这些翻译应来自官方来源、信誉良好的媒体或合作伙伴出版物。

2026 年 8 月 22 日

2026 年 8 月 5 日

  • 根据文档,更新了 CountedInTotal 的架构,以允许 minOccurs=0。

2026 年 7 月 29 日

  • 更新了 FeedInactiveDateIsLatestDate,以跳过检查测试 Feed。
  • 添加了新的 DuplicateBallotTitleSeatPair 规则,用于检查竞选活动中是否存在重复的(BallotTitle、Seat)对。
  • 添加了新的 FeedInactiveDateNotOlderThanOneYear 规则。

2026 年 7 月 17 日

  • 检查所有 Uri 元素是否都具有有效的语言代码(如果已指定)。

2026 年 7 月 9 日

  • 移除了已废弃的 GovernmentBodyExternalId 规则。

2026 年 6 月 16 日

  • 已将旧版政府机构架构更新为错误。

2026 年 6 月 16 日

  • 添加了Named Entity Changes指南。

2026 年 6 月 2 日

  • 已将 tse-candidate-number 作为外部标识符添加到 Candidate。

2026 年 5 月 19 日

  • 添加了 ResultsReportingStagesMustHaveUniqueType 验证器规则,以确保 ResultsReportingStageCollection 中的每个 ResultsReportingStage 都具有唯一的 StageType。

2026 年 5 月 18 日

  • 添加了 SqsQueueNameRequiresS3SourceDirPath 验证器规则,以确保如果在元数据 Feed 中设置了 SqsQueueName,则还必须设置 SourceDirPath,并且必须是 s3 路径。

2026 年 5 月 7 日

  • 添加了 AttributionDepthLimit 规则,以确保 <ResultsReportingStage> 下的 <Attribution> 树最多具有 3 个递归/深度级别。
  • 添加了 AttributionCyclesValidation 规则,以确保 <Attribution> 元素不包含节点之间的有向循环(循环)。

2026 年 5 月 6 日

  • 添加了 ValidateIncludeInAggregationBallotSelections 规则,用于检查标记为 IncludedInAggregation 的选项的票数总和是否不超过 AggregateBallotSelection 票数。
  • 添加了规则,以对 SpecialBallotSelection 强制执行 CountedInTotal 限制。
  • 添加了 ValidateResultsEmbargoEnd 规则,用于检查 ResultsEmbargoEnd 是否不晚于 official ResultsReportingStage 的开始时间。
  • 添加了 ValidateResultsExpected 规则,用于检查 ResultsExpected 是否在第一个 ResultsReportingStage 之前(不包括 no-results 阶段)。
  • 添加了 NotEmptyUniqueDataSourceUris、UniqueDataSourceLanguages 和 UniqueDataSourceDisplayNames 规则,用于验证 DataSourceCollection 元素。此外,还向 MultipleInternationalizedTextWithSameLanguageCode 添加了 DisplayName。

2026 年 5 月 5 日

  • 添加了 ValidatePollsCloseDatetimes 规则,用于检查 LatestPollsClose 是否不早于 EarliestPollsClose。
  • 已删除 PartiesHaveValidColors 条规则。这些值也会通过 HtmlColorString 的架构进行验证。
  • 更新了 ValidateDuplicateColors 规则,以支持 DarkThemeColor 和 LightThemeColor。

2026 年 4 月 30 日

  • 添加了 WinnerCountLimit 验证器规则,用于检查竞选中的获胜者或预计获胜者数量是否不超过当选席位数量。
  • 移除了对 ContactInformation 中 candidate-image 注解的支持。
  • 添加规则,以将带有注解 candidate-image 的 ImageUri 限制为每个 Person 最多一个,并确保候选图片 URI 在不同人员之间是唯一的。

2026 年 4 月 29 日

  • 向 METADATA_RULES 添加了 EmptyString 和 EmptyText 规则。

2026 年 4 月 16 日

  • 向 metadata_sample_feed.xml 添加了更多示例。
  • 修复了多个示例 Feed 文件,以确保它们通过验证。

2026 年 4 月 14 日

  • 更新了 yearly Feed 的有效期,仅允许 pre-election Feed 使用。 类型为 election-results 的 Feed 必须始终为 limited。

2026 年 3 月 25 日

  • 正在更新元数据示例 Feed SourceDirPath 值,以符合正则表达式预期。

2026 年 3 月 19 日

  • 将 IsTest 和 SqsQueueName 添加到了 Feed 中。

2026 年 3 月 18 日

  • 添加了 BallotSelection 的 SpecialBallotSelection 子类型。
  • 在 Contest 中添加了 AggregateBallotSelection、BlankBallotSelection、NoneOfTheAboveBallotSelection 和 NullBallotSelection。
  • 将 IncludedInAggregation 添加到了 CandidateSelection 和 PartySelection。
  • 向 ElectionReport 添加了 Attribution 和 DataSource 元素定义以及 DataSourceCollection。
  • 向 Contest 添加了 ResultsReportingStage 和 ResultsReportingStageType 定义以及 ResultsReportingStageCollection 和 CurrentResultsReportingStage。
  • 向 Party 添加了 PartyColors 定义和 Colors。

2026 年 3 月 17 日

  • 已将 IsNotable 添加到 Candidate、Contest 和 Party。
  • 已将 PartyLabel 添加到 Candidate 中。
  • 已将 ImageUri 添加到 Person 中。
  • 在 Contest 中添加了 ResultsExpected、ResultsEmbargoEnd、EarliestPollsClose 和 LatestPollsClose。

2026 年 3 月 11 日

  • 从 EmptyString 规则中移除了对 IssuerAbbreviation 的特殊处理。

2026 年 2 月 26 日

  • 已将VoteCountsCollection限制为每个BallotSelection一个。(这仍然允许该集合中存在多个 VoteCounts。)

2026 年 2 月 24 日

  • 修复了对 OfficeholderSubFeed 的引用,这些引用之前被错误地写为 OfficeHolderSubFeed。
  • 元数据 Feed 中的 SourceDirPath 仅限受支持的文件路径类型。

2026 年 2 月 23 日

  • 更新了 VoteCounts 枚举,以同时支持 seats-delta-mandate 和 seats-delta-institutional。

2026 年 2 月 18 日

  • 在元数据 Feed 的 Feed 元素中,将 ElectionEventCollection 和 OfficeholderSubFeed 设为互斥。

2026 年 2 月 12 日

  • 在简单数据类型中添加了指南,说明 PartialDate 会被解读为范围内的最晚可能日期。

2026 年 2 月 11 日

  • 向 MissingStableIds CDF 验证器规则添加了 OfficeHolderTenure,以确保所有公职人员任期都具有稳定的 ID。

2026 年 1 月 28 日

  • 添加了 FeedElementsShouldHaveSubElementsBasedOnType CDF 验证器规则,以确保元数据 Feed 中的 Feed 条目具有适当的子元素。

2026 年 1 月 15 日

  • 删除 ElectoralDistrictOcdId 规则,因为它已被更广泛的 GpUnitOcdId 规则完全取代。

  • 在 CDF 验证工具中添加了 mayor 作为行政办公室角色。

2026 年 1 月 13 日

  • 添加了 EmptyString 验证器规则,用于检查字符串字段是否不为空或仅包含空格(暂时针对 IssuerAbbreviation 发出警告)。

2025 年 12 月 10 日

  • 更新了 CDF XSD,使 IssuerAbbreviation 成为可选字段。

2025 年 11 月 18 日

  • 更新了 GpUnitOcdId 规则,以检查所有应具有 OCD ID 的 GpUnit 是否具有有效的 OCD ID,并将 ElectoralDistrictOcdId 规则替换为占位符,直到可以安全移除。

2025 年 11 月 12 日

October 22, 2025

2025 年 9 月 29 日

  • 更新了 ElectoralCommission 名称的准则,包括 XML 示例。

2025 年 8 月 5 日

  • 更新了 voter-information 的 FeedType 的 Feed 文档和验证工具支持。

2025 年 7 月 23 日

  • 向 VoterInformationWebsiteType 添加其他值。

2025 年 7 月 11 日

  • 向可用的 Contest 类型添加了 RetentionContest。

2025 年 7 月 7 日

  • 更新了元数据 Feed 文档和验证工具,以阐明在确定 Feed 停用日期时无需考虑已取消的选举活动。

2025 年 6 月 25 日

  • 已将whatsapp添加为AnnotatedUri的平台。

2025 年 6 月 16 日

  • 更新了 VoterInformationWebsite 和 ElectoralCommissionWebsite 的选民信息文档,以反映 CDF 架构中的定义。

2025 年 5 月 29 日

  • 已将 NoSourceDirPathBeforeInitialDeliveryDate 验证器规则替换为 SourceDirPathMustBeSetAfterInitialDeliveryDate。

2025 年 5 月 27 日

  • 添加了对选民信息 Feed 的验证工具支持和基本检查。

2025 年 5 月 22 日

  • 发布了指南,以帮助确定公职人员的任期日期。

2025 年 5 月 13 日

2025 年 5 月 7 日

2025 年 5 月 6 日

  • 更新 PersonHasOffice 规则以检查新的 OfficeHolderTenure 架构。

2025 年 4 月 18 日

  • 添加了说明,指出 People 的 FullName 元素不应包含人员的头衔。

2025 年 4 月 10 日

  • 添加了新的架构,用于区分职位和任职者任期。

2025 年 3 月 12 日

  • 在办公室角色中添加了 judge、cabinet member、general purpose officer 和 special purpose officer,并在验证器中添加了逻辑,以允许两种角色组合:head of government 和 head of state,以及 cabinet member 和 general purpose officer。

2025 年 3 月 4 日

  • 更新了 ElectionDateType,详细说明了如何针对 bounded 选举解读 StartDate 和 EndDate。

2025 年 2 月 26 日

  • 更新了元数据 Feed,添加了关于在 FeedInactiveDate 之后等待 60 天再从元数据 Feed 中移除 Feed 的说明。

2025 年 1 月 29 日

2025 年 1 月 27 日

  • 更新了竞赛指南,在 BallotMeasureContest 中添加了 PassageThreshold 定义

2025 年 1 月 15 日

  • 更新了元数据 Feed 实体的 FeedInactiveDate 属性的相关准则。

2024 年 11 月 19 日

2024 年 11 月 11 日

  • 添加了要求 Feed 文件名保持不变的文档

2024 年 11 月 1 日

  • 更新了 EmptyText 验证器规则,以引发错误而不是警告。

2024 年 8 月 26 日

2024 年 7 月 17 日

2024 年 7 月 10 日

  • 添加了针对“FeedInactiveDate”和 SourceDirPath 的建议

2024 年 6 月 24 日

  • 更新了 PartyId,允许为 Candidate 和 Person 实体提供多个 PartyId。

2024 年 6 月 21 日

2024 年 5 月 14 日

  • 清理 PartyContest 实体,使其仅包含相关元素 PartyContest。
  • 添加了 ElectionDateStatus 枚举值的更新定义,特别是 tentative 和 changing。

2024 年 5 月 1 日

  • 阐明了参与方的 IsIndependent 元素的定义。

2024 年 4 月 29 日

2024 年 4 月 17 日

  • 向当事人参考页面添加了 IsIndependent 元素。

2024 年 2 月 12 日

  • 在整个网站中添加了有关新元数据 Feed 的文档。

2024 年 1 月 9 日

2024 年 1 月 3 日

  • 更新了内部注意事项,更细致地说明了如何以及何时翻译或音译数据。

2023 年 7 月 24 日

  • 为政治委员会添加了 Committee 类型和相应的 Feed 类型

2023 年 1 月 20 日

  • 向 Party 的参考页面添加了 Slogan 元素。
  • 向 Candidate 的参考页面添加了 CampaignSlogan 元素。

2022 年 11 月 17 日

2021 年 12 月 30 日

  • 向简单数据类型页面添加了 PartialDate 部分,并更新了一些表字段。

2021 年 12 月 27 日

  • 修改了竞选页面 CandidateContest 部分中的内容,以支持每场竞选仅有一个职位,并更新了一些 XML 示例。

2021 年 10 月 15 日

  • 在候选人参考页面中添加了 ExternalIdentifier 部分。

2021 年 8 月 20 日

2021 年 2 月 26 日

  • 在任期参考页面中添加了一个示例,说明如何在公职人员 Feed 中表示连任公职人员的任期。

2021 年 2 月 24 日

  • 向参与方参考资料中添加了有关 party-chair-id 的信息。

2021 年 2 月 18 日

  • 在 CandidatePreElectionStatus 参考资料中添加了一个图表,用于说明状态的时间。

2020 年 12 月 14 日

  • 添加了介绍可用 Feed 类型的“指南”页面。更新了参考页面,以便为大多数实体提供应遵循的最佳实践。