Election Markup Language (EML) Version 5.0

Schema Descriptions

Committee Specification 01

12 September 2007

Specification URIs:

This Version:

http://docs.oasis-open.org/election/eml/v5.0/cs01/EML-Schema-Descriptions-v5.0.doc

http://docs.oasis-open.org/election/eml/v5.0/cs01/EML-Schema-Descriptions-v5.0.html

http://docs.oasis-open.org/election/eml/v5.0/cs01/EML-Schema-Descriptions-v5.0.pdf

http://docs.oasis-open.org/election/eml/v5.0/cs01/EML-v5.0-cs01.zip

Previous Version:

http://docs.oasis-open.org/election/eml/v5.0/pr02/EML-Schema-Descriptions-v5.0.doc

http://docs.oasis-open.org/election/eml/v5.0/pr02/EML-Schema-Descriptions-v5.0.html

http://docs.oasis-open.org/election/eml/v5.0/pr02/EML-Schema-Descriptions-v5.0.pdf

http://docs.oasis-open.org/election/eml/v5.0/pr02/EML-v5.0-pr02.zip

Latest Version:

http://docs.oasis-open.org/election/eml/v5.0/EML-Schema-Descriptions-v5.0.doc

http://docs.oasis-open.org/election/eml/v5.0/EML-Schema-Descriptions-v5.0.html

http://docs.oasis-open.org/election/eml/v5.0/EML-Schema-Descriptions-v5.0.pdf

http://docs.oasis-open.org/election/eml/v5.0/EML-v5.0.zip

Technical Committee:

OASIS Election and Voter Services TC

Chair:

John Borras

Editor:

John Borras

Related work:

This specification supercedes:

·         Election Markup Language (EML) v4.0

See also:

·         EML Process and Data Requirements

·         EML Data Dictionary

Declared XML Namespace:

urn:oasis:names:tc:evs:schema:eml

Abstract:

This document contains the descriptions of the schemas used in EML v5.0. This document provides an explanation of the core schemas used throughout, definitions of the simple and complex datatypes, plus the EML schemas themselves. It also covers the conventions used in the specification and the use of namespaces, as well as the guidance on the constraints, extendibility, and splitting of messages.

Status:

This document was last revised or approved by the Election and Voter Services Technical Committee on the above date. The level of approval is also listed above. Check the “Latest Version” or “Latest Approved Version” location noted above for possible later revisions of this document.

Technical Committee members should send comments on this specification to the Technical Committee’s email list. Others should send comments to the Technical Committee by using the “Send A Comment” button on the Technical Committee’s web page at http://www.oasis-open.org/committees/election/

