InfrastructureManagers.xsd 3.74 KB
Newer Older
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:railcode="https://www.railml.org/schemas/lists" 
           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="https://www.railml.org/schemas/lists" 
           elementFormDefault="qualified" 
           version="1.0">
    <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
    <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
    <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 (Definition of data types for the infrastructure manager code list)</xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="ListBaseTypes.xsd"/>

  <xs:element name="infrastructureManagerCodes">
    <xs:annotation>
      <xs:documentation>Container/Root element for "infrastructure manager codes"</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="infrastructureManager" type="railcode:tInfrastructureManager" maxOccurs="unbounded">
          <xs:annotation>
            <xs:documentation>Single entries for each infrastructure manager</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="tInfrastructureManager">
    <xs:sequence>
      <xs:element name="name" type="railcode:tI18NString" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Internationalized name of the infrastructure manager</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validity" type="railcode:tValidity" minOccurs="0">
        <xs:annotation>
          <xs:documentation>If necessary, put time validity constraints here</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="isoCountryCode" type="railcode:tIsoCountryCode" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Two alpha ISO country code according to ISO 3166-1</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="companyCode" type="railcode:tCompanyCode" minOccurs="0">
          <xs:documentation>company codes according TAF TAP TSI B.8 or UIC IRS/leaflet 920-1:2006</xs:documentation>
    </xs:sequence>
    <xs:attribute name="code" type="railcode:tCode">
      <xs:annotation>
        <xs:documentation>code, that should be referred to from within an railML file, typically a short name for the infrastructure manager in latin letters</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="tValidity">
    <xs:attribute name="begin" type="xs:date">
      <xs:annotation>
        <xs:documentation>Start date of validity</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="end" type="xs:date">
      <xs:annotation>
        <xs:documentation>End date of validity</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="tIsoCountryCode">
    <xs:restriction base="xs:string">
      <xs:length value="2"/>
      <xs:pattern value="[A-Z]{2}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="tCompanyCode">
    <xs:restriction base="xs:string">
      <xs:length value="4" />
      <xs:pattern value="[0-9]{4}" />
    </xs:restriction>
  </xs:simpleType>