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