For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page (http://www.oasis-open.org/committees/election/ipr.php

The non-normative errata page for this specification is located at http://www.oasis-open.org/committees/election/.

Notices

Copyright © OASIS® 1993–2007. All Rights Reserved.

All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.

OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.

OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.

The name "OASIS" is a trademark of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance.

 

 

Table of Contents

1      Introduction. 8

1.1 Terminology. 8

1.2 Normative References. 8

1.3 Non-Normative References. 8

2      The EML Schemas. 9

2.1 Background. 9

2.2 Viewing Schemas. 9

2.3 Schema Diagrams in this Document 10

2.4 EML Message Validation. 11

2.5 Namespaces. 12

2.6 Extensibility. 12

2.7 Additional Constraints. 12

2.8 Conventions. 12

2.9 Metadata. 12

3      Processing using Schematron. 13

3.1 Validation using Schematron Schemas. 13

4      Splitting of Messages. 14

5      Error Messages. 15

5.1 All Schemas. 15

5.1.1 XML well-formedness or Schema validation error 15

5.1.2 Seal Errors. 15

5.1.3 EML Additional Rules. 15

6      EML Core Components. 17

6.1 Simple Data Types. 18

6.1.1 ConfirmationReferenceType. 18

6.1.2 CountingAlgorithmType. 18

6.1.3 DateType. 18

6.1.4 EmailType. 18

6.1.5 ErrorCodeType. 19

6.1.6 GenderType. 19

6.1.7 LanguageType. 19

6.1.8 MessageTypeType. 19

6.1.9 SealUsageType. 19

6.1.10 ShortCodeType. 19

6.1.11 TelephoneNumberType. 19

6.1.12 VotingChannelType. 20

6.1.13 VotingMethodType. 20

6.1.14 VotingValueType. 20

6.1.15 WriteInType. 20

6.1.16 YesNoType. 20

6.2 Complex Data Types. 20

6.2.1 AffiliationIdentifierStructure. 21

6.2.2 AffiliationStructure. 22

6.2.3 AgentIdentifierStructure. 22

6.2.4 AgentStructure. 23

6.2.5 AreaStructure. 23

6.2.6 AuditInformationStructure. 24

6.2.7 AuthorityIdentifierStructure. 24

6.2.8 BallotIdentifierStructure. 25

6.2.9 BallotIdentifierRangeStructure. 25

6.2.10 BinaryItemStructure. 25

6.2.11 CandidateIdentifierStructure. 26

6.2.12 CandidateStructure. 27

6.2.13 ChannelStructure. 28

6.2.14 ComplexDateRangeStructure. 28

6.2.15 ContactDetailsStructure. 29

6.2.16 ContestIdentifierStructure. 29

6.2.17 CountMetricsStructure. 30

6.2.18 CountQualifierStructure. 30

6.2.19 DocumentIdentifierStructure. 30

6.2.20 ElectionGroupStructure. 30

6.2.21 ElectionIdentifierStructure. 31

6.2.22 EmailStructure. 31

6.2.23 EMLstructure. 32

6.2.24 EventIdentifierStructure. 33

6.2.25 EventQualifierStructure. 33

6.2.26 IncomingGenericCommunicationStructure. 34

6.2.27 InternalGenericCommunicationStructure. 34

6.2.28 LogoStructure. 35

6.2.29 ManagingAuthorityStructure. 35

6.2.30 MessageStructure. 35

6.2.31 NominatingOfficerStructure. 36

6.2.32 OutgoingGenericCommunicationStructure. 36

6.2.33 PeriodStructure. 37

6.2.34 PollingDistrictStructure. 37

6.2.35 PollingPlaceStructure. 38

6.2.36 PositionStructure. 39

6.2.37 ProcessingUnitStructure. 39

6.2.38 ProposalIdentifierStructure. 39

6.2.39 ProposalStructure. 40

6.2.40 ProposerStructure. 40

6.2.41 ProxyStructure. 42

6.2.42 ReferendumOptionIdentifierStructure. 44

6.2.43 ReportingUnitIdentifierStructure. 44

6.2.44 ResponsibleOfficerStructure. 45

6.2.45 ResultsReportingStructure. 45

6.2.46 ScrutinyRequirementStructure. 45

6.2.47 SealStructure. 46

6.2.48 SimpleDateRangeStructure. 46

6.2.49 TelephoneStructure. 46

6.2.50 VoterIdentificationStructure. 47

6.2.51 VoterInformationStructure. 48

6.2.52 VTokenStructure. 49

6.2.53 VTokenQualifiedStructure. 50

7      Elements. 51

7.1 Accepted. 51

7.2 Election Statement 51

7.3 MaxVotes. 51

7.4 MinVotes. 51

7.5 NumberInSequence. 51

7.6 NumberOfSequence. 51

7.7 PersonName. 51

7.8 Profile. 51

7.9 SequenceNumber 52

7.10 TransactionId. 52

7.11 VoterName. 52

8      EML Message Schemas. 53

8.1 Election Event (110) 54

8.1.1 Description of Schema. 57

8.1.2 EML Additional Rules. 57

8.2 Inter Database (120) 58

8.2.1 Description of Schema. 58

8.3 Response (130) 59

8.3.1 Description of Schema. 59

8.3.2 Additional EML Rules. 59

8.4 Candidate Nomination (210) 60

8.4.1 Description of Schema. 60

8.5 Response to Nomination (220) 61

8.5.1 Description of Schema. 61

8.5.2 EML Additional Rules. 62

8.6 Candidate List (230) 62

8.6.1 Description of Schema. 63

8.7 Voter Registration (310) 63

8.7.1 Description of Schema. 63

8.7.2 EML Additional Rules. 63

8.8 Election List (330) 64

8.8.1 Description of Schema. 65

8.8.2 EML Additional Rules. 65

8.9 Polling Information (340) 65

8.9.1 Description of Schema. 67

8.10 Outgoing Generic Communication (350a) 68

8.10.1 Description of Schema. 68

8.11 Incoming Generic Communication (350b) 69

8.11.1 Description of Schema. 69

8.12 Internal Generic (350c) 70

8.12.1 Description of Schema. 70

8.13 Outgoing Channel Options (360a) 71

8.13.1 Description of Schema. 71

8.14 Incoming Channel Options (360b) 72

8.14.1 Description of Schema. 72

8.15 Ballots (410) 73

8.15.1 Description of Schema. 75

8.16 Authentication (420) 75

8.16.1 Description of Schema. 75

8.17 Authentication Response (430) 76

8.17.1 Description of Schema. 76

8.18 Cast Vote (440) 77

8.18.1 Description of Schema. 77

8.19 Retrieve Vote (445) 78

8.19.1 Description of Schema. 78

8.20 Vote Confirmation (450) 79

8.20.1 Description of Schema. 79

8.21 Votes (460) 80

8.21.1 Description of Schema. 80

8.22 VToken Log (470) 81

8.22.1 Description of Schema. 81

8.23 Audit Log (480) 82

8.23.1 Description of Schema. 83

8.24 Count (510) 85

8.24.1 Description of Schema. 87

8.25 Result (520) 88

8.25.1 Description of Schema. 88

8.26 Options Nomination (610) 89

8.26.1 Description of Schema. 89

8.27 Options Nomination Response (620) 90

8.27.1 Description of Schema. 90

8.27.2 EML Additional Rules. 90

8.28 Options List (630) 91

8.28.1 Description of Schema. 91

A.     Acknowledgements. 92

 

 


1      Introduction

This document describes the OASIS Election Mark-up Language (EML) version 5.0 schemas.

The messages that form part of EML are intended for transfer between systems. It is not intended that all outputs of a registration or election system will have a corresponding schema.

This document and its accompanying set of schemas do not claim to satisfy the final requirements of a registration or election system. It is incumbent on the users of this document to identify any mistakes, inconsistencies or missing data and to propose corrections to the OASIS Election and Voter Services Technical Committee.

1.1 Terminology

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119].

