Precinct

The Precinct object represents a precinct, which is contained within a Locality. While the id attribute does not have to be static across feeds for one election, the combination of Source.VipId, Locality.Name, Precinct.Ward, Precinct.Name, and Precinct.Number should remain constant across feeds for one election (NB: not all of the fields just mentioned are required – omitting those non-required fields is fine).

Voters can be assigned to a precinct in two ways. A voter location modeled by StreetSegment is assigned to a precinct by StreetSegment.PrecinctId. Alternatively, a precinct’s spatial boundary can be modeled with Precinct.SpatialBoundary. Any registered voter address contained within the spatial boundary of the precinct is assigned to that precinct.

Tag

Data Type

Required?

Repeats?

Description

Error Handling

BallotStyleId

xs:IDREF

Optional

Single

Links to the BallotStyle, which a person who lives in this precinct will vote.

If the field is invalid or not present, then the implementation is required to ignore it.

ElectoralDistrictIds

xs:IDREFS

Optional

Single

Links to the :ref:`multi-xml-electoral-district`s (e.g., congressional district, state house district, school board district) to which the entire precinct/precinct split belongs. Highly Recommended if candidate information is to be provided.

If the field is invalid or not present, then the implementation is required to ignore it.

ExternalIdentifiers

ExternalIdentifiers

Optional

Single

Other identifier for the precinct that relates to another dataset (e.g. OCD-ID).

If the element is invalid or not present, then the implementation is required to ignore it.

IsMailOnly

xs:boolean

Optional

Single

Determines if the precinct runs mail-only elections.

If the field is missing or invalid, the implementation is required to assume IsMailOnly is false.

LocalityId

xs:IDREF

Required

Single

Links to the Locality that comprises the precinct.

If the field is invalid, then the implementation is required to ignore the Precinct element containing it.

Name

xs:string

Required

Single

Specifies the precinct’s name (or number if no name exists).

If the field is invalid, then the implementation is required to ignore the Precinct element containing it.

Number

xs:string

Optional

Single

Specifies the precinct’s number (e.g., 32 or 32A – alpha characters are legal). Should be used if the Name field is populated by a name and not a number.

If the field is invalid or not present, then the implementation is required to ignore it.

PollingLocationIds

xs:IDREFS

Optional

Single

Specifies a link to the precinct’s PollingLocation object(s).

If the field is invalid or not present, then the implementation is required to ignore it.

PrecinctSplitName

xs:string

Optional

Single

If this field is empty, then this Precinct object represents a full precinct. If this field is present, then this Precinct object represents one portion of a split precinct. Each Precinct object that represents one portion of a split precinct must have the same Name value, but different PrecinctSplitName values. See the sample_feed.xml file for examples.

If the field is invalid or not present, then the implementation is required to ignore it.

SpatialBoundary

SpatialBoundary

Optional

Single

Defines the spatial boundary of the precinct. All voter addresses contained within this boundary are assigned to the precinct. If a voter address also maps to a StreetSegment, then the precinct assignment from the StreetSegment will be preferred over the assignment from the spatial boundary.

If the element is invalid or not present, then the implementation is required to ignore it.

Ward

xs:string

Optional

Single

Specifies the ward the precinct is contained within.

If the field is invalid or not present, then the implementation is required to ignore it.

 1<Precinct id="pre90111">
 2   <BallotStyleId>bs00010</BallotStyleId>
 3   <ElectoralDistrictIds>ed60129 ed60311 ed60054</ElectoralDistrictIds>
 4   <IsMailOnly>false</IsMailOnly>
 5   <LocalityId>loc70001</LocalityId>
 6   <Name>203 - GEORGETOWN</Name>
 7   <Number>0203</Number>
 8   <PollingLocationIds>pl81274</PollingLocationIds>
 9   <SpatialBoundary>
10     <ExternalGeospatialFeature>
11       <ExternalFileId>ef1</ExternalFileId>
12       <FileFormat>shp</FileFormat>
13       <FeatureIdentifier>
14           <Index>3</Index>
15       </FeatureIdentifier>
16     </ExternalGeospatialFeature>
17   </SpatialBoundary>
18</Precinct>
19<!--
20  Precinct split. Name and PollingLocationIds are the same but
21  PrecinctSplitName is present, the ElectoralDistrictIds are different,
22  and the BallotStyleId is different.
23-->
24<Precinct id="pre90348sp0000">
25  <BallotStyleId>bs00002</BallotStyleId>
26  <ElectoralDistrictIds>ed60129 ed60054 ed60150</ElectoralDistrictIds>
27  <IsMailOnly>false</IsMailOnly>
28  <LocalityId>loc70001</LocalityId>
29  <Name>201 - JACK JOUETT</Name>
30  <Number>0201</Number>
31  <PollingLocationIds>pl00000 pl81273 pl81662</PollingLocationIds>
32  <PrecinctSplitName>0000</PrecinctSplitName>
33</Precinct>
34<Precinct id="pre90348sp0001">
35  <BallotStyleId>bs00015</BallotStyleId>
36  <ElectoralDistrictIds>ed60129 ed60054 ed60267</ElectoralDistrictIds>
37  <IsMailOnly>false</IsMailOnly>
38  <LocalityId>loc70001</LocalityId>
39  <Name>201 - JACK JOUETT</Name>
40  <Number>0201</Number>
41  <PollingLocationIds>pl00000 pl81273 pl81662</PollingLocationIds>
42  <PrecinctSplitName>0001</PrecinctSplitName>
43</Precinct>

SpatialBoundary

The SpatialBoundary object defines a boundary in space. This boundary is usually defined by one or more discrete, closed polygonal shapes.

Tag

Data Type

Required?

Repeats?

Description

Error Handling

ExternalGeospatialFeature

ExternalGeospatialFeature

Required

Single

The spatial boundary defined by a geospatial feature that is external to the VIP feed.

If the element is invalid, then the implementation is required to ignore the SpatialBoundary element containing it.

1 <SpatialBoundary>
2   <ExternalGeospatialFeature>
3     <ExternalFileId>ef1</ExternalFileId>
4     <FileFormat>shp</FileFormat>
5     <FeatureIdentifier>
6       <Index>3</Index>
7     </FeatureIdentifier>
8   </ExternalGeospatialFeature>
9 </SpatialBoundary>

ExternalGeospatialFeature

The ExternalGeospatialFeature object contains a reference to a geospatial feature (one or more shapes) contained in a separate file external to the VIP feed.

Tag

Data Type

Required?

Repeats?

Description

Error Handling

ExternalFileId

xs:IDREF

Required

Single

Links to the ExternalFile containing the geospatial shape(s) that define the feature’s boundary.

If the field is invalid, then the implementation is required to ignore the ExternalGeospatialFeature element containing it.

FileFormat

GeospatialFormat

Required

Single

The format of the geospatial file.

If the field is invalid, then the implementation is required to ignore the ExternalGeospatialFeature element containing it.

FeatureIdentifier

FeatureIdentifier

Required

Repeats

Identifiers indicating which specific shape(s) to use from the geospatial file. These refer to identifiers within the referenced external file. This is a repeated field in the XML specification, but a scalar field in the CSV specification. If more than one identifier is required with the CSV specifiation, multiple values can be provided by delimited by space.

If the element is invalid, then the implementation is required to ignore the ExternalGeospatialFeature element containing it.

FeatureIdentifier

Tag

Data Type

Required?

Repeats?

Description

Error Handling

Index

xs:int

Optional

Single

The index value for the shapefile feature.

If the field is invalid or not present, then the implementation is required to ignore it.