1.2 Normative References

[RFC2119]               S. Bradner, Key words for use in RFCs to Indicate Requirement Levels, http://www.ietf.org/rfc/rfc2119.txt, IETF RFC 2119, March 1997.

1.3 Non-Normative References

[MIME PART 2]       Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types IETF http://www.ietf.org/rfc/rfc2046.txt

[MIME]                   MIME Media Types IANA http://www.iana.org/assignments/media-types/

[XMLDSig]              XML-Signature Syntax and Processing W3C http://www.w3.org/TR/xmldsig-core/

[XPATH]                 XML Path Language (XPath) Version 1.0 W3C http://www.w3.org/TR/xpath

2      The EML Schemas

2.1 Background

The following is the Executive Summary of the “EML Process and Data Requirements”:

OASIS, the XML interoperability consortium, formed the Election and Voter Services Technical Committee in the spring of 2001 to develop standards for election and voter services information using XML. The committee’s mission statement is, in part, to:

“Develop a standard for the structured interchange among hardware, software, and service providers who engage in any aspect of providing election or voter services to public or private organizations...”

The objective is to introduce a uniform and reliable way to allow systems involved in the election process to interact. The overall effort attempts to address the challenges of developing a standard that is:

·         Multinational: Our aim is to have these standards adopted globally.

·         Flexible: Effective across the different voting regimes (e.g. proportional representation or 'first past the post') and voting channels (e.g. Internet, SMS, postal or traditional paper ballot).

·         Multilingual: Flexible enough to accommodate the various languages and dialects and vocabularies.

·         Adaptable: Resilient enough to support elections in both the private and public sectors.

·         Secure: Able to secure the relevant data and interfaces from any attempt at corruption, as appropriate to the different requirements of varying election rules.

The primary deliverable of the committee is the Election Markup Language (EML). This is a set of data and message definitions described as XML schemas. At present EML includes specifications for:

·         Candidate Nomination, Response to Nomination and Approved Candidate Lists

·         Referendum Options Nomination, Response to Nomination and Approved Options Lists

·         Voter Registration information, including eligible voter lists

·         Various communications between voters and election officials, such as polling information, election notices, etc.

·         Ballot information (races, contests, candidates, etc.)

·         Voter Authentication

·         Vote Casting and Vote Confirmation

·         Election counts and results

·         Audit information pertinent to some of the other defined data and interfaces

·         EML is flexible enough to be used for elections and referendums that are primarily paper-based or that are fully e-enabled.

As an international specification, EML is generic in nature, and so needs to be tailored for specific scenarios. Some aspects of the language are indicated in EML as required for all scenarios and so can be used unchanged. Some aspects (such as the ability to identify a voter easily from their vote) are required in some scenarios but prohibited in others, so EML defines them as optional. Where they are prohibited, their use must be changed from an optional to prohibited classification, and where they are mandatory, their use must be changed from an optional to required classification.

2.2 Viewing Schemas

EML schemas are supplied as text documents. For viewing the structure of the schemas, we recommend use of one of the many schema development tools available. Many of these provide graphical displays.

The Schematron schemas are mainly short and simple to understand as text documents for those with a working knowledge of Xpath.

2.3 Schema Diagrams in this Document

The schema diagrams in this document were created using XML Spy 2007. The following is a guide to their interpretation.

In this section, terms with specific meanings in XML or XML Schema are shown in italics, e.g. sequence.

Note that the diagrams in this document do not use the default diagramming options of XML Spy, but have additional information. The additional information to be shown can be set using the menu selections Schema Design | View Config.

In this section, and throughout this document, the prefix "xs" denotes the XML schema namespace http://www.w3.org/2001/XMLSchema.

The diagram below represents a simple schema. The root element of an instance described by this schema is the element A. The content model of this element is a sequence of the elements B, D and E. The element B is of complex data type Bstructure. This contains a choice of either element C or element F. Element C is a restriction of another complex data type Cstructure. In this case, the restriction is to forbid the use of the element G (which is defined in Cstructure as optional). The other elements allowed are H, which can appear any number of times (but must appear at least once), and I, which can appear up to three times (or not at all). Element D is optional, and of data type Dstructure. This has a content model requiring all of elements J and K, which are both of type xs:string. Finally, element E is of simple data type Etype, which is restricted from the xs:NMTOKEN data type by only allowing the values ‘yes’ and ‘no’.

It is important to remember that these diagrams do not include any attributes. In this document, these are shown in tables below the diagrams.

The full schema is shown below the diagram.

 

the element is crossed out as the restriction is to forbid its occurrence

 

 

 

 

 

 

 

 

indicates that this is a sequence

 

 

 

 

 

 

 

 

dotted box around element indicates that element is optional

 

 

 

 

 

 

 

 

The yellow box represents the content model of the complex data type (in this case, Bstructure)

 

 

 

 

 

 

 

 

the data type is in blue, so this is a derivation. The derivation is to allow only the values ‘yes’ or ‘no’

 

 

 

 

 

 

 

 

a data type in blue shows a derivation, in this case, a restriction

 

 

 

 

 

 

 

 

indicates that this is a choice

 

 

 

 

 

 

 

 

indicates that this is an ‘all’

 

 

 

 

 

 

 

 

shows  the data type

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

indicates zero to three occurrences

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

indicates one to many occurrences

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Paul Spencer (Boynings Consulting) -->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

  <xs:element name="A">

    <xs:complexType>

      <xs:sequence>

        <xs:element name="B" type="Bstructure"/>

        <xs:element name="D" type="Dstructure" minOccurs="0"/>

        <xs:element name="E">

          <xs:simpleType>

            <xs:restriction base="xs:NMTOKEN">

              <xs:enumeration value="no"/>

              <xs:enumeration value="yes"/>

            </xs:restriction>

          </xs:simpleType>

        </xs:element>

      </xs:sequence>

    </xs:complexType>

  </xs:element>

  <xs:complexType name="Bstructure">

    <xs:choice>

      <xs:element name="C">

        <xs:complexType>

          <xs:complexContent>

            <xs:restriction base="Cstructure">

              <xs:sequence>

                <xs:element name="G" type="xs:positiveInteger" minOccurs="0" maxOccurs="0"/>

                <xs:element name="H" type="xs:string" maxOccurs="unbounded"/>

                <xs:element name="I" type="xs:date" minOccurs="0" maxOccurs="3"/>

              </xs:sequence>

            </xs:restriction>

          </xs:complexContent>

        </xs:complexType>

      </xs:element>

      <xs:element ref="F"/>

    </xs:choice>

  </xs:complexType>

  <xs:complexType name="Cstructure">

    <xs:sequence>

      <xs:element name="G" type="xs:positiveInteger" minOccurs="0"/>

      <xs:element name="H" type="xs:string" maxOccurs="unbounded"/>

      <xs:element name="I" type="xs:date" minOccurs="0" maxOccurs="3"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="Dstructure">

    <xs:all>

      <xs:element name="J" type="xs:string"/>

      <xs:element name="K" type="xs:string"/>

    </xs:all>

  </xs:complexType>

  <xs:element name="F" type="xs:string"/>

</xs:schema>

 

2.4 EML Message Validation

It is up to each specific system implementation whether it uses these schemas for validation of EML messages for either testing or live use. The recommended approach is to validate incoming messages against the EML schemas (with the application-specific EML externals schema), then further validate against the relevant Schematron schema. The first stage requires the use of an XML processor (parser) that conforms to W3C XML Schema. The second stage requires either an XSLT processor or a dedicated Schematron processor.

However, an implementation may choose to:

·         modify the EML schemas to incorporate those application-specific constraints that can be represented in W3C XML Schema;

·         not validate the rules that are encoded as Schematron schemas;

·         not perform any validation; or

·         develop some alternative validation.

2.5 Namespaces

The message schemas and the core schema are associated with the namespace urn:oasis:names:tc:evs:schema:eml. This is defined using the prefix eml. The XML Schema namespace http://www.w3c.org/2001/XMLSchema is identified by the prefix xs and the XML Schema Instance namespace http://www.w3.org/2001/XMLSchema-instance by the prefix xsi.

Use is also made of namespaces for the Extensible Name and Address Language (xNAL). The Extensible Name Language namespace urn:oasis:tc:ciq:xsdschema:xNL:2.0 is identified by the prefix xNL, and the Extensible Language namespace urn:oasis:names:tc:ciq:xsdschema:xAL:2.0 by the prefix xAL.

2.6 Extensibility

Various elements allow extensibility through the use of the xs:any element. This is used both for display information (for example, allowing the sending of HTML in a message) and for local extensibility. Note that careless use of this extensibility mechanism could reduce interoperability.

2.7 Additional Constraints

The EML schemas provide a set of constraints common to most types of elections worldwide. Each specific election type will require additional constraints, for example, to enforce the use of a seal or to ensure that a cast vote is anonymous. It is recommended that these additional constraints be expressed using the Schematron language although other validators, eg OASIS CAM, can be used. This allows additional constraints to be described without altering or interacting with the EML schemas. Any document that is valid to a localization expressed in Schematron must also be a valid EML document.

2.8 Conventions

Within this specification, the following conventions are used throughout:

·         Diagrams are shown as generated by XML Spy 2007 which was also used to generate the schemas and samples. These diagrams show element content, but not attributes

·         Elements and attributes in schemas are identified by partial XPath expressions. Enough of a path is used to identify the item without putting in a full path.

2.9 Metadata

Some messages need information relating to the issuing of them, such as the issue date, who issued them etc. This is most likely to be a requirement for the 330 message but is equally applicable to 120, 130, 230, 350a and several others. For that reason, it is useful to make this optional information available in the header. The information usually consists of: managing authority, date of issue, start of list period (used for changes to the list to indicate the start of the period for which changes are being shown), end of list period (i.e. the date of the snapshot of the list).

3      Processing using Schematron

This section gives a short introduction to how validation can be achieved using Schematron schemas and an XSLT processor. Alternatively, direct validation using the Schematron schemas can be achieved using a dedicated Schematron processor.

3.1 Validation using Schematron Schemas

A Schematron schema is an XML document that can be converted to XSLT using an XSLT stylesheet. There is a published stylesheet (skeleton1-5.xslt) that can be used to achieve this. This produces an HTML output from the validation. A separate stylesheet can be produced that will create an output to the specification below. This stylesheet can import the skeleton and just over-ride those aspects where changes are required.

This stylesheet can be used once on each Schematron schema to produce the XSLT file that will be used for validating a specific message type. This stylesheet is then used to transform the incoming EML message into an error report based on the additional constraints.

The process is shown in the diagram below.

4      Splitting of Messages

There is sometimes a need to split long messages into several parts. By their nature, each of these messages will contain a small amount of background information and a single element type that is repeated many times. For example, the 330-electionlist message can have many VoterDetails elements.

When a message is split, each part must be a complete, valid EML document. This will contain all the elements required by EML and the specific application. Those parts outside the repeated element that relate to the message as a whole, such as the TransactionId, must have the same values in each part message. The values of those elements and attributes that relate to an individual part message, such as the SequenceNumber, may vary between the individual part messages. Information in the EML element indicates the sequence number of the message and the number of messages in the sequence. Each message in the sequence must contain the same TransactionId, and must indicate the repeated element according to the table below. Only the messages shown in the table may be split in this way.\