Dev:changes/2.1/diff
Jump to navigation
Jump to search
Schema differences between railML® 2.0 and railML® 2.1
This page shows schema differences between railML® 2.0 and railML® 2.1. It is intended to support advanced railML® users in comprehending and documenting the differences. Thanks to Milan Wölke of PSI Transcom for compiling the data.
An explanation how to interpret diff output can be found here.
diff --git a/schema/genericRailML.xsd b/schema/genericRailML.xsd index 5b38b5d..f442d8f 100644 --- a/schema/genericRailML.xsd +++ b/schema/genericRailML.xsd @@ -1,203 +1,351 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - xmlns:dc="http://purl.org/dc/elements/1.1/" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of generic simple types, used by all sub schemas</xs:documentation> + </xs:annotation> + + <xs:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd"> <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. + <xs:documentation>Portions of this software may use XML schemas Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.</xs:documentation> + <xs:documentation>For further information see: http://dublincore.org/ License link: http://creativecommons.org/licenses/by/3.0/</xs:documentation> + </xs:annotation> + </xs:import> + + <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ + <xs:simpleType name="tRailMLVersion"> + <xs:annotation> + <xs:documentation>Version Number is some official release number, rather than any internal numbering from an version control system</xs:documentation> + <xs:documentation>Allows two part or three part version numbers, 1.0 up to 99.99, or 1.0.1 up to 99.99.99</xs:documentation> + <xs:documentation>Allows additional SVN release numbers for testing unofficial releases: 1.1r4 or 2.0r271</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:pattern value="[1-9][0-9]?\.([0-9]|[1-9][0-9])(\.[1-9][0-9]?)?(r[1-9][0-9]?[0-9]?)?" /> + </xs:restriction> + </xs:simpleType> - For further information see: http://www.railml.org/ + <xs:simpleType name="tVersionNumber"> + <xs:annotation> + <xs:documentation>an arbitrary version number for any system; allowing digits, letters and whitespace</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string" /> + </xs:simpleType> - Content of this file: - XML Schema for railML(R) 2.0 - Definition of generic simple types, used by all sub schemas - </xs:documentation> + <xs:simpleType name="tGenericID"> + <xs:annotation> + <xs:documentation>an XML-side constrained biunique identity; unique across an XML file including its outsourced components (xi:include mechanism); whitespaces not allowed</xs:documentation> </xs:annotation> + <xs:restriction base="xs:ID" /> + </xs:simpleType> - <xs:import namespace="http://purl.org/dc/elements/1.1/" - schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd" > + <xs:simpleType name="tGenericRef"> + <xs:annotation> + <xs:documentation>an XML-side constrained reference to one xs:ID value, acts across an XML file including its outsourced components (xi:include mechanism)</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:IDREF" /> + </xs:simpleType> + + <xs:simpleType name="tGenericName"> + <xs:annotation> + <xs:documentation>system-wide known name of an railway facility (e.g. station, timetable period or vehicle), allowing digits, letters and whitespace</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string" /> + </xs:simpleType> + + <xs:simpleType name="tElementDescription"> + <xs:annotation> + <xs:documentation>an detailed description of an railway facility (e.g. station, timetable period or vehicle), allowing digits, letters and whitespace</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string" /> + </xs:simpleType> + + <xs:complexType name="tElementWithIDAndName"> + <xs:annotation> + <xs:documentation>generic base type, used for inheritance of many railML types</xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="additionalName" type="rail:tAdditionalName" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> - <xs:documentation> - Portions of this software may use XML schemas - Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. - These are licensed under the Creative Commons 3.0 Attribution license. - - For further information see: http://dublincore.org/ - License link: http://creativecommons.org/licenses/by/3.0/ - </xs:documentation> + <xs:documentation>additional names and its according descriptions to be provided in other languages, dialects, encodings...</xs:documentation> </xs:annotation> - </xs:import> - - <xs:import namespace="http://www.w3.org/XML/1998/namespace" - schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> - - <!--*********************************************************--> - <!-- Version numbers --> - <!--*********************************************************--> - - <xs:simpleType name="tRailMLVersion"> - <xs:annotation> - <xs:documentation> - Version Number is some official release number, rather - than any internal numbering from an version control - system - </xs:documentation> - <xs:documentation> - Allows two part or three part version numbers, 1.0 up to - 99.99, or 1.0.1 up to 99.99.99 - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:pattern - value="[1-9][0-9]?\.([0-9]|[1-9][0-9])(\.[1-9][0-9]?)?" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tVersionNumber"> - <xs:restriction base="xs:string" /> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Identifier --> - <!--*********************************************************--> - - <xs:simpleType name="tGenericID"> - <xs:restriction base="xs:ID" /> - </xs:simpleType> - - <xs:simpleType name="tGenericRef"> - <xs:restriction base="xs:IDREF" /> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Names --> - <!--*********************************************************--> - - <xs:simpleType name="tGenericName"> - <xs:restriction base="xs:string" /> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Generic Counter Type --> - <!--*********************************************************--> - - <xs:simpleType name="tCounter"> - <xs:annotation> - <xs:documentation> - generic type for counters (number of equipment) - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:positiveInteger" /> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Non-numeric multiplicities --> - <!--*********************************************************--> - - <xs:simpleType name="tVerbalCounter"> - <xs:restriction base="xs:string"> - <xs:enumeration value="single" /> - <xs:enumeration value="double" /> - <xs:enumeration value="triple" /> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Arbitrary strings to describe elements --> - <!--*********************************************************--> - - <xs:simpleType name="tElementDescription"> - <xs:restriction base="xs:string" /> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Basic type for later inheritance --> - <!--*********************************************************--> - - <xs:complexType name="tElementWithIDAndName"> - <xs:attribute name="id" type="rail:tGenericID" use="required" /> - <xs:attribute name="name" type="rail:tGenericName" /> - <xs:attribute name="description" type="rail:tElementDescription" /> - <!-- Provide an extension point for other attributes--> - <xs:attributeGroup ref="rail:anyAttribute" /> - </xs:complexType> - - <xs:complexType name="tElementWithReference"> - <xs:attribute name="ref" type="rail:tGenericRef" use="required" /> - <xs:attributeGroup ref="rail:anyAttribute" /> - </xs:complexType> - - <xs:complexType name="tGlobalElementWithMetadata"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:sequence> - <xs:element name="metadata" type="dc:elementContainer" minOccurs="0" /> - </xs:sequence> - <xs:attribute name="version" type="rail:tRailMLVersion"/> - <xs:attribute ref="xml:base"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Generic type for values only between 0 and 1 --> - <!--*********************************************************--> - - <xs:simpleType name="tOneToZero"> - <xs:annotation> - <xs:documentation> - generic type for values only between 0 and 1, as - efficiency or cosinus phi. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:decimal"> - <xs:minInclusive value="0" /> - <xs:maxInclusive value="1" /> - <xs:fractionDigits value="6" /> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Generic type for a list of double values --> - <!--*********************************************************--> - <xs:simpleType name="tDoubleList"> - <xs:list itemType="xs:double"/> - </xs:simpleType> - - <xs:simpleType name="tCoordinateList"> - <xs:restriction base="rail:tDoubleList"> - <xs:length value="3"/> + </xs:element> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>provide an extension point for non-railML elements in foreign namespace</xs:documentation> + </xs:annotation> + </xs:any> + </xs:sequence> + <xs:attribute name="id" type="rail:tGenericID" use="required"> + <xs:annotation> + <xs:documentation>XML-file-wide unique identity is required for later referencing that element</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="code" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>for typical, specific abbreviations, used in different systems with the same understanding</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="name" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>should be interpreted in its elements' context (e.g. track/name, vehicle/name)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="description" type="rail:tElementDescription"> + <xs:annotation> + <xs:documentation>should be interpreted in its elements' context, substantiates the name</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute ref="xml:lang"> + <xs:annotation> + <xs:documentation>natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute"> + <xs:annotation> + <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + </xs:complexType> + + <xs:complexType name="tAdditionalName"> + <xs:attribute name="name" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>should be interpreted in its elements' context (e.g. track/name, vehicle/name)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="description" type="rail:tElementDescription"> + <xs:annotation> + <xs:documentation>should be interpreted in its elements' context, substantiates the name</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute ref="xml:lang"> + <xs:annotation> + <xs:documentation>natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute"> + <xs:annotation> + <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + </xs:complexType> + + <xs:complexType name="tElementWithIDAndNameWithoutAny"> + <xs:annotation> + <xs:documentation>Special derived type without 'any' element sequence but 'anyAttribute' for inheritance with 'xs:all' model group.</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:restriction base="rail:tElementWithIDAndName"> + <xs:attribute name="id" type="rail:tGenericID" use="required"> + <xs:annotation> + <xs:documentation>XML-file-wide unique identity is required for later referencing that element</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="code" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>for typical, specific abbreviations, used in different systems with the same understanding</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="name" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>should be interpreted in its elements' context (e.g. track/name, vehicle/name)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="description" type="rail:tElementDescription"> + <xs:annotation> + <xs:documentation>should be interpreted in its elements' context, substantiates the name</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute"> + <xs:annotation> + <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation> + </xs:annotation> + </xs:attributeGroup> </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tOtherEnumerationValue"> - <xs:restriction base="xs:string"> - <xs:pattern value="other:\w{2,}" /> - </xs:restriction> - </xs:simpleType> - - <xs:attributeGroup name="anyAttribute"> - <xs:anyAttribute namespace="##other"/> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tElementWithReference"> + <xs:annotation> + <xs:documentation>generic base type, used for inheritance of railML types deploying references</xs:documentation> + </xs:annotation> + <xs:attribute name="ref" type="rail:tGenericRef" use="required"> + <xs:annotation> + <xs:documentation>reference is required because it's the purpose of the element</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute"> + <xs:annotation> + <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation> + </xs:annotation> </xs:attributeGroup> + </xs:complexType> + + <xs:complexType name="tGlobalElementWithMetadata"> + <xs:annotation> + <xs:documentation>generic base type, used for inheritance of railML subschema elements</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:sequence> + <xs:element name="metadata" type="dc:elementContainer" minOccurs="0"> + <xs:annotation> + <xs:documentation>subschema-wide flexible collection of Dublin Core metadata based on xs:any according to http://dublincore.org/</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="version" type="rail:tRailMLVersion"> + <xs:annotation> + <xs:documentation>only used, if subschema element is outsourced, else use 'version' attribute in root element ('railml')</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute ref="xml:base"> + <xs:annotation> + <xs:documentation>provide outsourcing of subschema element with xi:include mechanism</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tCounter"> + <xs:annotation> + <xs:documentation>generic type for counters (e.g. number of equipment), allowing zero</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:nonNegativeInteger" /> + </xs:simpleType> + + <xs:simpleType name="tPositiveCounter"> + <xs:annotation> + <xs:documentation>generic type for counters (e.g. order number of a vehicle in an formation), starting with '1'</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:positiveInteger" /> + </xs:simpleType> + + <xs:simpleType name="tVerbalCounter"> + <xs:annotation> + <xs:documentation>generic enumeration, where digits are not common</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="single" /> + <xs:enumeration value="double" /> + <xs:enumeration value="triple" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tOneToZero"> + <xs:annotation> + <xs:documentation>generic type for values only between 0 and 1, as efficiency or cosinus phi.</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="1" /> + <xs:fractionDigits value="6" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tDigitString"> + <xs:annotation> + <xs:documentation>an arbitrary string consisting of digits from 0 to 9; not allowing whitespace, letters; no length restriction</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:pattern value="[0-9]*" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tOneDigit"> + <xs:annotation> + <xs:documentation>an identification string consisting of exactly one digit</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tDigitString"> + <xs:length value="1" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tTwoDigits"> + <xs:annotation> + <xs:documentation>an identification string consisting of exactly two digits</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tDigitString"> + <xs:length value="2" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tThreeDigits"> + <xs:annotation> + <xs:documentation>an identification string consisting of exactly three digits</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tDigitString"> + <xs:length value="3" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tFourDigits"> + <xs:annotation> + <xs:documentation>an identification string consisting of exactly four digits</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tDigitString"> + <xs:length value="4" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tFiveDigits"> + <xs:annotation> + <xs:documentation>an identification string consisting of exactly five digits</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tDigitString"> + <xs:length value="5" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tDoubleList"> + <xs:annotation> + <xs:documentation>an arbitrary list consisting of xs:double values separated by whitespace; no length restriction</xs:documentation> + </xs:annotation> + <xs:list itemType="xs:double" /> + </xs:simpleType> + + <xs:simpleType name="tCoordinateList"> + <xs:annotation> + <xs:documentation>an coordinate list consisting of two or three coordinates</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tDoubleList"> + <xs:minLength value="2" /> + <xs:maxLength value="3" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tOtherEnumerationValue"> + <xs:annotation> + <xs:documentation>an arbitrary string starting with 'other:' followed by at minimum two characters, whitespace not allowed for extending railML enumeration lists</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:pattern value="other:\w{2,}" /> + </xs:restriction> + </xs:simpleType> + + <xs:attributeGroup name="anyAttribute"> + <xs:anyAttribute namespace="##other"> + <xs:annotation> + <xs:documentation>'any attributes' should be deployed in a foreign namespace</xs:documentation> + </xs:annotation> + </xs:anyAttribute> + </xs:attributeGroup> + + <xs:complexType name="tElementRefInGroup"> + <xs:annotation> + <xs:documentation>generic type for inheritance in serialized reference elements</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:attribute name="sequence" type="rail:tPositiveCounter" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> - <!--*********************************************************--> - <!-- Generic type for element references in groups --> - <!--*********************************************************--> - - <xs:complexType name="tElementRefInGroup"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:attribute name="sequence" type="rail:tCounter" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:schema> diff --git a/schema/infrastructure.xsd b/schema/infrastructure.xsd index 5dca930..61ce423 100644 --- a/schema/infrastructure.xsd +++ b/schema/infrastructure.xsd @@ -1,867 +1,493 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> - - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ - - For further information see: http://www.railml.org/ - - Content of this file: - XML Schema for railML(R) 2.0 - Definition of elements (partially hidden as complex type) for - infrastructure sub schema (IS), uses infrastructure types and - attribute groups from "xs:include" path - </xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="infrastructureTypes.xsd" /> - - <xs:import namespace="http://www.w3.org/XML/1998/namespace" - schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> - - <!----> - <!-- infrastructure --> - <!-- +- tracks --> - <!-- +- trackGroups --> - <!-- +- operationControlPoints --> - <!----> - <xs:element name="infrastructure"> - <xs:complexType> - <xs:complexContent> - <xs:extension base="rail:tInfrastructure"> - <xs:sequence> - <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0" /> - <xs:element name="tracks" type="rail:eTracks" minOccurs="0" /> - <xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0" /> - <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - <!----> - <!-- operationControlPoints --> - <!-- +- ocp --> - <!----> - - <xs:complexType name="eOperationControlPoints"> - <xs:sequence> - <xs:element name="ocp" type="rail:eOcp" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- ocp --> - <!-- +- propOperational --> - <!-- +- propService --> - <!-- +- propOther --> - <!-- +- area --> - <!-- +- geoCoord --> - <!----> - - <xs:complexType name="eOcp"> - <xs:complexContent> - <xs:extension base="rail:tOperationControlPoint"> - <xs:sequence> - <xs:element name="propOperational" type="rail:eOcpPropOperational" minOccurs="0" /> - <xs:element name="propService" type="rail:tOcpPropService" minOccurs="0" /> - <xs:element name="propEquipment" type="rail:eOcpPropEquipment" minOccurs="0" /> - <xs:element name="propOther" type="rail:eOcpPropOther" minOccurs="0" /> - <xs:element name="area" type="rail:tOcpArea" minOccurs="0" /> - <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- propOperational --> - <!-- +- uptime --> - <!----> - - <xs:complexType name="eOcpPropOperational"> - <xs:complexContent> - <xs:extension base="rail:tOcpPropOperational"> - <xs:sequence> - <xs:element name="uptime" type="rail:tOcpUptime" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- propOther --> - <!-- +- additionalName --> - <!----> - - <xs:complexType name="eOcpPropOther"> - <xs:complexContent> - <xs:extension base="rail:tOcpPropOther"> - <xs:sequence> - <xs:element name="additionalName" type="rail:tOcpAdditionalName" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- propEquipment --> - <!-- +- summary --> - <!-- +- trackRef --> - <!----> - - <xs:complexType name="eOcpPropEquipment"> - <xs:choice> - <xs:element name="summary" type="rail:tOcpPropEquipmentSummary" /> - <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" /> - </xs:choice> - </xs:complexType> - - <!----> - <!-- infraAttrGroup --> - <!-- +- infraAttributes --> - <!----> - - <xs:complexType name="eInfraAttrGroup"> - <xs:complexContent> - <xs:extension base="rail:tInfraAttrGroup"> - <xs:sequence> - <xs:element name="infraAttributes" type="rail:eInfraAttr" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- locallyControlledArea --> - <!-- +- trackRefs --> - <!----> - - <xs:complexType name="eLocallyControlledArea"> - <xs:complexContent> - <xs:extension base="rail:tLocallyControlledArea"> - <xs:sequence> - <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <!----> - <!-- line --> - <!-- +- infraAttrGroupID --> - <!-- +- lineDescr --> - <!-- +- trackRefs --> - <!----> - - <xs:complexType name="eLine"> - <xs:complexContent> - <xs:extension base="rail:tLine"> - <xs:sequence> - <xs:element name="lineDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trackGroups --> - <!-- +- line --> - <!----> - - <xs:complexType name="eTrackGroups"> - <xs:sequence> - <xs:element name="line" type="rail:eLine" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="locallyControlledArea" type="rail:eLocallyControlledArea" minOccurs="0" maxOccurs="unbounded" /> - <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - - <!----> - <!-- tracks --> - <!-- +- track --> - <!----> - - <xs:complexType name="eTracks"> - <xs:sequence> - <xs:element name="track" type="rail:eTrack" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- track --> - <!-- +- trackDescr --> - <!-- +- trackTopology --> - <!-- +- trackElements --> - <!-- +- ocsElements --> - <!----> - - <xs:complexType name="eTrack"> - <xs:complexContent> - <xs:extension base="rail:tTrack"> - <xs:sequence> - <xs:element name="trackDescr" type="xs:string" - minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="trackTopology" - type="rail:eTrackTopology" /> - <xs:element name="trackElements" - type="rail:eTrackElements" minOccurs="0" /> - <xs:element name="ocsElements" type="rail:eOcsElements" - minOccurs="0" /> - <!-- Provide an extension point for other attributes--> - <xs:any namespace="##other" - processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trackTopology --> - <!-- +- trackBegin --> - <!-- +- trackEnd --> - <!-- +- mileageChanges --> - <!-- +- connections --> - <!-- +- crossSections --> - <!-- +- borders --> - <!----> - - <xs:complexType name="eTrackTopology"> - <xs:sequence> - <xs:element name="trackBegin" type="rail:eTrackNode" /> - <xs:element name="trackEnd" type="rail:eTrackNode" /> - <xs:element name="mileageChanges" type="rail:eMileageChanges" - minOccurs="0" /> - <xs:element name="connections" type="rail:eConnections" - minOccurs="0" /> - <xs:element name="crossSections" type="rail:eCrossSections" - minOccurs="0" /> - <xs:element name="borders" type="rail:eBorder" minOccurs="0" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- trackBegin / trackEnd --> - <!-- +- connection --> - <!-- +- bufferStop --> - <!-- +- openEnd --> - <!-- +- macroscopicNode --> - <!----> - - <xs:complexType name="eTrackNode"> - <xs:complexContent> - <xs:extension base="rail:tTrackNode"> - <xs:choice> - <xs:element name="connection" type="rail:tConnectionData" /> - <xs:element name="bufferStop" type="rail:tBufferStop" /> - <xs:element name="openEnd" type="rail:tOpenEnd"></xs:element> - <xs:element name="macroscopicNode" type="rail:tMacroscopicNode"></xs:element> - </xs:choice> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - - <!----> - <!-- switch --> - <!-- +- connection --> - <!----> - - <xs:complexType name="eSwitch"> - <xs:complexContent> - <xs:extension base="rail:tSwitch"> - <xs:sequence> - <xs:element name="connection" - type="rail:tSwitchConnectionData" maxOccurs="3" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- crossing --> - <!-- +- connection --> - <!----> - - <xs:complexType name="eCrossing"> - <xs:complexContent> - <xs:extension base="rail:tCrossing"> - <xs:sequence> - <xs:element name="connection" - type="rail:tSwitchConnectionData" maxOccurs="3" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- mileageChanges --> - <!-- +- mileageChange --> - <!----> - - <xs:complexType name="eMileageChanges"> - <xs:sequence> - <xs:element name="mileageChange" type="rail:tMileageChange" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- connections --> - <!-- +- switch --> - <!-- +- crossing --> - <!----> - - <xs:complexType name="eConnections"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="switch" type="rail:eSwitch" minOccurs="0" - maxOccurs="unbounded" /> - <xs:element name="crossing" type="rail:eCrossing" minOccurs="0" - maxOccurs="unbounded" /> - </xs:choice> - </xs:complexType> - - <!----> - <!-- crossSections --> - <!-- +- crossSection --> - <!----> - - <xs:complexType name="eCrossSections"> - <xs:sequence> - <xs:element name="crossSection" type="rail:tCrossSection" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- borders --> - <!-- +- border --> - <!----> - - <xs:complexType name="eBorder"> - <xs:sequence> - <xs:element name="border" type="rail:tBorder" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- trackElements --> - <!-- +- speedChanges --> - <!-- +- gradientChanges --> - <!-- +- radiusChanges --> - <!-- +- tunnels --> - <!-- +- bridges --> - <!-- +- levelCrossings --> - <!-- +- ownerChanges --> - <!-- +- operationModeChanges --> - <!-- +- trainProtectionChanges --> - <!-- +- electrificationChanges --> - <!-- +- powerTransmissionChanges --> - <!-- +- axleWeightChanges --> - <!-- +- gaugeChanges --> - <!-- +- geoMappings --> - <!----> - - <xs:complexType name="eTrackElements"> - <xs:sequence> - <xs:element name="speedChanges" type="rail:eSpeedChanges" - minOccurs="0" /> - <xs:element name="gradientChanges" type="rail:eGradientChanges" - minOccurs="0" /> - <xs:element name="radiusChanges" type="rail:eRadiusChanges" - minOccurs="0" /> - <xs:element name="tunnels" type="rail:eTunnels" minOccurs="0" /> - <xs:element name="bridges" type="rail:eBridges" minOccurs="0" /> - <xs:element name="levelCrossings" type="rail:eLevelCrossings" - minOccurs="0" /> - <xs:element name="ownerChanges" type="rail:eOwnerChanges" - minOccurs="0" /> - <xs:element name="operationModeChanges" - type="rail:eOperationModeChanges" minOccurs="0" /> - <xs:element name="trainProtectionChanges" - type="rail:eTrainProtectionChanges" minOccurs="0" /> - <xs:element name="electrificationChanges" - type="rail:eElectrificationChanges" minOccurs="0" /> - <xs:element name="powerTransmissionChanges" - type="rail:ePowerTransmissionChanges" minOccurs="0" /> - <xs:element name="axleWeightChanges" - type="rail:eAxleWeightChanges" minOccurs="0" /> - <xs:element name="gaugeChanges" type="rail:eGaugeChanges" - minOccurs="0" /> - <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0"/> - <!-- Provide an extension point for other elements--> - <xs:any namespace="##other" processContents="strict" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- speedChanges --> - <!-- +- speedChange --> - <!----> - - <xs:complexType name="eSpeedChanges"> - <xs:sequence> - <xs:element name="speedChange" type="rail:tSpeedChange" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- gradientChanges --> - <!-- +- gradientChange --> - <!----> - - <xs:complexType name="eGradientChanges"> - <xs:sequence> - <xs:element name="gradientChange" type="rail:tGradientChange" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- radiusChanges --> - <!-- +- radiusChange --> - <!----> - - <xs:complexType name="eRadiusChanges"> - <xs:sequence> - <xs:element name="radiusChange" type="rail:tRadiusChange" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- tunnels --> - <!-- +- tunnel --> - <!----> - - <xs:complexType name="eTunnels"> - <xs:sequence> - <xs:element name="tunnel" type="rail:tTunnel" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- bridges --> - <!-- +- bridge --> - <!----> - - <xs:complexType name="eBridges"> - <xs:sequence> - <xs:element name="brigde" type="rail:tBridge" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- levelCrossings --> - <!-- +- levelCrossing --> - <!----> - - <xs:complexType name="eLevelCrossings"> - <xs:sequence> - <xs:element name="levelCrossing" type="rail:tLevelCrossing" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- ownerChanges --> - <!-- +- ownerChange --> - <!----> - - <xs:complexType name="eOwnerChanges"> - <xs:sequence> - <xs:element name="ownerChange" type="rail:tOwnerChange" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- operationModeChanges --> - <!-- +- operationModeChange --> - <!----> - - <xs:complexType name="eOperationModeChanges"> - <xs:sequence> - <xs:element name="operationModeChange" - type="rail:tOperationModeChange" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- trainProtectionChanges --> - <!-- +- trainProtectionChange --> - <!----> - - <xs:complexType name="eTrainProtectionChanges"> - <xs:sequence> - <xs:element name="trainProtectionChange" - type="rail:tTrainProtectionChange" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- electrificationChanges --> - <!-- +- electrificationChange --> - <!----> - - <xs:complexType name="eElectrificationChanges"> - <xs:sequence> - <xs:element name="electrificationChange" - type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- powerTransmissionChanges --> - <!-- +- powerTransmissionChange --> - <!----> - - <xs:complexType name="ePowerTransmissionChanges"> - <xs:sequence> - <xs:element name="powerTransmissionChange" - type="rail:tPowerTransmissionChange" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- axleWeightChanges --> - <!-- +- axleWeightChange --> - <!----> - - <xs:complexType name="eAxleWeightChanges"> - <xs:sequence> - <xs:element name="axleWeightChange" - type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- gaugeChanges --> - <!-- +- gaugeChange --> - <!----> - - <xs:complexType name="eGaugeChanges"> - <xs:sequence> - <xs:element name="gaugeChange" type="rail:tGaugeChange" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- geoMappings --> - <!-- +- geoMapping --> - <!----> - <xs:complexType name="eGeoMappings"> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:element name="geoMapping" type="rail:tPlacedElement"></xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- ocsElements --> - <!-- +- signals --> - <!-- +- trainDetectionElements --> - <!-- +- balises --> - <!-- +- trainProtectionElements --> - <!----> - - <xs:complexType name="eOcsElements"> - <xs:sequence> - <xs:element name="signals" type="rail:eSignals" minOccurs="0" /> - <xs:element name="trainDetectionElements" - type="rail:eTrainDetectionElements" minOccurs="0" /> - <xs:element name="balises" type="rail:eBalises" minOccurs="0" /> - <xs:element name="trainProtectionElements" - type="rail:eTrainProtectionElements" minOccurs="0" /> - <!-- Provide an extension point for other elements--> - <xs:any namespace="##other" processContents="strict" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- signals --> - <!-- +- signal --> - <!-- +- signalGroup --> - <!----> - - <xs:complexType name="eSignals"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="signal" type="rail:tSignal" /> - <xs:element name="signalGroups" type="rail:eSignalGroups" /> - </xs:choice> - </xs:complexType> - - <!----> - <!-- signalGroups --> - <!-- +- signalGroup --> - <!----> - - <xs:complexType name="eSignalGroups"> - <xs:sequence> - <xs:element name="signalGroup" type="rail:eSignalGroup" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- signalGroup --> - <!-- +- signalRef --> - <!----> - - <xs:complexType name="eSignalGroup"> - <xs:complexContent> - <xs:extension base="rail:tSignalGroup"> - <xs:sequence> - <xs:element name="signalRef" type="rail:tSignalRefInGroup" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trainDetectionElements --> - <!-- +- trainDetector --> - <!-- +- trackCircuitBorder --> - <!----> - - <xs:complexType name="eTrainDetectionElements"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="trainDetector" type="rail:tTrainDetector" /> - <xs:element name="trackCircuitBorder" - type="rail:tTrackCircuitBorder" /> - </xs:choice> - </xs:complexType> - - <!----> - <!-- balises --> - <!-- +- balise --> - <!-- +- baliseGroup --> - <!----> - - <xs:complexType name="eBalises"> - <xs:sequence> - <xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded"/> - <xs:element name="baliseGroup" type="rail:eBaliseGroup" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- baliseGroup --> - <!-- +- balise --> - <!----> - - <xs:complexType name="eBaliseGroup"> - <xs:sequence> - <xs:element name="baliseRef" type="rail:tBaliseRefInGroup" maxOccurs="8" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- trainProtectionElements --> - <!-- +- trainProtectionElement --> - <!----> - - <xs:complexType name="eTrainProtectionElements"> - <xs:sequence> - <xs:element name="trainProtectionElement" - type="rail:tTrainProtectionElement" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!--*********************************************************--> - <!-- Infrastructure attributes --> - <!--*********************************************************--> - - <xs:complexType name="eInfraAttr"> - <xs:all> - <xs:element name="owner" type="rail:tOwner" minOccurs="0" /> - <xs:element name="operationMode" type="rail:tOperationMode" - minOccurs="0" /> - <xs:element name="trainProtection" type="rail:tTrainProtection" - minOccurs="0" /> - <xs:element name="electrification" type="rail:tElectrification" - minOccurs="0" /> - <xs:element name="powerTransmission" - type="rail:tPowerTransmission" minOccurs="0" /> - <xs:element name="axleWeight" type="rail:tAxleWeight" - minOccurs="0" /> - <xs:element name="gauge" type="rail:tGauge" minOccurs="0" /> - <xs:element name="speeds" type="rail:eSpeeds" minOccurs="0" /> - <xs:element name="epsgCode" type="rail:tEpsgCode" minOccurs="0" /> - <xs:element name="generalInfraAttributes" - type="rail:eGeneralInfraAttributes" minOccurs="0" /> - </xs:all> - </xs:complexType> - - <!----> - <!-- speeds --> - <!-- +- speed --> - <!----> - - <xs:complexType name="eSpeeds"> - <xs:sequence> - <xs:element name="speed" type="rail:tSpeedInfo" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- generalInfraAttributes --> - <!-- +- generalInfraAttribute --> - <!----> - - <xs:complexType name="eGeneralInfraAttributes"> - <xs:sequence> - <xs:element name="generalInfraAttribute" - type="rail:eGeneralInfraAttribute" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- generalInfraAttribute --> - <!-- +- attributes --> - <!-- +- others --> - <!----> - - <xs:complexType name="eGeneralInfraAttribute"> - <xs:sequence> - <xs:element name="attributes" type="rail:eAttributes" - minOccurs="0" /> - <xs:any namespace="##other" processContents="strict" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- attributes --> - <!-- +- attribute --> - <!----> - - <xs:complexType name="eAttributes"> - <xs:sequence> - <xs:element name="attribute" type="rail:tAttribute" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- infrastructureVisualizations --> - <!-- +- infrastructureVisualization --> - <!----> - - <xs:element name="infrastructureVisualizations"> - <xs:complexType> - <xs:sequence> - <xs:element name="visualization" - type="rail:eInfrastructureVisualization" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute ref="xml:base" /> - </xs:complexType> - </xs:element> - - <!----> - <!-- infrastructureVisualization --> - <!-- +- lineVis --> - <!-- +- ocpVis --> - <!----> - - <xs:complexType name="eInfrastructureVisualization"> - <xs:complexContent> - <xs:extension base="rail:tInfrastructureVisualization"> - <xs:sequence> - <xs:element name="lineVis" type="rail:eLineVis" - minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="ocpVis" type="rail:eOcpVis" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- lineVis --> - <!-- +- trackVis --> - <!----> - - <xs:complexType name="eLineVis"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:sequence> - <xs:element name="trackVis" type="rail:eTrackVis" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trackVis --> - <!-- +- trackElementVis --> - <!----> - - <xs:complexType name="eTrackVis"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:sequence> - <xs:element name="trackElementVis" - type="rail:eTrackElementVis" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trackElementVis --> - <!-- +- position --> - <!----> - - <xs:complexType name="eTrackElementVis"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:sequence> - <xs:element name="position" type="rail:tPoint" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- ocpVis --> - <!-- +- position --> - <!-- +- size --> - <!----> - - <xs:complexType name="eOcpVis"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:sequence> - <xs:element name="position" type="rail:tPoint" /> - <xs:element name="size" type="rail:tSize" minOccurs="0" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of elements (partially hidden as complex type) for infrastructure sub schema (IS), uses infrastructure types and attribute groups from "xs:include" path</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="infrastructureTypes.xsd" /> + + <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> + + <xs:element name="infrastructure"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="rail:tInfrastructure"> + <xs:sequence> + <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0" /> + <xs:element name="tracks" type="rail:eTracks" minOccurs="0" /> + <xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0" /> + <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0" /> + <xs:element name="controllers" type="rail:eControllers" minOccurs="0" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:complexType name="eOperationControlPoints"> + <xs:sequence> + <xs:element name="ocp" type="rail:eOcp" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eOcp"> + <xs:complexContent> + <xs:extension base="rail:tOperationControlPoint"> + <xs:sequence> + <xs:element name="propOperational" type="rail:eOcpPropOperational" minOccurs="0" /> + <xs:element name="propService" type="rail:tOcpPropService" minOccurs="0" /> + <xs:element name="propEquipment" type="rail:eOcpPropEquipment" minOccurs="0" /> + <xs:element name="propOther" type="rail:eOcpPropOther" minOccurs="0" /> + <xs:element name="tsi" type="rail:tOcpTsi" minOccurs="0" /> + <xs:element name="area" type="rail:tOcpArea" minOccurs="0" /> + <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOcpPropOperational"> + <xs:complexContent> + <xs:extension base="rail:tOcpPropOperational"> + <xs:sequence> + <xs:element name="uptime" type="rail:tOcpUptime" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOcpPropOther"> + <xs:complexContent> + <xs:extension base="rail:tOcpPropOther"> + <xs:sequence> + <xs:element name="additionalName" type="rail:tOcpAdditionalName" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>Deprecated for next major release, use "additionalName" in "ocp" instead.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOcpPropEquipment"> + <xs:choice> + <xs:element name="summary" type="rail:tOcpPropEquipmentSummary" /> + <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" /> + </xs:choice> + </xs:complexType> + + <xs:complexType name="eControllers"> + <xs:sequence> + <xs:element name="controller" type="rail:tController" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eInfraAttrGroup"> + <xs:sequence> + <xs:element name="infraAttributes" type="rail:eInfraAttr" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eLocallyControlledArea"> + <xs:complexContent> + <xs:extension base="rail:tLocallyControlledArea"> + <xs:sequence> + <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eLine"> + <xs:complexContent> + <xs:extension base="rail:tLine"> + <xs:sequence> + <xs:element name="lineDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrackGroups"> + <xs:sequence> + <xs:element name="line" type="rail:eLine" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="locallyControlledArea" type="rail:eLocallyControlledArea" minOccurs="0" maxOccurs="unbounded" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTracks"> + <xs:sequence> + <xs:element name="track" type="rail:eTrack" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrack"> + <xs:complexContent> + <xs:extension base="rail:tTrack"> + <xs:sequence> + <xs:element name="trackDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="trackTopology" type="rail:eTrackTopology" /> + <xs:element name="trackElements" type="rail:eTrackElements" minOccurs="0" /> + <xs:element name="ocsElements" type="rail:eOcsElements" minOccurs="0" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>Deprecated for next major release, use "generic any element" instead.</xs:documentation> + </xs:annotation> + </xs:any> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrackTopology"> + <xs:sequence> + <xs:element name="trackBegin" type="rail:eTrackNode" /> + <xs:element name="trackEnd" type="rail:eTrackNode" /> + <xs:element name="mileageChanges" type="rail:eMileageChanges" minOccurs="0" /> + <xs:element name="connections" type="rail:eConnections" minOccurs="0" /> + <xs:element name="crossSections" type="rail:eCrossSections" minOccurs="0" /> + <xs:element name="borders" type="rail:eBorder" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrackNode"> + <xs:complexContent> + <xs:extension base="rail:tTrackNode"> + <xs:choice> + <xs:element name="connection" type="rail:tConnectionData" /> + <xs:element name="bufferStop" type="rail:tBufferStop" /> + <xs:element name="openEnd" type="rail:tOpenEnd"></xs:element> + <xs:element name="macroscopicNode" type="rail:tMacroscopicNode"></xs:element> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eSwitch"> + <xs:complexContent> + <xs:extension base="rail:tSwitch"> + <xs:sequence> + <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eCrossing"> + <xs:complexContent> + <xs:extension base="rail:tCrossing"> + <xs:sequence> + <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eMileageChanges"> + <xs:sequence> + <xs:element name="mileageChange" type="rail:tMileageChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eConnections"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="switch" type="rail:eSwitch" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded" /> + </xs:choice> + </xs:complexType> + + <xs:complexType name="eCrossSections"> + <xs:sequence> + <xs:element name="crossSection" type="rail:tCrossSection" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eBorder"> + <xs:sequence> + <xs:element name="border" type="rail:tBorder" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrackElements"> + <xs:sequence> + <xs:element name="speedChanges" type="rail:eSpeedChanges" minOccurs="0" /> + <xs:element name="gradientChanges" type="rail:eGradientChanges" minOccurs="0" /> + <xs:element name="radiusChanges" type="rail:eRadiusChanges" minOccurs="0" /> + <xs:element name="tunnels" type="rail:eTunnels" minOccurs="0" /> + <xs:element name="bridges" type="rail:eBridges" minOccurs="0" /> + <xs:element name="levelCrossings" type="rail:eLevelCrossings" minOccurs="0" /> + <xs:element name="ownerChanges" type="rail:eOwnerChanges" minOccurs="0" /> + <xs:element name="operationModeChanges" type="rail:eOperationModeChanges" minOccurs="0" /> + <xs:element name="trainProtectionChanges" type="rail:eTrainProtectionChanges" minOccurs="0" /> + <xs:element name="electrificationChanges" type="rail:eElectrificationChanges" minOccurs="0" /> + <xs:element name="powerTransmissionChanges" type="rail:ePowerTransmissionChanges" minOccurs="0" /> + <xs:element name="axleWeightChanges" type="rail:eAxleWeightChanges" minOccurs="0" /> + <xs:element name="gaugeChanges" type="rail:eGaugeChanges" minOccurs="0" /> + <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0" /> + <xs:element name="trackConditions" type="rail:eTrackConditions" minOccurs="0" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eSpeedChanges"> + <xs:sequence> + <xs:element name="speedChange" type="rail:tSpeedChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eGradientChanges"> + <xs:sequence> + <xs:element name="gradientChange" type="rail:tGradientChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eRadiusChanges"> + <xs:sequence> + <xs:element name="radiusChange" type="rail:tRadiusChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTunnels"> + <xs:sequence> + <xs:element name="tunnel" type="rail:tTunnel" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eBridges"> + <xs:sequence> + <xs:element name="brigde" type="rail:tBridge" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eLevelCrossings"> + <xs:sequence> + <xs:element name="levelCrossing" type="rail:tLevelCrossing" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eOwnerChanges"> + <xs:sequence> + <xs:element name="ownerChange" type="rail:tOwnerChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eOperationModeChanges"> + <xs:sequence> + <xs:element name="operationModeChange" type="rail:tOperationModeChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrainProtectionChanges"> + <xs:sequence> + <xs:element name="trainProtectionChange" type="rail:tTrainProtectionChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eElectrificationChanges"> + <xs:sequence> + <xs:element name="electrificationChange" type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="ePowerTransmissionChanges"> + <xs:sequence> + <xs:element name="powerTransmissionChange" type="rail:tPowerTransmissionChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eAxleWeightChanges"> + <xs:sequence> + <xs:element name="axleWeightChange" type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eGaugeChanges"> + <xs:sequence> + <xs:element name="gaugeChange" type="rail:tGaugeChange" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eGeoMappings"> + <xs:sequence> + <xs:element name="geoMapping" type="rail:tPlacedElement" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrackConditions"> + <xs:sequence> + <xs:element name="trackCondition" type="rail:tTrackCondition" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eOcsElements"> + <xs:sequence> + <xs:element name="signals" type="rail:eSignals" minOccurs="0" /> + <xs:element name="trainDetectionElements" type="rail:eTrainDetectionElements" minOccurs="0" /> + <xs:element name="balises" type="rail:eBalises" minOccurs="0" /> + <xs:element name="trainProtectionElements" type="rail:eTrainProtectionElements" minOccurs="0" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eSignals"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="signal" type="rail:tSignal" /> + <xs:element name="signalGroups" type="rail:eSignalGroups" /> + </xs:choice> + </xs:complexType> + + <xs:complexType name="eSignalGroups"> + <xs:sequence> + <xs:element name="signalGroup" type="rail:eSignalGroup" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eSignalGroup"> + <xs:complexContent> + <xs:extension base="rail:tSignalGroup"> + <xs:sequence> + <xs:element name="signalRef" type="rail:tSignalRefInGroup" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrainDetectionElements"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="trainDetector" type="rail:tTrainDetector" /> + <xs:element name="trackCircuitBorder" type="rail:tTrackCircuitBorder" /> + </xs:choice> + </xs:complexType> + + <xs:complexType name="eBalises"> + <xs:sequence> + <xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded" /> + <xs:element name="baliseGroup" type="rail:eBaliseGroup" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eBaliseGroup"> + <xs:sequence> + <xs:element name="baliseRef" type="rail:tBaliseRefInGroup" maxOccurs="8" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrainProtectionElements"> + <xs:sequence> + <xs:element name="trainProtectionElement" type="rail:tTrainProtectionElement" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eInfraAttr"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndNameWithoutAny"> + <xs:all> + <xs:element name="owner" type="rail:tOwner" minOccurs="0" /> + <xs:element name="operationMode" type="rail:tOperationMode" minOccurs="0" /> + <xs:element name="trainProtection" type="rail:tTrainProtection" minOccurs="0" /> + <xs:element name="electrification" type="rail:tElectrification" minOccurs="0" /> + <xs:element name="powerTransmission" type="rail:tPowerTransmission" minOccurs="0" /> + <xs:element name="axleWeight" type="rail:tAxleWeight" minOccurs="0" /> + <xs:element name="gauge" type="rail:tGauge" minOccurs="0" /> + <xs:element name="speeds" type="rail:eSpeeds" minOccurs="0" /> + <xs:element name="epsgCode" type="rail:tEpsgCode" minOccurs="0" /> + <xs:element name="generalInfraAttributes" type="rail:eGeneralInfraAttributes" minOccurs="0" /> + </xs:all> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eSpeeds"> + <xs:sequence> + <xs:element name="speed" type="rail:tSpeedInfo" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eGeneralInfraAttributes"> + <xs:sequence> + <xs:element name="generalInfraAttribute" type="rail:eGeneralInfraAttribute" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eGeneralInfraAttribute"> + <xs:sequence> + <xs:element name="attributes" type="rail:eAttributes" minOccurs="0" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eAttributes"> + <xs:sequence> + <xs:element name="attribute" type="rail:tAttribute" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:element name="infrastructureVisualizations"> + <xs:complexType> + <xs:sequence> + <xs:element name="visualization" type="rail:eInfrastructureVisualization" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute ref="xml:base" /> + </xs:complexType> + </xs:element> + + <xs:complexType name="eInfrastructureVisualization"> + <xs:complexContent> + <xs:extension base="rail:tInfrastructureVisualization"> + <xs:sequence> + <xs:element name="lineVis" type="rail:eLineVis" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="ocpVis" type="rail:eOcpVis" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eLineVis"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:sequence> + <xs:element name="trackVis" type="rail:eTrackVis" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrackVis"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:sequence> + <xs:element name="trackElementVis" type="rail:eTrackElementVis" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrackElementVis"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:sequence> + <xs:element name="position" type="rail:tPoint" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOcpVis"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:sequence> + <xs:element name="position" type="rail:tPoint" /> + <xs:element name="size" type="rail:tSize" minOccurs="0" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> </xs:schema> diff --git a/schema/infrastructureTypes.xsd b/schema/infrastructureTypes.xsd index 63f41ed..6bb4fbe 100644 --- a/schema/infrastructureTypes.xsd +++ b/schema/infrastructureTypes.xsd @@ -1,1080 +1,1129 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> - + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by infrastructure sub schema (IS)</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="railwayUnits.xsd" /> + <xs:include schemaLocation="railwayBaseTypes.xsd" /> + + <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> + + <xs:complexType name="tPlacedElement"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:sequence> + <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0" /> + </xs:sequence> + <xs:attributeGroup ref="rail:aRelPosition" /> + <xs:attributeGroup ref="rail:aAbsPosition" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tOrientedElement"> + <xs:complexContent> + <xs:extension base="rail:tPlacedElement"> + <xs:attributeGroup ref="rail:aOrientation" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tGeoCoord"> + <xs:attribute name="coord" type="rail:tCoordinateList" use="required" /> + <xs:attribute name="extraHeight" type="xs:double" /> + <xs:attribute name="epsgCode" type="xs:anyURI" /> + <xs:attribute name="heightEpsgCode" type="xs:anyURI" /> + </xs:complexType> + + <xs:attributeGroup name="aRelPosition"> + <xs:attribute name="pos" type="rail:tLengthM" use="required" /> + </xs:attributeGroup> + + <xs:attributeGroup name="aOrientation"> + <xs:attribute name="dir" type="rail:tLaxDirection" /> + </xs:attributeGroup> + + <xs:attributeGroup name="aAbsPosition"> + <xs:attribute name="absPos" type="rail:tLengthM" /> + <xs:attribute name="absPosOffset" type="rail:tLengthM" use="optional"> + <xs:annotation> + <xs:documentation>DEPRECATED, not needed, not used</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tOcpArea"> + <xs:attribute name="name" type="rail:tGenericName" /> + <xs:attribute name="number" type="rail:tPositiveCounter" /> + <xs:attribute name="zip" type="rail:tPositiveCounter" use="required" /> + </xs:complexType> + + <xs:complexType name="tOcpPropOperational"> + <xs:attribute name="operationalType" type="rail:tOcpOperationalType" /> + <xs:attribute name="trafficType" type="rail:tOcpTrafficType" /> + <xs:attribute name="orderChangeable" type="xs:boolean" default="false" /> + <xs:attribute name="ensuresTrainSequence" type="xs:boolean" default="true" /> + </xs:complexType> + + <xs:complexType name="tOcpPropEquipmentSummary"> + <xs:attribute name="signalBox" type="rail:tInterlockingTypes" /> + <xs:attribute name="powerstation" type="xs:boolean" default="false" /> + <xs:attribute name="hasHomeSignals" type="xs:boolean" default="false" /> + <xs:attribute name="hasStarterSignals" type="xs:boolean" default="false" /> + <xs:attribute name="hasSwitches" type="xs:boolean" default="false" /> + </xs:complexType> + + <xs:complexType name="tTrackRefInGroup"> + <xs:complexContent> + <xs:extension base="rail:tElementRefInGroup"> + <!-- Possible trackGroup-specific attributes to be added here later --> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tOcpPropService"> + <xs:attribute name="passenger" type="xs:boolean" default="false" /> + <xs:attribute name="service" type="xs:boolean" default="false" /> + <xs:attribute name="ship" type="xs:boolean" default="false" /> + <xs:attribute name="bus" type="xs:boolean" default="false" /> + <xs:attribute name="tariffpoint" type="xs:boolean" default="false" /> + <xs:attribute name="goodsLoading" type="xs:boolean" default="false" /> + <xs:attribute name="goodsSiding" type="xs:boolean" default="false" /> + <xs:attribute name="goodsIntermodal" type="xs:boolean" default="false" /> + <xs:attribute name="goodsMarshalling" type="xs:boolean" default="false" /> + </xs:complexType> + + <xs:complexType name="tOcpTsi"> + <xs:attribute name="country" type="rail:tTwoDigits" /> + <xs:attribute name="location" type="rail:tFiveDigits" /> + <xs:attribute name="check" type="rail:tOneDigit" /> + <!-- more attributes can be added here later --> + </xs:complexType> + + <xs:complexType name="tOcpPropOther"> + <xs:attribute name="frontier" type="xs:boolean" default="false" /> + <xs:attribute name="chargeFrontier" type="xs:boolean" default="false" /> + <xs:attribute name="status" type="rail:tOcpStatus" default="operational" /> + </xs:complexType> + + <xs:simpleType name="tOcpStatus"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="planned" /> + <xs:enumeration value="operational" /> + <xs:enumeration value="disabled" /> + <xs:enumeration value="closed" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tOcpManMode"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="manned" /> + <xs:enumeration value="unmanned" /> + <xs:enumeration value="off" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tOcpUptime"> + <xs:complexContent> + <xs:extension base="rail:tTimeSpan"> + <xs:attribute name="mode" type="rail:tOcpManMode" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tOperationControlPoint"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attribute name="number" type="xs:string"> + <xs:annotation> + <xs:documentation>DEPRECATED: use "generic attribute" 'code' or a foreign 'anyAttribute' instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="abbrevation" type="xs:string"> + <xs:annotation> + <xs:documentation>DEPRECATED: use "generic attribute" 'code' or a foreign 'anyAttribute' instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="timezone" type="rail:tTimeZone"> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tOcpOperationalType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="station" /> + <xs:enumeration value="depot" /> + <xs:enumeration value="stoppingPoint" /> + <xs:enumeration value="crossover" /> + <xs:enumeration value="junction" /> + <xs:enumeration value="blockPost" /> + <xs:enumeration value="blockSignal" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tOcpTrafficType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="passenger" /> + <xs:enumeration value="freight" /> + <xs:enumeration value="shunting" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tOcpAdditionalName"> <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ - - For further information see: http://www.railml.org/ - - Content of this file: - XML Schema for railML(R) 2.0 - Definition of attribute groups, simple and complex types, - used by infrastructure sub schema (IS) - </xs:documentation> + <xs:documentation>Deprecated for next major release, type "tAdditionalName" is used by "additionalName" in "ocp"</xs:documentation> </xs:annotation> - - <xs:include schemaLocation="railwayUnits.xsd" /> - <xs:include schemaLocation="railwayBaseTypes.xsd" /> - - <xs:import namespace="http://www.w3.org/XML/1998/namespace" - schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> - - <!--*********************************************************--> - <!-- Basic elements for later inheritance --> - <!--*********************************************************--> - - <xs:complexType name="tPlacedElement"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:sequence> - <xs:element name="geoCoord" type="rail:tGeoCoord" - minOccurs="0" /> - </xs:sequence> - <xs:attributeGroup ref="rail:aRelPosition" /> - <xs:attributeGroup ref="rail:aAbsPosition" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tOrientedElement"> - <xs:complexContent> - <xs:extension base="rail:tPlacedElement"> - <xs:attributeGroup ref="rail:aOrientation" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Positioning --> - <!--*********************************************************--> - - <xs:complexType name="tGeoCoord"> - <xs:attribute name="coord" type="rail:tCoordinateList" use="required" /> - <xs:attribute name="extraHeight" type="xs:double" /> - <xs:attribute name="epsgCode" type="xs:anyURI" /> - <xs:attribute name="heightEpsgCode" type="xs:anyURI" /> - </xs:complexType> - - <xs:attributeGroup name="aRelPosition"> - <xs:attribute name="pos" type="rail:tLengthM" use="required" /> - </xs:attributeGroup> - - <xs:attributeGroup name="aOrientation"> - <xs:attribute name="dir" type="rail:tDirValidity" /> - </xs:attributeGroup> - - <xs:attributeGroup name="aAbsPosition"> - <xs:attribute name="absPos" type="rail:tLengthM" /> - <xs:attribute name="absPosOffset" type="rail:tLengthM" use="optional" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Operation and control points --> - <!--*********************************************************--> - - <xs:complexType name="tOcpArea"> - <xs:attribute name="name" type="rail:tGenericName" /> - <xs:attribute name="number" type="xs:integer" /> - <xs:attribute name="zip" type="xs:integer" use="required" /> - </xs:complexType> - - <xs:complexType name="tOcpPropOperational"> - <xs:attribute name="operationalType" type="rail:tOcpOperationalType" /> - <xs:attribute name="trafficType" type="rail:tOcpTrafficType" /> - <xs:attribute name="orderChangeable" type="xs:boolean" default="false" /> - <xs:attribute name="ensuresTrainSequence" type="xs:boolean" default="true" /> - </xs:complexType> - - <xs:complexType name="tOcpPropEquipmentSummary"> - <xs:attribute name="signalBox" type="rail:tInterlockingTypes" /> - <xs:attribute name="powerstation" type="xs:boolean" default="false" /> - <xs:attribute name="hasHomeSignals" type="xs:boolean" default="false" /> - <xs:attribute name="hasStarterSignals" type="xs:boolean" default="false" /> - <xs:attribute name="hasSwitches" type="xs:boolean" default="false" /> - </xs:complexType> - - <xs:complexType name="tTrackRefInGroup"> - <xs:complexContent> - <xs:extension base="rail:tElementRefInGroup"> - <!-- Possible trackGroup-specific attributes to be added here later --> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tOcpPropService"> - <xs:attribute name="passenger" type="xs:boolean" default="false" /> - <xs:attribute name="service" type="xs:boolean" default="false" /> - <xs:attribute name="ship" type="xs:boolean" default="false" /> - <xs:attribute name="bus" type="xs:boolean" default="false" /> - <xs:attribute name="tariffpoint" type="xs:boolean" default="false" /> - <xs:attribute name="goodsLoading" type="xs:boolean" default="false" /> - <xs:attribute name="goodsSiding" type="xs:boolean" default="false" /> - <xs:attribute name="goodsIntermodal" type="xs:boolean" default="false" /> - <xs:attribute name="goodsMarshalling" type="xs:boolean" default="false" /> - </xs:complexType> - - <xs:complexType name="tOcpPropOther"> - <xs:attribute name="frontier" type="xs:boolean" default="false" /> - <xs:attribute name="chargeFrontier" type="xs:boolean" default="false" /> - <xs:attribute name="status" type="rail:tOcpStatus" default="operational" /> - </xs:complexType> - - <xs:simpleType name="tOcpStatus"> - <xs:restriction base="xs:string"> - <xs:enumeration value="planned" /> - <xs:enumeration value="operational" /> - <xs:enumeration value="disabled" /> - <xs:enumeration value="closed" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tOcpManMode"> - <xs:restriction base="xs:string"> - <xs:enumeration value="manned" /> - <xs:enumeration value="unmanned" /> - <xs:enumeration value="off" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tOcpUptime"> - <xs:complexContent> - <xs:extension base="rail:tTimeSpan"> - <xs:attribute name="mode" type="rail:tOcpManMode" - use="required" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tOperationControlPoint"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attribute name="number" type="xs:string" /> - <xs:attribute name="abbrevation" type="xs:string" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="tOcpOperationalType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="station" /> - <xs:enumeration value="depot" /> - <xs:enumeration value="stoppingPoint" /> - <xs:enumeration value="crossover" /> - <xs:enumeration value="junction" /> - <xs:enumeration value="blockPost" /> - <xs:enumeration value="blockSignal" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tOcpTrafficType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="passenger" /> - <xs:enumeration value="freight" /> - <xs:enumeration value="shunting" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tOcpAdditionalName"> - <xs:attribute name="value" type="xs:string" use="required" /> - <xs:attribute name="type" type="rail:tOcpNameType" /> - <xs:attribute ref="xml:lang" /> - </xs:complexType> - - <xs:simpleType name="tOcpNameType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="operationalName" /> - <xs:enumeration value="trafficName" /> - <xs:enumeration value="localName" /> - </xs:restriction> - </xs:simpleType> - - - <!--*********************************************************--> - <!-- Owners --> - <!--*********************************************************--> - - <xs:attributeGroup name="aOwner"> - <xs:attribute name="ownerName" type="xs:string" - use="required" /> - <xs:attribute name="uic-no" type="xs:integer" /> - </xs:attributeGroup> - - <xs:complexType name="tOwner"> - <xs:attributeGroup ref="rail:aOwner" /> - </xs:complexType> - - <xs:complexType name="tOwnerChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aOwner" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Operation Mode --> - <!--*********************************************************--> - - <xs:simpleType name="tClearanceManaging"> - <xs:restriction base="xs:string"> - <xs:enumeration value="sight" /> - <xs:enumeration value="time" /> - <xs:enumeration value="blocking" /> - <xs:enumeration value="LZB-blocking" /> - <xs:enumeration value="absBrakeDist" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tOperationMode"> - <xs:attributeGroup ref="rail:aOperationMode" /> - </xs:complexType> - - <xs:attributeGroup name="aOperationMode"> - <xs:attribute name="modeLegislative" type="xs:string" - use="required" /> - <xs:attribute name="modeExecutive" type="xs:string" - use="required" /> - <xs:attribute name="clearanceManaging" - type="rail:tClearanceManaging" /> - </xs:attributeGroup> - - <xs:complexType name="tOperationModeChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aOperationMode" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Train Protection --> - <!--*********************************************************--> - - <xs:attributeGroup name="aTrainProtection"> - <xs:attribute name="monitoring" - type="rail:tTrainProtectionMonitoring" default="none" /> - <xs:attribute name="medium" type="rail:tTrainProtectionMedium" /> - </xs:attributeGroup> - - <xs:complexType name="tTrainProtection"> - <xs:attributeGroup ref="rail:aTrainProtection" /> - </xs:complexType> - - <xs:complexType name="tTrainProtectionChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aTrainProtection" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tTrainProtectionElement"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="medium" - type="rail:tTrainProtectionMedium" /> - <xs:attribute name="system" type="xs:string" /> - <xs:attribute name="model" type="xs:string" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Electrification --> - <!--*********************************************************--> - - <xs:complexType name="tElectrification"> - <xs:attributeGroup ref="rail:aElectrification" /> - </xs:complexType> - - <xs:simpleType name="tElectrificationType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="overhead" /> - <xs:enumeration value="3rdRail" /> - <xs:enumeration value="sideRail" /> - </xs:restriction> - </xs:simpleType> - - <xs:attributeGroup name="aElectrification"> - <xs:attribute name="type" type="rail:tElectrificationType" - default="none" /> - <xs:attribute name="voltage" type="rail:tElectrificationVoltage" - default="15000" /> - <xs:attribute name="frequency" type="rail:tFrequency" - default="16.667" /> - </xs:attributeGroup> - - <xs:complexType name="tElectrificationChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aElectrification" /> - <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" /> - <xs:attribute name="isolatedSection" type="xs:boolean" - default="false" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <!--*********************************************************--> - <!-- EPSG-Code --> - <!--*********************************************************--> - - <xs:complexType name="tEpsgCode"> - <xs:attributeGroup ref="rail:aEpsgCode" /> - </xs:complexType> - - <xs:attributeGroup name="aEpsgCode"> - <xs:attribute name="default" type="xs:anyURI" use="required"/> - <xs:attribute name="extraHeight" type="xs:anyURI" use="required"/> - </xs:attributeGroup> - - - <!--*********************************************************--> - <!-- Gauge --> - <!--*********************************************************--> - - <xs:complexType name="tGauge"> - <xs:attributeGroup ref="rail:aGauge" /> - </xs:complexType> - - <xs:attributeGroup name="aGauge"> - <xs:attribute name="value" type="rail:tLengthMM" - default="1435" /> - </xs:attributeGroup> - - <xs:complexType name="tGaugeChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aGauge" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Power Transmission --> - <!--*********************************************************--> - - <xs:complexType name="tPowerTransmission"> - <xs:attributeGroup ref="rail:aPowerTransmission" /> - </xs:complexType> - - <xs:simpleType name="tPowerTransmissionType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="adhesion" /> - <xs:enumeration value="gearrack" /> - <xs:enumeration value="cable" /> - </xs:restriction> - </xs:simpleType> - - <xs:attributeGroup name="aPowerTransmission"> - <xs:attribute name="type" type="rail:tPowerTransmissionType" - default="adhesion"> - </xs:attribute> - <xs:attribute name="style" type="xs:string" /> - </xs:attributeGroup> - - <xs:complexType name="tPowerTransmissionChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aPowerTransmission" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Axle Weight --> - <!--*********************************************************--> - - <xs:complexType name="tAxleWeight"> - <xs:attributeGroup ref="rail:aAxleWeight" /> - </xs:complexType> - - <xs:attributeGroup name="aAxleWeight"> - <xs:attribute name="value" type="rail:tWeightTons" use="required" /> - <xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" /> - </xs:attributeGroup> - - <xs:complexType name="tAxleWeightChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aAxleWeight" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Mileage Change --> - <!--*********************************************************--> - - <xs:simpleType name="tMileageChangeDescr"> - <xs:restriction base="xs:string"> - <xs:enumeration value="overlapping" /> - <xs:enumeration value="missing" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tMileageChange"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attribute name="absPosIn" type="rail:tLengthM" use="required" /> - <xs:attribute name="absPosInOffset" type="rail:tLengthM" use="optional" /> - <xs:attribute name="type" type="rail:tMileageChangeDescr" use="required"/> - <xs:attribute name="absPos" type="rail:tLengthM" use="required"/> - <xs:attribute name="pos" type="rail:tLengthM" use="required" /> - <xs:attribute name="dir" type="rail:tDirValidity" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Switches and crossings --> - <!--*********************************************************--> - - <xs:simpleType name="tSwitchType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="ordinarySwitch" /> - <xs:enumeration value="insideCurvedSwitch" /> - <xs:enumeration value="outsideCurvedSwitch" /> - <xs:enumeration value="threeWaySwitch" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tCrossingType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="simpleCrossing" /> - <xs:enumeration value="simpleSwitchCrossing" /> - <xs:enumeration value="doubleSwitchCrossing" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tNormalPosition"> - <xs:restriction base="xs:string"> - <xs:enumeration value="straight" /> - <xs:enumeration value="left" /> - <xs:enumeration value="right" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tCommonSwitchAndCrossingData"> - <xs:complexContent> - <xs:extension base="rail:tPlacedElement"> - <xs:attribute name="trackContinueCourse" type="rail:tCourse" /> - <xs:attribute name="trackContinueRadius" - type="rail:tRadiusM" /> - <xs:attribute name="normalPosition" type="rail:tCourse" /> - <xs:attribute name="model" type="xs:string" /> - <xs:attribute name="length" type="rail:tLengthM" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tSwitch"> - <xs:complexContent> - <xs:extension base="rail:tCommonSwitchAndCrossingData"> - <xs:attribute name="type" type="rail:tSwitchType" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tCrossing"> - <xs:complexContent> - <xs:extension base="rail:tCommonSwitchAndCrossingData"> - <xs:attribute name="type" type="rail:tCrossingType" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Buffer Stop --> - <!--*********************************************************--> - - <xs:complexType name="tBufferStop"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Open End --> - <!--*********************************************************--> - - <xs:complexType name="tOpenEnd"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Macroscopic Node (aka "Star" or "Hub") --> - <!--*********************************************************--> - - <xs:complexType name="tMacroscopicNode"> - <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" /> - <xs:attribute name="flowDirection" type="rail:tFlowDirection" default="both"/> - </xs:complexType> - - - <!--*********************************************************--> - <!-- Tracks --> - <!--*********************************************************--> - - <xs:simpleType name="tTrackType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="mainTrack" /> - <xs:enumeration value="secondaryTrack" /> - <xs:enumeration value="connectingTrack" /> - <xs:enumeration value="sidingTrack" /> - <xs:enumeration value="stationTrack" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tTrack"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attribute name="type" type="rail:tTrackType" /> - <xs:attribute name="mainDir" type="rail:tDirValidity" /> - <xs:attribute name="infraAttrGroupRef" type="rail:tGenericRef"></xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Lines --> - <!--*********************************************************--> - - <xs:simpleType name="tLineType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="mainLine" /> - <xs:enumeration value="secondaryLine" /> - <xs:enumeration value="branchLine" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tLine"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attribute name="type" type="rail:tLineType" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Locally Controlled Areas --> - <!--*********************************************************--> - <xs:complexType name="tLocallyControlledArea"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attribute name="ocpRef" type="rail:tGenericRef" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <!--*********************************************************--> - <!-- Track Begin, Track End, Connections --> - <!--*********************************************************--> - - <xs:complexType name="tTrackNode"> - <xs:attribute name="id" type="rail:tGenericID" use="required" /> - <xs:attributeGroup ref="rail:aRelPosition" /> - <xs:attributeGroup ref="rail:aAbsPosition" /> - </xs:complexType> - - <xs:complexType name="tConnectionData"> - <xs:attribute name="id" type="rail:tGenericID" use="required" /> - <xs:attribute name="ref" type="rail:tGenericRef" use="required"/> - </xs:complexType> - - <xs:complexType name="tSwitchConnectionData"> - <xs:complexContent> - <xs:extension base="rail:tConnectionData"> - <xs:attributeGroup ref="rail:aConnectionData" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aConnectionData"> - <xs:attribute name="course" type="rail:tCourse" /> - <xs:attribute name="radius" type="rail:tRadiusM" /> - <xs:attribute name="maxSpeed" type="rail:tSpeedKmPerHour" /> - <xs:attribute name="branchDist" type="rail:tLengthM" /> - <xs:attribute name="orientation" type="rail:tConnectionOrientation" use="required" /> - <xs:attribute name="passable" type="xs:boolean" default="true" /> - </xs:attributeGroup> - - <xs:simpleType name="tConnectionOrientation"> - <xs:restriction base="xs:string"> - <xs:enumeration value="incoming" /> - <xs:enumeration value="outgoing" /> - <xs:enumeration value="rightAngled" /> - <xs:enumeration value="unknown" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tCourse"> - <xs:restriction base="xs:string"> - <xs:enumeration value="left" /> - <xs:enumeration value="right" /> - <xs:enumeration value="straight" /> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Cross Section --> - <!--*********************************************************--> - - <xs:simpleType name="tCrossSectionBlockType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="station" /> - <xs:enumeration value="block" /> - <xs:enumeration value="autoblock" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tCrossSection"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="type" type="rail:tCrossSectionBlockType" /> - <xs:attribute name="ocpRef" type="rail:tGenericRef" - use="required" /> - <xs:attribute name="ocpTrackID" type="xs:unsignedByte" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Borders --> - <!--*********************************************************--> - - <xs:simpleType name="tBorderType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="tarif" /> - <xs:enumeration value="area" /> - <xs:enumeration value="state" /> - <xs:enumeration value="country" /> - <xs:enumeration value="station" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tBorder"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="type" type="rail:tBorderType" - use="required" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Speeds --> - <!--*********************************************************--> - - <xs:attributeGroup name="aSpeed"> - <xs:attribute name="trainCategory" type="rail:tTrainCategory" /> - <xs:attribute name="status" type="xs:string" /> - <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" - use="required" /> - </xs:attributeGroup> - - <xs:complexType name="tSpeedInfo"> - <xs:attributeGroup ref="rail:aSpeed" /> - </xs:complexType> - - <xs:complexType name="tSpeedChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aSpeed" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Gradients --> - <!--*********************************************************--> - - <xs:complexType name="tGradientChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="slope" type="rail:tGradientPromille" - use="required" /> - <xs:attribute name="transitionLenght" type="rail:tLengthM" /> - <xs:attribute name="transitionRadius" type="rail:tRadiusM" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Level crossings --> - <!--*********************************************************--> - - <xs:complexType name="tLevelCrossing"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="length" type="rail:tLengthM" - default="0.000" /> - <xs:attribute name="angle" type="rail:tAngleDegQuadrant" - default="90" /> - <xs:attribute name="protection" type="xs:string" - default="none" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Tunnels --> - <!--*********************************************************--> - - <xs:simpleType name="tTunnelType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="natural stone" /> - <xs:enumeration value="quarrystone" /> - <xs:enumeration value="brick" /> - <xs:enumeration value="concrete" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tTunnel"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="length" type="rail:tLengthM" /> - <xs:attribute name="crossSection" type="rail:tLengthM" /> - <xs:attribute name="kind" type="rail:tTunnelType" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Radii --> - <!--*********************************************************--> - - <xs:complexType name="tRadiusChange"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="radius" type="rail:tRadiusM" - use="required" /> - <xs:attribute name="superelevation" type="rail:tLengthMM" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Bridges --> - <!--*********************************************************--> - - <xs:complexType name="tBridge"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="length" type="rail:tLengthM" /> - <xs:attribute name="kind" type="xs:string" /> - <xs:attribute name="meterload" - type="rail:tMeterloadTonsPerMeter" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Signals --> - <!--*********************************************************--> - - <xs:complexType name="tSignal"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aSignal" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="tSignalType"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="main" /> - <xs:enumeration value="distant" /> - <xs:enumeration value="repeater" /> - <xs:enumeration value="combined" /> - <xs:enumeration value="shunting" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:simpleType name="tSignalFunction"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="exit" /> - <xs:enumeration value="home" /> - <xs:enumeration value="blocking" /> - <xs:enumeration value="intermediate" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:attributeGroup name="aSignal"> - <xs:attribute name="sight" type="rail:tLengthM" /> - <xs:attribute name="type" type="rail:tSignalType" /> - <xs:attribute name="function" type="rail:tSignalFunction" /> - <xs:attribute name="sigSystem" type="xs:string" /> - <xs:attribute name="switchable" type="xs:boolean" /> - <xs:attribute name="maskableRoute" type="xs:boolean" /> - <xs:attribute name="maskableATC" type="xs:boolean" /> - <xs:attribute name="virtual" type="xs:boolean" - default="false" /> - <xs:attribute name="signalBoxOcpRef" type="rail:tGenericRef" /> - <xs:attribute name="stationOcpRef" type="rail:tGenericRef" /> - <xs:attribute name="distNearestDangerPoint" type="rail:tLengthM" /> - <xs:attribute name="trackDist" type="rail:tLengthM" /> - <xs:attribute name="height" type="rail:tLengthM" /> - </xs:attributeGroup> - - <xs:attributeGroup name="aSignalGroup"> - <xs:attribute name="type" type="rail:tSignalGroupType" /> - </xs:attributeGroup> - - <xs:simpleType name="tSignalGroupType"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="distant-main" /> - <xs:enumeration value="station" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:complexType name="tSignalGroup"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aSignalGroup" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tSignalRefInGroup"> - <xs:complexContent> - <xs:extension base="rail:tElementRefInGroup"> - <!-- Possible signalGroup-specific attributes to be added here later --> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <!--*********************************************************--> - <!-- Balises --> - <!--*********************************************************--> - - <xs:simpleType name="tPIG"> - <xs:restriction base="xs:integer"> - <xs:minInclusive value="0" /> - <xs:maxInclusive value="7" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tBalise"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attributeGroup ref="rail:aBalise" /> - <xs:attribute name="ndx" type="rail:tPIG"> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tBaliseRefInGroup"> - <xs:complexContent> - <xs:extension base="rail:tElementRefInGroup"> - <!-- Possible baliseGroup-specific attributes to be added here later --> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="tBaliseCountryID"> - <xs:restriction base="xs:integer"> - <xs:minInclusive value="0" /> - <xs:maxInclusive value="1023" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tBaliseGroupID"> - <xs:restriction base="xs:integer"> - <xs:minInclusive value="0" /> - <xs:maxInclusive value="16383" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tBaliseLinkingAcc"> - <xs:restriction base="xs:integer"> - <xs:minInclusive value="-63" /> - <xs:maxInclusive value="63" /> - </xs:restriction> - </xs:simpleType> - - <xs:attributeGroup name="aBalise"> - <xs:attribute name="countryID" type="rail:tBaliseCountryID" /> - <xs:attribute name="groupID" type="rail:tBaliseGroupID" /> - <xs:attribute name="linkingAccuracy" type="rail:tBaliseLinkingAcc" /> - <xs:attribute name="linkReactionAscending" - type="rail:tBaliseLinkReaction" /> - <xs:attribute name="linkReactionDescending" - type="rail:tBaliseLinkReaction" /> - <xs:attribute name="staticTelegram" type="xs:string" /> - </xs:attributeGroup> - - <xs:simpleType name="tBaliseLinkReaction"> - <xs:restriction base="xs:string"> - <xs:enumeration value="trainTrip" /> - <xs:enumeration value="applyServiceBrake" /> - <xs:enumeration value="noReaction" /> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Train detectors --> - <!--*********************************************************--> - - <xs:simpleType name="tDetectionObject"> - <xs:restriction base="xs:string"> - <xs:enumeration value="wheel" /> - <xs:enumeration value="axle" /> - <xs:enumeration value="train" /> - <xs:enumeration value="endOfTrain" /> - <xs:enumeration value="obstacle" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tDetectorMedium"> - <xs:restriction base="xs:string"> - <xs:enumeration value="mechanical" /> - <xs:enumeration value="hydraulic" /> - <xs:enumeration value="pneumatic" /> - <xs:enumeration value="magnetic" /> - <xs:enumeration value="inductive" /> - <xs:enumeration value="optical" /> - <xs:enumeration value="radio" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tPosInTrack"> - <xs:restriction base="xs:string"> - <xs:enumeration value="center" /> - <xs:enumeration value="leftRail" /> - <xs:enumeration value="leftRailInside" /> - <xs:enumeration value="leftRailOutside" /> - <xs:enumeration value="rightRail" /> - <xs:enumeration value="rightRailInside" /> - <xs:enumeration value="rightRailOutside" /> - <xs:enumeration value="outside" /> - <xs:enumeration value="outsideLeft" /> - <xs:enumeration value="outsideRight" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tTrainDetector"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="detectionObject" - type="rail:tDetectionObject" /> - <xs:attribute name="medium" type="rail:tDetectorMedium" /> - <xs:attribute name="posInTrack" type="rail:tPosInTrack" /> - <xs:attribute name="directionDetection" - type="xs:boolean" /> - <xs:attribute name="model" type="xs:string" /> - <xs:attribute name="axleCounting" type="xs:boolean" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Track Circuit Border --> - <!--*********************************************************--> - - <xs:simpleType name="tInsulatedRailSide"> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="left" /> - <xs:enumeration value="right" /> - <xs:enumeration value="both" /> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="tTrackCircuitBorder"> - <xs:complexContent> - <xs:extension base="rail:tOrientedElement"> - <xs:attribute name="insulatedRail" - type="rail:tInsulatedRailSide" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Infrastructure itself --> - <!--*********************************************************--> - - <xs:complexType name="tInfrastructure"> - <xs:complexContent> - <xs:extension base="rail:tGlobalElementWithMetadata"> - <xs:attributeGroup ref="rail:aInfrastructure" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aInfrastructure"> - <xs:attribute name="timetableRef" type="rail:tGenericRef" /> - <xs:attribute name="rollingstockRef" type="rail:tGenericRef" /> - </xs:attributeGroup> - - <xs:complexType name="tInfraAttrGroup"> - <xs:attribute name="id" type="rail:tGenericID" use="required" /> - </xs:complexType> - - <!--*********************************************************--> - <!-- Visualization --> - <!--*********************************************************--> - - <xs:complexType name="tInfrastructureVisualization"> - <xs:attribute name="version" type="rail:tRailMLVersion" - use="required" /> - <xs:attribute name="infrastructureRef" type="rail:tGenericRef" /> - <xs:attribute name="id" type="rail:tGenericID" - use="required" /> - </xs:complexType> - - <xs:complexType name="tPoint"> - <xs:attribute name="x" type="xs:double" use="required" /> - <xs:attribute name="y" type="xs:double" use="required" /> - </xs:complexType> - - <xs:complexType name="tSize"> - <xs:attribute name="width" type="xs:double" use="required" /> - <xs:attribute name="height" type="xs:double" use="required" /> - </xs:complexType> - - <!--*********************************************************--> - <!-- General Attributes --> - <!--*********************************************************--> - - <xs:complexType name="tAttribute"> - <xs:attribute name="name" type="xs:string" use="required" /> - <xs:attribute name="value" type="xs:string" use="required" /> - </xs:complexType> + <xs:attribute name="value" type="xs:string" use="required"> + <xs:annotation> + <xs:documentation>Deprecated for next major release, use attribute "name" in element "additionalName" in "ocp" instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="type" type="rail:tOcpNameType"> + <xs:annotation> + <xs:documentation>Deprecated for next major release, use "any" attribute in element "additionalName" in "ocp" instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute ref="xml:lang"> + <xs:annotation> + <xs:documentation>Deprecated for next major release, element "additionalName" in "ocp" provides the same attribute</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + + <xs:simpleType name="tOcpNameType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="operationalName" /> + <xs:enumeration value="trafficName" /> + <xs:enumeration value="localName" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tController"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:annotation> + <xs:documentation>controller element, e.g. interlocking</xs:documentation> + </xs:annotation> + <!--<xs:attribute name="type" type="xs:string" use="optional" />--> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aOcpRef"> + <xs:attribute name="ocpStationRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>reference on ocp element, e.g. station</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="controllerRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>reference on controller element, e.g. interlocking</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:attributeGroup name="aOwner"> + <xs:attribute name="ownerName" type="xs:string" use="required" /> + <xs:attribute name="uic-no" type="rail:tPositiveCounter" /> + </xs:attributeGroup> + + <xs:complexType name="tOwner"> + <xs:attributeGroup ref="rail:aOwner" /> + </xs:complexType> + + <xs:complexType name="tOwnerChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aOwner" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tClearanceManaging"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="sight" /> + <xs:enumeration value="time" /> + <xs:enumeration value="blocking" /> + <xs:enumeration value="LZB-blocking" /> + <xs:enumeration value="absBrakeDist" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tOperationMode"> + <xs:attributeGroup ref="rail:aOperationMode" /> + </xs:complexType> + + <xs:attributeGroup name="aOperationMode"> + <xs:attribute name="modeLegislative" type="xs:string" use="required" /> + <xs:attribute name="modeExecutive" type="xs:string" use="required" /> + <xs:attribute name="clearanceManaging" type="rail:tClearanceManaging" /> + </xs:attributeGroup> + + <xs:complexType name="tOperationModeChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aOperationMode" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrainProtection"> + <xs:attribute name="monitoring" type="rail:tTrainProtectionMonitoring" default="none" /> + <xs:attribute name="medium" type="rail:tTrainProtectionMedium" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainProtection"> + <xs:attributeGroup ref="rail:aTrainProtection" /> + </xs:complexType> + + <xs:complexType name="tTrainProtectionChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aTrainProtection" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tTrainProtectionElement"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="medium" type="rail:tTrainProtectionMedium" /> + <xs:attribute name="system" type="xs:string" /> + <xs:attribute name="model" type="xs:string" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tElectrification"> + <xs:attributeGroup ref="rail:aElectrification" /> + </xs:complexType> + + <xs:simpleType name="tElectrificationType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="overhead" /> + <xs:enumeration value="3rdRail" /> + <xs:enumeration value="sideRail" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:attributeGroup name="aElectrification"> + <xs:attribute name="type" type="rail:tElectrificationType" default="none" /> + <xs:attribute name="voltage" type="rail:tVoltageVolt" default="15000" /> + <xs:attribute name="frequency" type="rail:tFrequencyHertz" default="16.667" /> + </xs:attributeGroup> + + <xs:complexType name="tElectrificationChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aElectrification" /> + <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" /> + <xs:attribute name="isolatedSection" type="xs:boolean" default="false" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tEpsgCode"> + <xs:attributeGroup ref="rail:aEpsgCode" /> + </xs:complexType> + + <xs:attributeGroup name="aEpsgCode"> + <xs:attribute name="default" type="xs:anyURI" use="required" /> + <xs:attribute name="extraHeight" type="xs:anyURI" /> + </xs:attributeGroup> + + <xs:complexType name="tGauge"> + <xs:attributeGroup ref="rail:aGauge" /> + </xs:complexType> + + <xs:attributeGroup name="aGauge"> + <xs:attribute name="value" type="rail:tLengthMM" default="1435" /> + </xs:attributeGroup> + + <xs:complexType name="tGaugeChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aGauge" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tPowerTransmission"> + <xs:attributeGroup ref="rail:aPowerTransmission" /> + </xs:complexType> + + <xs:simpleType name="tPowerTransmissionType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="adhesion" /> + <xs:enumeration value="gearrack" /> + <xs:enumeration value="cable" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:attributeGroup name="aPowerTransmission"> + <xs:attribute name="type" type="rail:tPowerTransmissionType" default="adhesion" /> + <xs:attribute name="style" type="xs:string" /> + </xs:attributeGroup> + + <xs:complexType name="tPowerTransmissionChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aPowerTransmission" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tAxleWeight"> + <xs:attributeGroup ref="rail:aAxleWeight" /> + </xs:complexType> + + <xs:attributeGroup name="aAxleWeight"> + <xs:attribute name="value" type="rail:tWeightTons" use="required" /> + <xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" /> + </xs:attributeGroup> + + <xs:complexType name="tAxleWeightChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aAxleWeight" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tMileageChangeDescr"> + <xs:restriction base="xs:string"> + <xs:enumeration value="overlapping" /> + <xs:enumeration value="missing" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="tMileageChange"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attribute name="absPosIn" type="rail:tLengthM" use="required" /> + <xs:attribute name="absPosInOffset" type="rail:tLengthM" use="optional"> + <xs:annotation> + <xs:documentation>DEPRECATED: not needed, not used</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="type" type="rail:tMileageChangeDescr" use="required" /> + <xs:attribute name="absPos" type="rail:tLengthM" use="required" /> + <xs:attribute name="pos" type="rail:tLengthM" use="required" /> + <xs:attribute name="dir" type="rail:tDelimitedDirection" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tSwitchType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="ordinarySwitch" /> + <xs:enumeration value="insideCurvedSwitch" /> + <xs:enumeration value="outsideCurvedSwitch" /> + <xs:enumeration value="threeWaySwitch" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tCrossingType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="simpleCrossing" /> + <xs:enumeration value="simpleSwitchCrossing" /> + <xs:enumeration value="doubleSwitchCrossing" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tCommonSwitchAndCrossingData"> + <xs:complexContent> + <xs:extension base="rail:tPlacedElement"> + <xs:attribute name="trackContinueCourse" type="rail:tCourse" /> + <xs:attribute name="trackContinueRadius" type="rail:tRadiusM" /> + <xs:attribute name="normalPosition" type="rail:tCourse" /> + <xs:attribute name="model" type="xs:string" /> + <xs:attribute name="length" type="rail:tLengthM" /> + <xs:attributeGroup ref="rail:aOcpRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tSwitch"> + <xs:complexContent> + <xs:extension base="rail:tCommonSwitchAndCrossingData"> + <xs:attribute name="type" type="rail:tSwitchType" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tCrossing"> + <xs:complexContent> + <xs:extension base="rail:tCommonSwitchAndCrossingData"> + <xs:attribute name="type" type="rail:tCrossingType" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tBufferStop"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tOpenEnd"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tMacroscopicNode"> + <xs:annotation> + <xs:documentation>also "Star" or "Hub"</xs:documentation> + </xs:annotation> + <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" /> + <xs:attribute name="flowDirection" type="rail:tFlowDirection" default="both" /> + </xs:complexType> + + <xs:simpleType name="tTrackType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="mainTrack" /> + <xs:enumeration value="secondaryTrack" /> + <xs:enumeration value="connectingTrack" /> + <xs:enumeration value="sidingTrack" /> + <xs:enumeration value="stationTrack" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tTrack"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attribute name="type" type="rail:tTrackType" /> + <xs:attribute name="mainDir" type="rail:tExtendedDirection" /> + <xs:attribute name="infraAttrGroupRef" type="rail:tGenericRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tLineType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="mainLine" /> + <xs:enumeration value="secondaryLine" /> + <xs:enumeration value="branchLine" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tLine"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attribute name="type" type="rail:tLineType" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tLocallyControlledArea"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attribute name="ocpRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>DEPRECATED: use attribute 'ocpStationRef' or 'controllerRef' instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:aOcpRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tTrackNode"> + <xs:attribute name="id" type="rail:tGenericID" use="required" /> + <xs:attributeGroup ref="rail:aRelPosition" /> + <xs:attributeGroup ref="rail:aAbsPosition" /> + </xs:complexType> + + <xs:complexType name="tConnectionData"> + <xs:attribute name="id" type="rail:tGenericID" use="required" /> + <xs:attribute name="ref" type="rail:tGenericRef" use="required" /> + </xs:complexType> + + <xs:complexType name="tSwitchConnectionData"> + <xs:complexContent> + <xs:extension base="rail:tConnectionData"> + <xs:attributeGroup ref="rail:aConnectionData" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aConnectionData"> + <xs:attribute name="course" type="rail:tCourse" /> + <xs:attribute name="radius" type="rail:tRadiusM" /> + <xs:attribute name="maxSpeed" type="rail:tSpeedKmPerHour" /> + <xs:attribute name="branchDist" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>DEPRECATED: use short 'track' instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="orientation" type="rail:tConnectionOrientation" use="required" /> + <xs:attribute name="passable" type="xs:boolean" default="true" /> + </xs:attributeGroup> + + <xs:simpleType name="tConnectionOrientation"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="incoming" /> + <xs:enumeration value="outgoing" /> + <xs:enumeration value="rightAngled" /> + <xs:enumeration value="unknown" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tCourse"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="straight" /> + <xs:enumeration value="left" /> + <xs:enumeration value="right" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tCrossSectionBlockType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="station" /> + <xs:enumeration value="block" /> + <xs:enumeration value="autoblock" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tCrossSection"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="type" type="rail:tCrossSectionBlockType" /> + <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" /> + <xs:attribute name="ocpTrackID" type="xs:unsignedByte" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tBorderType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="tarif" /> + <xs:enumeration value="area" /> + <xs:enumeration value="state" /> + <xs:enumeration value="country" /> + <xs:enumeration value="station" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tBorder"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="type" type="rail:tBorderType" use="required" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aSpeed"> + <xs:attribute name="trainCategory" type="rail:tTrainCategory" /> + <xs:attribute name="status" type="xs:string" /> + <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" use="required" /> + </xs:attributeGroup> + + <xs:complexType name="tSpeedInfo"> + <xs:attributeGroup ref="rail:aSpeed" /> + </xs:complexType> + + <xs:complexType name="tSpeedChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aSpeed" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tGradientChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="slope" type="rail:tGradientPromille" use="required" /> + <xs:attribute name="transitionLenght" type="rail:tLengthM" /> + <xs:attribute name="transitionRadius" type="rail:tRadiusM" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tLevelCrossing"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="length" type="rail:tLengthM" default="0.000" /> + <xs:attribute name="angle" type="rail:tAngleDegQuadrant" default="90" /> + <xs:attribute name="protection" type="xs:string" default="none" /> + <xs:attributeGroup ref="rail:aOcpRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tTunnelType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="natural stone" /> + <xs:enumeration value="quarrystone" /> + <xs:enumeration value="brick" /> + <xs:enumeration value="concrete" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tTunnel"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="length" type="rail:tLengthM" /> + <xs:attribute name="crossSection" type="rail:tLengthM" /> + <xs:attribute name="kind" type="rail:tTunnelType" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tRadiusChange"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="radius" type="rail:tRadiusM" use="required" /> + <xs:attribute name="superelevation" type="rail:tLengthMM" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tBridge"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="length" type="rail:tLengthM" /> + <xs:attribute name="kind" type="xs:string" /> + <xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tTrackCondition"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="length" type="rail:tLengthM" /> + <xs:attribute name="type" type="rail:tTrackConditionType" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tTrackConditionType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="nonStoppingArea" /> + <xs:enumeration value="lowerPantograph" /> + <xs:enumeration value="mainPowerSwitchOff" /> + <xs:enumeration value="radioHole" /> + <xs:enumeration value="airTightness" /> + <xs:enumeration value="noRegenerativeBrake" /> + <xs:enumeration value="noEddyCurrentBrake" /> + <xs:enumeration value="noMagneticShoeBrake" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tSignal"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aSignal" /> + <xs:attributeGroup ref="rail:aOcpRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tSignalType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="main" /> + <xs:enumeration value="distant" /> + <xs:enumeration value="repeater" /> + <xs:enumeration value="combined" /> + <xs:enumeration value="shunting" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tSignalFunction"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="exit" /> + <xs:enumeration value="home" /> + <xs:enumeration value="blocking" /> + <xs:enumeration value="intermediate" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:attributeGroup name="aSignal"> + <xs:attribute name="sight" type="rail:tLengthM" /> + <xs:attribute name="type" type="rail:tSignalType" /> + <xs:attribute name="function" type="rail:tSignalFunction" /> + <xs:attribute name="sigSystem" type="xs:string" /> + <xs:attribute name="switchable" type="xs:boolean" /> + <xs:attribute name="maskableRoute" type="xs:boolean" /> + <xs:attribute name="maskableATC" type="xs:boolean" /> + <xs:attribute name="virtual" type="xs:boolean" default="false" /> + <xs:attribute name="signalBoxOcpRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>DEPRECATED: use attribute 'controllerRef' instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="stationOcpRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>DEPRECATED: use attribute 'ocpStationRef' instead</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="distNearestDangerPoint" type="rail:tLengthM" /> + <xs:attribute name="trackDist" type="rail:tLengthM" /> + <xs:attribute name="height" type="rail:tLengthM" /> + </xs:attributeGroup> + + <xs:attributeGroup name="aSignalGroup"> + <xs:attribute name="type" type="rail:tSignalGroupType" /> + </xs:attributeGroup> + + <xs:simpleType name="tSignalGroupType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="distant-main" /> + <xs:enumeration value="station" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tSignalGroup"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aSignalGroup" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tSignalRefInGroup"> + <xs:complexContent> + <xs:extension base="rail:tElementRefInGroup"> + <!-- Possible signalGroup-specific attributes to be added here later --> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tPIG"> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="7" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="tBalise"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attributeGroup ref="rail:aBalise" /> + <xs:attribute name="ndx" type="rail:tPIG"> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tBaliseRefInGroup"> + <xs:complexContent> + <xs:extension base="rail:tElementRefInGroup"> + <!-- Possible baliseGroup-specific attributes to be added here later --> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tBaliseCountryID"> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="1023" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tBaliseGroupID"> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="16383" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tBaliseLinkingAcc"> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="-63" /> + <xs:maxInclusive value="63" /> + </xs:restriction> + </xs:simpleType> + + <xs:attributeGroup name="aBalise"> + <xs:attribute name="countryID" type="rail:tBaliseCountryID" /> + <xs:attribute name="groupID" type="rail:tBaliseGroupID" /> + <xs:attribute name="linkingAccuracy" type="rail:tBaliseLinkingAcc" /> + <xs:attribute name="linkReactionAscending" type="rail:tBaliseLinkReaction" /> + <xs:attribute name="linkReactionDescending" type="rail:tBaliseLinkReaction" /> + <xs:attribute name="staticTelegram" type="xs:string" /> + </xs:attributeGroup> + + <xs:simpleType name="tBaliseLinkReaction"> + <xs:restriction base="xs:string"> + <xs:enumeration value="trainTrip" /> + <xs:enumeration value="applyServiceBrake" /> + <xs:enumeration value="noReaction" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tDetectionObject"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="wheel" /> + <xs:enumeration value="axle" /> + <xs:enumeration value="train" /> + <xs:enumeration value="endOfTrain" /> + <xs:enumeration value="obstacle" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tDetectorMedium"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="mechanical" /> + <xs:enumeration value="hydraulic" /> + <xs:enumeration value="pneumatic" /> + <xs:enumeration value="magnetic" /> + <xs:enumeration value="inductive" /> + <xs:enumeration value="optical" /> + <xs:enumeration value="radio" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tPosInTrack"> + <xs:restriction base="xs:string"> + <xs:enumeration value="center" /> + <xs:enumeration value="leftRail" /> + <xs:enumeration value="leftRailInside" /> + <xs:enumeration value="leftRailOutside" /> + <xs:enumeration value="rightRail" /> + <xs:enumeration value="rightRailInside" /> + <xs:enumeration value="rightRailOutside" /> + <xs:enumeration value="outside" /> + <xs:enumeration value="outsideLeft" /> + <xs:enumeration value="outsideRight" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="tTrainDetector"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="detectionObject" type="rail:tDetectionObject" /> + <xs:attribute name="medium" type="rail:tDetectorMedium" /> + <xs:attribute name="posInTrack" type="rail:tPosInTrack" /> + <xs:attribute name="directionDetection" type="xs:boolean" /> + <xs:attribute name="model" type="xs:string" /> + <xs:attribute name="axleCounting" type="xs:boolean" /> + <xs:attributeGroup ref="rail:aOcpRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="tInsulatedRailSide"> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="left" /> + <xs:enumeration value="right" /> + <xs:enumeration value="both" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="tTrackCircuitBorder"> + <xs:complexContent> + <xs:extension base="rail:tOrientedElement"> + <xs:attribute name="insulatedRail" type="rail:tInsulatedRailSide" /> + <xs:attributeGroup ref="rail:aOcpRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tInfrastructure"> + <xs:complexContent> + <xs:extension base="rail:tGlobalElementWithMetadata"> + <xs:attributeGroup ref="rail:aInfrastructure" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aInfrastructure"> + <xs:attribute name="timetableRef" type="rail:tGenericRef" /> + <xs:attribute name="rollingstockRef" type="rail:tGenericRef" /> + </xs:attributeGroup> + + <xs:complexType name="tInfrastructureVisualization"> + <xs:attribute name="version" type="rail:tRailMLVersion" use="required" /> + <xs:attribute name="infrastructureRef" type="rail:tGenericRef" /> + <xs:attribute name="id" type="rail:tGenericID" use="required" /> + </xs:complexType> + + <xs:complexType name="tPoint"> + <xs:attribute name="x" type="xs:double" use="required" /> + <xs:attribute name="y" type="xs:double" use="required" /> + </xs:complexType> + + <xs:complexType name="tSize"> + <xs:attribute name="width" type="xs:double" use="required" /> + <xs:attribute name="height" type="xs:double" use="required" /> + </xs:complexType> + + <xs:complexType name="tAttribute"> + <xs:attribute name="name" type="xs:string" use="required" /> + <xs:attribute name="value" type="xs:string" use="required" /> + </xs:complexType> </xs:schema> diff --git a/schema/physicalUnits.xsd b/schema/physicalUnits.xsd index 7934ae8..4927969 100644 --- a/schema/physicalUnits.xsd +++ b/schema/physicalUnits.xsd @@ -1,313 +1,399 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> - - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ - - For further information see: http://www.railml.org/ - - Content of this file: - XML Schema for railML(R) 2.0 - Definition of simple types, which represent general units of measure, - used by all sub schemas - </xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="genericRailML.xsd" /> - - <!--*********************************************************--> - <!--Distances and Lengths--> - <!--*********************************************************--> - - <xs:simpleType name="tLength"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="6" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tLengthMM"> - <xs:restriction base="rail:tLength" /> - </xs:simpleType> - - <xs:simpleType name="tLengthM"> - <xs:restriction base="rail:tLength" /> - </xs:simpleType> - - <xs:simpleType name="tLengthKM"> - <xs:restriction base="rail:tLength" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Speeds and velocities--> - <!--*********************************************************--> - - <xs:simpleType name="tSpeed"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="1" /> - <xs:minInclusive value="0" /> - <xs:totalDigits value="5" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tSpeedKmPerHour"> - <xs:restriction base="rail:tSpeed" /> - </xs:simpleType> - - <xs:simpleType name="tSpeedMPerSec"> - <xs:restriction base="rail:tSpeed" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Acceleration--> - <!--*********************************************************--> - - <xs:simpleType name="tAcceleration"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tAccelerationMeterPerSquareSec"> - <xs:restriction base="rail:tAcceleration" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Volume--> - <!--*********************************************************--> - - <xs:simpleType name="tVolume"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" /> - <xs:minInclusive value="0" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tVolumeCubicMeter"> - <xs:restriction base="rail:tVolume" /> - </xs:simpleType> - - <xs:simpleType name="tVolumeLitre"> - <xs:restriction base="rail:tVolume" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Voltage--> - <!--*********************************************************--> - - <xs:simpleType name="tVoltage"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="1" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tVoltageVolt"> - <xs:restriction base="rail:tVoltage" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Resistance--> - <!--*********************************************************--> - - <xs:simpleType name="tResistance"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="4" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tResistanceOhm"> - <xs:restriction base="rail:tResistance" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Inductance--> - <!--*********************************************************--> - - <xs:simpleType name="tInductance"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="6" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tInductanceHenry"> - <xs:restriction base="rail:tInductance" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Magnetic Flux--> - <!--*********************************************************--> - - <xs:simpleType name="tFlux"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="6" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tFluxVoltSecond"> - <xs:restriction base="rail:tFlux" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Force--> - <!--*********************************************************--> - - <xs:simpleType name="tForce"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="0" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tForceNewton"> - <xs:restriction base="rail:tForce" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Power--> - <!--*********************************************************--> - - <xs:simpleType name="tPower"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="0" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tPowerWatt"> - <xs:restriction base="rail:tPower" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Current--> - <!--*********************************************************--> - - <xs:simpleType name="tCurrent"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="1" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tCurrentAmpere"> - <xs:restriction base="rail:tCurrent" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Frequency--> - <!--*********************************************************--> - - <xs:simpleType name="tFrequency"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" /> - <xs:minInclusive value="0" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tFrequencyHertz"> - <xs:restriction base="rail:tFrequency" /> - </xs:simpleType> - - <xs:simpleType name="tRotationalFrequency"> - <xs:restriction base="xs:positiveInteger" /> - </xs:simpleType> - - <xs:simpleType name="tRotationalFrequencyRevolutionsPerMinute"> - <xs:restriction base="rail:tRotationalFrequency" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Weight--> - <!--*********************************************************--> - - <xs:simpleType name="tWeight"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tWeightKG"> - <xs:restriction base="rail:tWeight" /> - </xs:simpleType> - - <xs:simpleType name="tWeightTons"> - <xs:restriction base="rail:tWeight" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Angles--> - <!--*********************************************************--> - - <xs:simpleType name="tAngleDeg"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" /> - <xs:totalDigits value="6" /> - <xs:minInclusive value="-360" /> - <xs:maxInclusive value="360" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tAngleDegFullCircle"> - <xs:restriction base="rail:tAngleDeg"> - <xs:minInclusive value="-180" /> - <xs:maxInclusive value="180" /> - </xs:restriction> - </xs:simpleType> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of simple types, which represent general units of measure, used by all sub schemas</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="genericRailML.xsd" /> + + <xs:simpleType name="tLength"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="6" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tLengthMM"> + <xs:annotation> + <xs:documentation>generic type for length values measured in millimeter</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tLength" /> + </xs:simpleType> + + <xs:simpleType name="tLengthM"> + <xs:annotation> + <xs:documentation>generic type for length values measured in meter</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tLength" /> + </xs:simpleType> + + <xs:simpleType name="tLengthKM"> + <xs:annotation> + <xs:documentation>generic type for length values measured in kilometer</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tLength" /> + </xs:simpleType> + + <xs:simpleType name="tSpeed"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="1" /> + <xs:minInclusive value="0" /> + <xs:totalDigits value="5" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>generic type for speed/velocity values measured in kilometer per hour</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tSpeed" /> + </xs:simpleType> + + <xs:simpleType name="tSpeedMPerSec"> + <xs:annotation> + <xs:documentation>generic type for speed/velocity values measured in meter per second</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tSpeed" /> + </xs:simpleType> + + <xs:simpleType name="tSpeedDegreesPerSecond"> + <xs:annotation> + <xs:documentation>generic type for angular speed/velocity values measured in degree per second</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tAcceleration"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tAccelerationMeterPerSquareSec"> + <xs:annotation> + <xs:documentation>generic type for acceleration values measured in meter per square second</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tAcceleration" /> + </xs:simpleType> + + <xs:simpleType name="tArea"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tAreaSquareMeter"> + <xs:annotation> + <xs:documentation>generic type for area values measured in square meter</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tArea" /> + </xs:simpleType> + + <xs:simpleType name="tVolume"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tVolumeCubicMeter"> + <xs:annotation> + <xs:documentation>generic type for volume values measured in cubic meter</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tVolume" /> + </xs:simpleType> + + <xs:simpleType name="tVolumeLitre"> + <xs:annotation> + <xs:documentation>generic type for volume values measured in litre</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tVolume" /> + </xs:simpleType> + + <xs:simpleType name="tVoltage"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="1" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tVoltageVolt"> + <xs:annotation> + <xs:documentation>generic type for voltage values measured in volt</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tVoltage" /> + </xs:simpleType> + + <xs:simpleType name="tResistance"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="4" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tResistanceOhm"> + <xs:annotation> + <xs:documentation>generic type for electric resistance values measured in ohm</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tResistance" /> + </xs:simpleType> + + <xs:simpleType name="tInductance"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="6" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tInductanceHenry"> + <xs:annotation> + <xs:documentation>generic type for inductance values measured in henry</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tInductance" /> + </xs:simpleType> + + <xs:simpleType name="tFlux"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="6" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tAngleDegQuadrant"> - <xs:restriction base="rail:tAngleDeg"> - <xs:minExclusive value="0" /> - <xs:maxInclusive value="90" /> + <xs:simpleType name="tFluxVoltSecond"> + <xs:annotation> + <xs:documentation>generic type for electric flux values measured in volt*second</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tFlux" /> + </xs:simpleType> + + <xs:simpleType name="tForce"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="0" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tForceNewton"> + <xs:annotation> + <xs:documentation>generic type for force values measured in newton</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tForce" /> + </xs:simpleType> + + <xs:simpleType name="tPower"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="0" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tPowerWatt"> + <xs:annotation> + <xs:documentation>generic type for power values measured in watt</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tPower" /> + </xs:simpleType> + + <xs:simpleType name="tEnergy"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tEnergyKiloWattHours"> + <xs:annotation> + <xs:documentation>generic type for energy values measured in kilowatt*hour</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tEnergy" /> + </xs:simpleType> + + <xs:simpleType name="tCurrent"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="1" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tCurrentAmpere"> + <xs:annotation> + <xs:documentation>generic type for electric current values measured in ampere</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tCurrent" /> + </xs:simpleType> + + <xs:simpleType name="tFrequency"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tFrequencyHertz"> + <xs:annotation> + <xs:documentation>generic type for frequency values measured in hertz</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tFrequency" /> + </xs:simpleType> + + <xs:simpleType name="tRotationalFrequency"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:positiveInteger" /> + </xs:simpleType> + + <xs:simpleType name="tRotationalFrequencyRevolutionsPerMinute"> + <xs:annotation> + <xs:documentation>generic type for rotational frequency values measured in revolutions per minute</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tRotationalFrequency" /> + </xs:simpleType> + + <xs:simpleType name="tWeight"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tWeightKG"> + <xs:annotation> + <xs:documentation>generic type for weight/load values measured in kilogram</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tWeight" /> + </xs:simpleType> + + <xs:simpleType name="tWeightTons"> + <xs:annotation> + <xs:documentation>generic type for weight/load values measured in ton</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tWeight" /> + </xs:simpleType> + + <xs:simpleType name="tAngleDeg"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + <xs:totalDigits value="6" /> + <xs:minInclusive value="-360" /> + <xs:maxInclusive value="360" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tAngleDegFullCircle"> + <xs:annotation> + <xs:documentation>generic type for angle values measured in degree, allowing -180 ... +180</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tAngleDeg"> + <xs:minInclusive value="-180" /> + <xs:maxInclusive value="180" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tAngleDegQuadrant"> + <xs:annotation> + <xs:documentation>generic type for angle values measured in degree, allowing 0 ... +90</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tAngleDeg"> + <xs:minExclusive value="0" /> + <xs:maxInclusive value="90" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tGradient"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tGradientPromille"> + <xs:annotation> + <xs:documentation>generic type for gradient values measured in per thousand/mill</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tGradient" /> + </xs:simpleType> + + <xs:simpleType name="tRadiusM"> + <xs:annotation> + <xs:documentation>generic type for radius values measured in meter</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tLengthM" /> + </xs:simpleType> + + <xs:simpleType name="tUnitName"> + <xs:annotation> + <xs:documentation>enumeration of physical units</xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="m/s" /> + <xs:enumeration value="km/h" /> + <xs:enumeration value="A" /> + <xs:enumeration value="N" /> + <xs:enumeration value="Hz" /> + <xs:enumeration value="%" /> + <xs:enumeration value="V" /> + <xs:enumeration value="W" /> + <xs:enumeration value="VA" /> + <xs:enumeration value="Vs" /> + <xs:enumeration value="1" /> </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!--Angles, gradients, radii--> - <!--*********************************************************--> - - <xs:simpleType name="tGradientPromille"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tRadiusM"> - <xs:restriction base="rail:tLengthM" /> - </xs:simpleType> - - <!--*********************************************************--> - <!--Names of physical units--> - <!--*********************************************************--> - - <xs:simpleType name="tUnitName"> - <xs:annotation> - <xs:documentation> - enumeration of physical units - </xs:documentation> - </xs:annotation> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="m/s" /> - <xs:enumeration value="km/h" /> - <xs:enumeration value="A" /> - <xs:enumeration value="N" /> - <xs:enumeration value="Hz" /> - <xs:enumeration value="%" /> - <xs:enumeration value="V" /> - <xs:enumeration value="W" /> - <xs:enumeration value="VA" /> - <xs:enumeration value="Vs" /> - <xs:enumeration value="1" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> </xs:schema> diff --git a/schema/railML.xsd b/schema/railML.xsd index 42e3a45..08c218c 100644 --- a/schema/railML.xsd +++ b/schema/railML.xsd @@ -1,67 +1,109 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:dc="http://purl.org/dc/elements/1.1/" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of root element "railml", refers to elements of all sub schemas from "xs:include" paths</xs:documentation> + </xs:annotation> - For further information see: http://www.railml.org/ + <xs:include schemaLocation="infrastructure.xsd" /> + <xs:include schemaLocation="rollingstock.xsd" /> + <xs:include schemaLocation="timetable.xsd" /> - Content of this file: - XML Schema for railML(R) 2.0 - Definition of root element "railml", refers to elements of all - sub schemas from "xs:include" paths - </xs:documentation> + <xs:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd"> + <xs:annotation> + <xs:documentation>Portions of this software may use XML schemas Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.</xs:documentation> + <xs:documentation>For further information see: http://dublincore.org/ License link: http://creativecommons.org/licenses/by/3.0/</xs:documentation> </xs:annotation> + </xs:import> - <xs:include schemaLocation="infrastructure.xsd" /> - <xs:include schemaLocation="rollingstock.xsd" /> - <xs:include schemaLocation="timetable.xsd" /> - - <xs:import namespace="http://purl.org/dc/elements/1.1/" - schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd"> + <xs:element name="railml"> + <xs:complexType> + <xs:sequence> + <xs:element name="metadata" type="dc:elementContainer" minOccurs="0"> + <xs:annotation> + <xs:documentation>flexible collection of Dublin Core metadata based on xs:any according to http://dublincore.org/</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="rail:infrastructure" minOccurs="0"> + <xs:annotation> + <xs:documentation>"subschema Infrastructure (IS)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="rail:infrastructureVisualizations" minOccurs="0"> + <xs:annotation> + <xs:documentation>DEPRECATED: moving as 'visualizations' inside 'infrastructure'</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="rail:rollingstock" minOccurs="0"> + <xs:annotation> + <xs:documentation>"subschema Rollingstock (RS)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="rail:timetable" minOccurs="0"> + <xs:annotation> + <xs:documentation>"subschema Timetable (TT)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="version" type="rail:tRailMLVersion"> <xs:annotation> - <xs:documentation> - Portions of this software may use XML schemas - Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. - These are licensed under the Creative Commons 3.0 Attribution license. - - For further information see: http://dublincore.org/ - License link: http://creativecommons.org/licenses/by/3.0/ - </xs:documentation> + <xs:documentation>supported railML version should be declared for software compatibility reasons, valid for all subschemas, don't mix railML versions between subschemas in one XML file</xs:documentation> </xs:annotation> - </xs:import> + </xs:attribute> + </xs:complexType> + + <xs:key name="vehicleKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle" /> + <xs:field xpath="@id" /> + </xs:key> + + <!-- vehicle reference in rollingstock subschema --> + <xs:keyref name="vehicle-vehicleFamilyRefKey" refer="rail:vehicleKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle" /> + <xs:field xpath="@vehicleFamilyRef" /> + </xs:keyref> + <xs:keyref name="vehicle-vehicleRefKey" refer="rail:vehicleKey"> + <xs:selector xpath=".//rail:formations/rail:formation/rail:trainOrder/rail:vehicleRef" /> + <xs:field xpath="@vehicleRef" /> + </xs:keyref> + + <!-- vehicle reference in timetable subschema --> + <xs:keyref name="vehicle-formationTTKeyref" refer="rail:vehicleKey"> + <xs:selector xpath=".//rail:reservationInfo/rail:booking" /> + <xs:field xpath="@vehicleRef" /> + </xs:keyref> + <xs:keyref name="vehicle-rosteringKeyref" refer="rail:vehicleKey"> + <xs:selector xpath=".//rail:rosterings/rail:rostering" /> + <xs:field xpath="@vehicleRef" /> + </xs:keyref> + <xs:keyref name="vehicle-blockPartKeyref" refer="rail:vehicleKey"> + <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> + <xs:field xpath="@vehicleRef" /> + </xs:keyref> + + <xs:key name="formationKey"> + <xs:selector xpath=".//rail:formations/rail:formation" /> + <xs:field xpath="@id" /> + </xs:key> - <!----> - <!-- railml --> - <!-- +- metadata --> - <!-- +- infrastructure --> - <!-- +- infrastructureVisualizations --> - <!-- +- rollingstock --> - <!-- +- timetable --> - <!----> + <!-- formation reference in timetable subschema --> + <xs:keyref name="formation-formationTTKeyref" refer="rail:formationKey"> + <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:formationTT" /> + <xs:field xpath="@formationRef" /> + </xs:keyref> + <xs:keyref name="formation-rosteringKeyref" refer="rail:formationKey"> + <xs:selector xpath=".//rail:rosterings/rail:rostering" /> + <xs:field xpath="@formationRef" /> + </xs:keyref> + <xs:keyref name="formation-blockPartKeyref" refer="rail:formationKey"> + <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> + <xs:field xpath="@formationRef" /> + </xs:keyref> - <xs:element name="railml"> - <xs:complexType> - <xs:sequence> - <xs:element name="metadata" type="dc:elementContainer" - minOccurs="0" /> - <xs:element ref="rail:infrastructure" minOccurs="0" /> - <xs:element ref="rail:infrastructureVisualizations" - minOccurs="0" /> - <xs:element ref="rail:rollingstock" minOccurs="0" /> - <xs:element ref="rail:timetable" minOccurs="0" /> - </xs:sequence> - <xs:attribute name="version" type="rail:tRailMLVersion" /> - </xs:complexType> - </xs:element> + </xs:element> </xs:schema> diff --git a/schema/railwayBaseTypes.xsd b/schema/railwayBaseTypes.xsd index 066145e..fa094b8 100644 --- a/schema/railwayBaseTypes.xsd +++ b/schema/railwayBaseTypes.xsd @@ -1,304 +1,428 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by more than one sub schema</xs:documentation> + </xs:annotation> - For further information see: http://www.railml.org/ + <xs:include schemaLocation="genericRailML.xsd" /> + <xs:include schemaLocation="railwayUnits.xsd" /> - Content of this file: - XML Schema for railML(R) 2.0 - Definition of attribute groups, simple and complex types, - used by more than one sub schema - </xs:documentation> + <xs:complexType name="tTimeSpan"> + <xs:annotation> + <xs:documentation>generic type for time spans/periods in required context</xs:documentation> </xs:annotation> + <xs:attribute name="from" type="xs:time" use="required" /> + <xs:attribute name="until" type="xs:time" use="required" /> + </xs:complexType> - <xs:include schemaLocation="genericRailML.xsd" /> - <xs:include schemaLocation="railwayUnits.xsd" /> - - <!--*********************************************************--> - <!--Time and time spans--> - <!--*********************************************************--> - - <xs:complexType name="tTimeSpan"> - <xs:attribute name="from" type="xs:time" use="required" /> - <xs:attribute name="until" type="xs:time" use="required" /> - </xs:complexType> - - <xs:attributeGroup name="aPeriodTimeSpan"> - <xs:attribute name="startTime" type="xs:time" /> - <xs:attribute name="endTime" type="xs:time" /> - </xs:attributeGroup> + <xs:attributeGroup name="aPeriodTimeSpan"> + <xs:annotation> + <xs:documentation>generic type for time spans/periods in optional context</xs:documentation> + </xs:annotation> + <xs:attribute name="startTime" type="xs:time" /> + <xs:attribute name="endTime" type="xs:time" /> + </xs:attributeGroup> - <xs:attributeGroup name="aTimePeriod"> - <xs:attribute name="startDate" type="xs:date" /> - <xs:attribute name="endDate" type="xs:date" /> - </xs:attributeGroup> + <xs:attributeGroup name="aTimePeriod"> + <xs:annotation> + <xs:documentation>generic type for time spans/periods regarding its dates</xs:documentation> + </xs:annotation> + <xs:attribute name="startDate" type="xs:date" /> + <xs:attribute name="endDate" type="xs:date" /> + </xs:attributeGroup> - <!--*********************************************************--> - <!-- Attributes for braking systems --> - <!--*********************************************************--> + <xs:simpleType name="tTimeZone"> + <xs:annotation> + <xs:documentation>timezone as defined in the tz database, e.g. "America/New_York"</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string" /> + </xs:simpleType> - <xs:complexType name="tBasicBrakeType"> - <xs:annotation> - <xs:documentation> - settings and characteristic of a particular brake - type or brake application position - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="auxiliaryBrakes" minOccurs="0"> - <xs:annotation> - <xs:documentation>provides access to the list of possible - auxiliary brake systems</xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:attributeGroup ref="rail:aAuxiliaryBrakes" /> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attributeGroup ref="rail:aBasicBrakeAttributes" /> - </xs:complexType> + <xs:complexType name="tBasicBrakeType"> + <xs:annotation> + <xs:documentation>settings and characteristic of a particular brake type or brake application position</xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="auxiliaryBrakes" minOccurs="0"> + <xs:annotation> + <xs:documentation>provides access to the list of possible auxiliary brake systems</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:attributeGroup ref="rail:aAuxiliaryBrakes" /> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attributeGroup ref="rail:aBasicBrakeAttributes" /> + </xs:complexType> - <xs:attributeGroup name="aBasicBrakeAttributes"> - <xs:attribute name="brakeType" type="rail:tBrakeType" use="required"> - <xs:annotation> - <xs:documentation>vacuum or compressed air brake, hand brake, - parking brake, cable brake</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="airBrakeApplicationPosition" type="rail:tAirBrakeApplicationPosition" - use="required"> - <xs:annotation> - <xs:documentation>base brake switch, one of G, P or R - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="regularBrakeMass" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation>brake mass for normal brake operations of - none-automatic brakes</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="emergencyBrakeMass" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation>brake mass for emergency brake operations, - differs from regular brake mass depending on auxiliary brakes - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxDeceleration" type="rail:tAccelerationMeterPerSquareSec"> - <xs:annotation> - <xs:documentation>alternative specification of maximum - possible momentary deceleration</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="meanDeceleration" type="rail:tAccelerationMeterPerSquareSec"> - <xs:annotation> - <xs:documentation>alternative specification of effective mean - deceleration of a whole brake operation - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Types of braking systems --> - <!--*********************************************************--> + <xs:attributeGroup name="aBasicBrakeAttributes"> + <xs:attribute name="brakeType" type="rail:tBrakeType" use="required"> + <xs:annotation> + <xs:documentation>vacuum or compressed air brake, hand brake, parking brake, cable brake</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="airBrakeApplicationPosition" type="rail:tAirBrakeApplicationPosition"> + <xs:annotation> + <xs:documentation>base brake switch, one of G, P or R</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="regularBrakeMass" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>brake mass for normal brake operations of none-automatic brakes</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="emergencyBrakeMass" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>brake mass for emergency brake operations, differs from regular brake mass depending on auxiliary brakes</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxDeceleration" type="rail:tAccelerationMeterPerSquareSec"> + <xs:annotation> + <xs:documentation>alternative specification of maximum possible momentary deceleration</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanDeceleration" type="rail:tAccelerationMeterPerSquareSec"> + <xs:annotation> + <xs:documentation>alternative specification of effective mean deceleration of a whole brake operation</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> - <xs:simpleType name="tBrakeType"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="compressedAir" /> - <xs:enumeration value="vacuum" /> - <xs:enumeration value="handBrake" /> - <xs:enumeration value="parkingBrake" /> - <xs:enumeration value="cableBrake" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> + <xs:simpleType name="tBrakeType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="compressedAir"> + <xs:annotation> + <xs:documentation>de: Druckluftbremse</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="vacuum"> + <xs:annotation> + <xs:documentation>de: Saugluftbremse</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="handBrake" /> + <xs:enumeration value="parkingBrake" /> + <xs:enumeration value="cableBrake"> + <xs:annotation> + <xs:documentation>de: Seilzugbremse</xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> - <!--*********************************************************--> - <!-- Positions for air brake application --> - <!-- G=goods, P=passenger, R=rapid --> - <!--*********************************************************--> + <xs:simpleType name="tAirBrakeApplicationPosition"> + <xs:restriction base="xs:string"> + <xs:enumeration value="N/A" /> + <xs:enumeration value="G"> + <xs:annotation> + <xs:documentation>Goods</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="P"> + <xs:annotation> + <xs:documentation>Passenger</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="R"> + <xs:annotation> + <xs:documentation>Rapid</xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tAirBrakeApplicationPosition"> - <xs:restriction base="xs:string"> - <xs:enumeration value="N/A" /> - <xs:enumeration value="G" /> - <xs:enumeration value="P" /> - <xs:enumeration value="R" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tBrakePercentage"> + <xs:annotation> + <xs:documentation>Brake percentage as value of braking performance in relation to vehicle weight</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:integer"> + <xs:maxInclusive value="225" /> + <xs:minInclusive value="6" /> + </xs:restriction> + </xs:simpleType> - <!--*********************************************************--> - <!-- Brake percentage as value of braking performance in relation to vehicle weight --> - <!--*********************************************************--> - - <xs:simpleType name="tBrakePercentage"> - <xs:restriction base="xs:integer"> - <xs:maxInclusive value="225"/> - <xs:minInclusive value="6"/> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Auxiliary brake systems --> - <!--*********************************************************--> + <xs:attributeGroup name="aAuxiliaryBrakes"> + <xs:annotation> + <xs:documentation>de: Zusatz-/Hilfsbremsen</xs:documentation> + </xs:annotation> + <xs:attribute name="brakeUse" type="rail:tBrakeUse" /> + <xs:attribute name="H" type="xs:boolean"> + <xs:annotation> + <xs:documentation>de: hydrodynamisch</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="E" type="xs:boolean"> + <xs:annotation> + <xs:documentation>de: elektro-motorisch</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="Mg" type="xs:boolean"> + <xs:annotation> + <xs:documentation>de: Magnetschienenbremse</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="Wb" type="xs:boolean"> + <xs:annotation> + <xs:documentation>de: Wirbelstrombremse</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="ep" type="xs:boolean"> + <xs:annotation> + <xs:documentation>de: elektro-pneumatisch</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> - <xs:attributeGroup name="aAuxiliaryBrakes"> - <xs:attribute name="H" type="xs:boolean" /> - <xs:attribute name="E" type="xs:boolean" /> - <xs:attribute name="Mg" type="xs:boolean" /> - <xs:attribute name="Wb" type="xs:boolean" /> - <xs:attribute name="ep" type="xs:boolean" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Protection --> - <!--*********************************************************--> + <xs:simpleType name="tBrakeUse"> + <xs:annotation> + <xs:documentation>planned/calculated usage of specified brakes</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="unknown" /> + <xs:enumeration value="normal" /> + <xs:enumeration value="emergency" /> + <xs:enumeration value="both" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tTrainProtectionMedium"> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="mechanical" /> - <xs:enumeration value="inductive" /> - <xs:enumeration value="magnetic" /> - <xs:enumeration value="optical" /> - <xs:enumeration value="radio" /> - <xs:enumeration value="rail" /> - <xs:enumeration value="cable" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tTrainProtectionMedium"> + <xs:annotation> + <xs:documentation>classification of a train protection system by physical medium</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="mechanical" /> + <xs:enumeration value="electric" /> + <xs:enumeration value="inductive" /> + <xs:enumeration value="magnetic" /> + <xs:enumeration value="optical" /> + <xs:enumeration value="radio" /> + <xs:enumeration value="rail" /> + <xs:enumeration value="cable" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tTrainProtectionMonitoring"> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="intermittent" /> - <xs:enumeration value="continuous" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tTrainProtectionMonitoring"> + <xs:annotation> + <xs:documentation>classification of a train protection system by coverage</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="intermittent" /> + <xs:enumeration value="continuous" /> + </xs:restriction> + </xs:simpleType> - <!--*********************************************************--> - <!-- Places in passenger cars --> - <!--*********************************************************--> + <xs:simpleType name="tInterlockingTypes"> + <xs:annotation> + <xs:documentation>classification of an interlocking system by kind of implementation</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="mechanical" /> + <xs:enumeration value="electro-mechanical" /> + <xs:enumeration value="electrical"> + <xs:annotation> + <xs:documentation>de: Gleisbildstellwerk, Spurplanstellwerk ...</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="electronical"> + <xs:annotation> + <xs:documentation>de: ESTW</xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> - <xs:complexType name="tPlaces"> + <xs:complexType name="ePassengerFacility"> + <xs:sequence> + <xs:element name="places" type="rail:tPlaces" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>list of place capacity of the vehicle divided by particular categories</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="service" type="rail:tService" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> - <xs:documentation> - description of any places of the passenger car(part) - </xs:documentation> + <xs:documentation>description of any additional service provided per vehicle</xs:documentation> </xs:annotation> - <xs:attributeGroup ref="rail:aPlaces" /> - </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> - <xs:attributeGroup name="aPlaces"> - <xs:attribute name="category" type="rail:tPlaceCategory" use="required" /> - <xs:attribute name="count" type="rail:tCounter" use="required" /> - <xs:attribute name="description" type="rail:tElementDescription" /> - </xs:attributeGroup> + <xs:complexType name="tPlaces"> + <xs:annotation> + <xs:documentation>description of any places of the passenger car(part)</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aPlaces" /> + </xs:complexType> - <xs:simpleType name="tPlaceCategory"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="class1" /> - <xs:enumeration value="class2" /> - <xs:enumeration value="class3" /> - <xs:enumeration value="standing" /> - <xs:enumeration value="wheelchair" /> - <xs:enumeration value="bicycle" /> - <xs:enumeration value="couchette" /> - <xs:enumeration value="bed" /> - <xs:enumeration value="chair" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Service in passenger cars --> - <!--*********************************************************--> + <xs:attributeGroup name="aPlaces"> + <xs:attribute name="category" type="rail:tPlaceCategory" use="required" /> + <xs:attribute name="count" type="rail:tCounter" use="required"> + <xs:annotation> + <xs:documentation>count="0" means: there is no place of this category</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="description" type="rail:tElementDescription" /> + </xs:attributeGroup> - <xs:complexType name="tService"> - <xs:annotation> - <xs:documentation> - description of any service provided by the passenger car(part) - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aService" /> - </xs:complexType> + <xs:simpleType name="tPlaceCategory"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="class1" /> + <xs:enumeration value="class2" /> + <xs:enumeration value="class3" /> + <xs:enumeration value="standing" /> + <xs:enumeration value="wheelchair" /> + <xs:enumeration value="bicycle" /> + <xs:enumeration value="couchette" /> + <xs:enumeration value="bed" /> + <xs:enumeration value="chair" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tService"> + <xs:annotation> + <xs:documentation>description of any service provided by the passenger car(part)</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aService" /> + </xs:complexType> + + <xs:attributeGroup name="aService"> + <xs:attribute name="name" type="rail:tGenericName" use="required" /> + <xs:attribute name="count" type="rail:tCounter" use="required"> + <xs:annotation> + <xs:documentation>count="0" means: there is not such a service</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="description" type="rail:tElementDescription" /> + <xs:attribute name="value" type="xs:decimal"> + <xs:annotation> + <xs:documentation>generic decimal value for additional information of the service, meaning should be clarified by its "description"</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> - <xs:attributeGroup name="aService"> - <xs:attribute name="name" type="rail:tGenericName" use="required" /> - <xs:attribute name="count" type="rail:tCounter" use="required" /> - <xs:attribute name="description" type="rail:tElementDescription" /> - <xs:attribute name="value" type="xs:decimal" /> - <xs:attributeGroup ref="rail:anyAttribute" /> - </xs:attributeGroup> + <xs:simpleType name="tNationalSystemsType"> + <xs:annotation> + <xs:documentation>list of common european train control/protection systems</xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="ALSEN" /> + <xs:enumeration value="ALSN" /> + <xs:enumeration value="ASFA" /> + <xs:enumeration value="ATB" /> + <xs:enumeration value="ATBEG" /> + <xs:enumeration value="ATBEN" /> + <xs:enumeration value="ATC" /> + <xs:enumeration value="ATSP" /> + <xs:enumeration value="ATSS" /> + <xs:enumeration value="AWS" /> + <xs:enumeration value="BACC" /> + <xs:enumeration value="CIR-ELKE" /> + <xs:enumeration value="CIR-ELKE2" /> + <xs:enumeration value="Crocodile" /> + <xs:enumeration value="CSS" /> + <xs:enumeration value="DATC" /> + <xs:enumeration value="EBICAB" /> + <xs:enumeration value="EVM120" /> + <xs:enumeration value="EVM160" /> + <xs:enumeration value="Fahrsp" /> + <xs:enumeration value="GWATP" /> + <xs:enumeration value="Indusi54" /> + <xs:enumeration value="Indusi60" /> + <xs:enumeration value="Indusi60R" /> + <xs:enumeration value="Integra-Signum" /> + <xs:enumeration value="KHP" /> + <xs:enumeration value="KLUBU" /> + <xs:enumeration value="KVB" /> + <xs:enumeration value="LS" /> + <xs:enumeration value="LS90" /> + <xs:enumeration value="LZB" /> + <xs:enumeration value="Memor" /> + <xs:enumeration value="Memor2" /> + <xs:enumeration value="Mirel" /> + <xs:enumeration value="PZ80" /> + <xs:enumeration value="PZB90" /> + <xs:enumeration value="RS4c" /> + <xs:enumeration value="SAUTC" /> + <xs:enumeration value="SAUTCM" /> + <xs:enumeration value="SAUTU" /> + <xs:enumeration value="SCMT" /> + <xs:enumeration value="SELCAB" /> + <xs:enumeration value="SHP" /> + <xs:enumeration value="SSC" /> + <xs:enumeration value="TBL" /> + <xs:enumeration value="TPWS" /> + <xs:enumeration value="TVM300" /> + <xs:enumeration value="TVM430" /> + <xs:enumeration value="ZSI127" /> + <xs:enumeration value="ZSI90" /> + <xs:enumeration value="ZSL90" /> + <xs:enumeration value="ZST90" /> + <xs:enumeration value="ZUB121" /> + <xs:enumeration value="ZUB122" /> + <xs:enumeration value="ZUB123" /> + <xs:enumeration value="ZUB262" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> - <!--*********************************************************--> - <!-- Type of national train protection/train control systems --> - <!--*********************************************************--> + <xs:simpleType name="tLineClassificationType"> + <xs:annotation> + <xs:documentation>according RIV</xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="A" /> + <xs:enumeration value="B1" /> + <xs:enumeration value="B2" /> + <xs:enumeration value="B3" /> + <xs:enumeration value="B4" /> + <xs:enumeration value="C1" /> + <xs:enumeration value="C2" /> + <xs:enumeration value="C3" /> + <xs:enumeration value="C4" /> + <xs:enumeration value="CM2" /> + <xs:enumeration value="CM3" /> + <xs:enumeration value="CM4" /> + <xs:enumeration value="D2" /> + <xs:enumeration value="D3" /> + <xs:enumeration value="D4" /> + <xs:enumeration value="E" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> - <xs:simpleType name="tNationalSystemsType"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="ATB" /> - <xs:enumeration value="ATC" /> - <xs:enumeration value="AWS" /> - <xs:enumeration value="ALSN" /> - <xs:enumeration value="Crocodile" /> - <xs:enumeration value="Memor" /> - <xs:enumeration value="EVM120" /> - <xs:enumeration value="EBICAB" /> - <xs:enumeration value="SELCAB" /> - <xs:enumeration value="ASFA" /> - <xs:enumeration value="Indusi54" /> - <xs:enumeration value="Indusi60R" /> - <xs:enumeration value="PZ80" /> - <xs:enumeration value="PZB90" /> - <xs:enumeration value="Integra-Signum" /> - <xs:enumeration value="KVB" /> - <xs:enumeration value="LS90" /> - <xs:enumeration value="LZB" /> - <xs:enumeration value="CIR-ELKE" /> - <xs:enumeration value="Mirel" /> - <xs:enumeration value="SHP" /> - <xs:enumeration value="RS4c" /> - <xs:enumeration value="SCMT" /> - <xs:enumeration value="SSC" /> - <xs:enumeration value="TBL" /> - <xs:enumeration value="TVM300" /> - <xs:enumeration value="TVM430" /> - <xs:enumeration value="TPWS" /> - <xs:enumeration value="ZUB121" /> - <xs:enumeration value="ZUB122" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - </xs:schema> diff --git a/schema/railwayUnits.xsd b/schema/railwayUnits.xsd index 21d0e41..a5f199c 100644 --- a/schema/railwayUnits.xsd +++ b/schema/railwayUnits.xsd @@ -1,92 +1,110 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of simple types, which represent railway specific units of measure and enumeration lists, used by all sub schemas</xs:documentation> + </xs:annotation> - For further information see: http://www.railml.org/ + <xs:include schemaLocation="physicalUnits.xsd" /> - Content of this file: - XML Schema for railML(R) 2.0 - Definition of simple types, which represent railway specific - units of measure and enumeration lists, used by all sub schemas - </xs:documentation> + <xs:simpleType name="tMeterload"> + <xs:annotation> + <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation> </xs:annotation> + <xs:restriction base="xs:decimal"> + <xs:fractionDigits value="3" fixed="true" /> + </xs:restriction> + </xs:simpleType> - <xs:include schemaLocation="physicalUnits.xsd" /> - - <xs:simpleType name="tElectrificationVoltage"> - <xs:restriction base="rail:tVoltageVolt"> - <xs:enumeration value="600" /> - <xs:enumeration value="750" /> - <xs:enumeration value="1500" /> - <xs:enumeration value="3000" /> - <xs:enumeration value="15000" /> - <xs:enumeration value="25000" /> - <xs:enumeration value="50000" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tMeterload"> - <xs:restriction base="xs:decimal"> - <xs:fractionDigits value="3" fixed="true" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tMeterloadTonsPerMeter"> + <xs:annotation> + <xs:documentation>generic type for load per meter values measured in ton per meter</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tMeterload" /> + </xs:simpleType> - <xs:simpleType name="tMeterloadTonsPerMeter"> - <xs:restriction base="rail:tMeterload" /> - </xs:simpleType> + <xs:simpleType name="tLaxDirection"> + <xs:annotation> + <xs:documentation>generic type for direction statements</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="up" /> + <xs:enumeration value="down" /> + <xs:enumeration value="unknown" /> + <xs:enumeration value="none" /> + <xs:enumeration value="both" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tInterlockingTypes"> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="mechanical" /> - <xs:enumeration value="electro-mechanical" /> - <xs:enumeration value="electrical" /> - <xs:enumeration value="electronical" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tExtendedDirection"> + <xs:annotation> + <xs:documentation>generic type for more constrained direction statements</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tLaxDirection"> + <xs:enumeration value="up" /> + <xs:enumeration value="down" /> + <xs:enumeration value="unknown" /> + <xs:enumeration value="none" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tDirValidity"> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="up" /> - <xs:enumeration value="down" /> - <xs:enumeration value="both" /> - <xs:enumeration value="unknown" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tDelimitedDirection"> + <xs:annotation> + <xs:documentation>generic type for more constrained direction statements</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tLaxDirection"> + <xs:enumeration value="up" /> + <xs:enumeration value="down" /> + <xs:enumeration value="unknown" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tFlowDirection"> - <xs:restriction base="xs:string"> - <xs:enumeration value="in" /> - <xs:enumeration value="out" /> - <xs:enumeration value="both" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tFlowDirection"> + <xs:annotation> + <xs:documentation>extensible generic type for flow statements</xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="in" /> + <xs:enumeration value="out" /> + <xs:enumeration value="both" /> + <xs:enumeration value="unknown" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> - <xs:simpleType name="tTrainCategory"> - <xs:restriction base="xs:string" /> - </xs:simpleType> + <xs:simpleType name="tTrainCategory"> + <xs:annotation> + <xs:documentation>generic type for category names of trains; allowing digits, letters and whitespaces; length not limited</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string" /> + </xs:simpleType> - <xs:simpleType name="tTrainAlignment"> - <xs:restriction base="xs:string"> - <xs:enumeration value="head" /> - <xs:enumeration value="center" /> - <xs:enumeration value="rear" /> - </xs:restriction> - </xs:simpleType> + <xs:simpleType name="tTrainAlignment"> + <xs:annotation> + <xs:documentation>generic type for the alignment of a train relative to some objective in the used context</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="head" /> + <xs:enumeration value="center" /> + <xs:enumeration value="rear" /> + </xs:restriction> + </xs:simpleType> - <xs:simpleType name="tEffortNewton"> - <xs:restriction base="rail:tForce" /> - </xs:simpleType> + <xs:simpleType name="tEffortNewton"> + <xs:annotation> + <xs:documentation>generic type for effort values measured in newton</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tForceNewton" /> + </xs:simpleType> </xs:schema> diff --git a/schema/rollingstock.xsd b/schema/rollingstock.xsd index f508514..45f172e 100644 --- a/schema/rollingstock.xsd +++ b/schema/rollingstock.xsd @@ -1,884 +1,730 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of elements (partially hidden as complex type) for rollingstock sub schema (RS), uses rollingstock types and attribute groups from "xs:include" path</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="rollingstockTypes.xsd" /> + + <xs:element name="rollingstock"> + <xs:complexType> + <xs:annotation> + <xs:documentation>container for rolling stock data of single vehicles and train formations</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tRollingstock"> + <xs:sequence> + <xs:element name="vehicles" type="rail:eVehicles" minOccurs="0"> + <xs:annotation> + <xs:documentation>container for single vehicle data or vehicle family data</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="formations" type="rail:eFormations" minOccurs="0"> + <xs:annotation> + <xs:documentation>container for complete train formations or sets of vehicles</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:key name="etcsKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:etcs" /> + <xs:field xpath="@id" /> + </xs:key> + + <xs:key name="specificTransmissionModuleKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:etcs/rail:specificTransmissionModule" /> + <xs:field xpath="@id" /> + </xs:key> + + <xs:key name="nationalSystemKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:nationalSystem" /> + <xs:field xpath="@id" /> + </xs:key> + + <xs:key name="trainRadioKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:trainRadio" /> + <xs:field xpath="@id" /> + </xs:key> + + <xs:key name="otherEquipmentKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:otherEquipment" /> + <xs:field xpath="@id" /> + </xs:key> + + <xs:key name="energyStorageKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:energyStorage" /> + <xs:field xpath="@id" /> + </xs:key> + + <xs:key name="propulsionKey"> + <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:propulsion" /> + <xs:field xpath="@id" /> + </xs:key> + + </xs:element> + + <xs:complexType name="eVehicles"> + <xs:sequence> + <xs:element name="vehicle" type="rail:eVehicle" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>data related to single vehicle or vehicle family</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eVehicle"> + <xs:complexContent> + <xs:extension base="rail:tVehicle"> + <xs:sequence> + <xs:element name="classification" type="rail:eClassification" minOccurs="0"> + <xs:annotation> + <xs:documentation>general management and classification data of vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="engine" type="rail:eEngine" minOccurs="0"> + <xs:annotation> + <xs:documentation>engine data about a motor car or locomotive</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="wagon" type="rail:eWagon" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical and payload data about a (motor) car or locomotive</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="vehicleBrakes" type="rail:eVehicleBrakes" minOccurs="0"> + <xs:annotation> + <xs:documentation>data about brake systems independent from propulsion</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="loadLimitMatrix" type="rail:eLoadLimitMatrix" minOccurs="0"> + <xs:annotation> + <xs:documentation>matrix of permissible speed, line classification and payload</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="curvingLimitation" type="rail:eCurvingLimitation" minOccurs="0"> + <xs:annotation> + <xs:documentation>list of permissible curve radius in horizontal and vertical direction</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eClassification"> + <xs:sequence> + <xs:element name="manufacturer" type="rail:tManufacturer" minOccurs="0"> + <xs:annotation> + <xs:documentation>manufacturer data related to the vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="operator" type="rail:tOperator" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>general operator specific vehicle data</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="eEngine"> <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. + <xs:documentation>engine data about a motor car or locomotive, may be used in conjunction with 'wagon'</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tEngine"> + <xs:sequence> + <xs:element name="propulsion" type="rail:ePropulsion" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="pantograph" type="rail:ePantograph" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>technical data about the installed pantographs of a vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="energyStorage" type="rail:eStorage" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>technical data about the installed energy storage devices of a vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="monitoring" type="rail:eMonitoring" minOccurs="0"> + <xs:annotation> + <xs:documentation>types of signalling systems fitted to the vehicle</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ + <xs:complexType name="ePantograph"> + <xs:annotation> + <xs:documentation>technical data about the installed pantographs of a vehicle</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tPantograph"> + <xs:sequence> + <xs:element name="dedicatedSupplySystem" type="rail:tElectrificationSystem" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>technical data of the supply system the pantograph is used for</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eStorage"> + <xs:complexContent> + <xs:extension base="rail:tStorage"> + <xs:sequence> + <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>detailed efficiency of energy storage device</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - For further information see: http://www.railml.org/ + <xs:complexType name="ePropulsion"> + <xs:annotation> + <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tPropulsion"> + <xs:sequence> + <xs:element name="transformer" type="rail:eTransformer" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of main transformer</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="fourQuadrantChopper" type="rail:eFourQuadrantChopper" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of inverter between OHL/transformer and link circuit</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="link" type="rail:tLink" minOccurs="0"> + <xs:annotation> + <xs:documentation>nominal values of link circuit between input inverter and motor inverter</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tractionInverter" type="rail:eTractionInverter" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of inverter between link circuit and motors</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tractionMotor" type="rail:eTractionMotor" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of traction motor</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="diesel" type="rail:tDieselEngine" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of diesel engine</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="gear" type="rail:eGear" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of transmission system between motor and wheel</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="auxiliarySupply" type="rail:eAuxiliarySupply" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>technical data of auxiliary systems (supply and consumption)</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tractiveEffort" type="rail:tEffortCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>mechanical tractive effort at wheel vs. speed by propulsion system</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="brakeEffort" type="rail:tEffortCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>mechanical brake effort at wheel vs. speed by propulsion system</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tractiveCurrent" type="rail:tCurrentCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>net current of the entire propulsion system as curve vs. speed for traction mode</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="brakeCurrent" type="rail:tCurrentCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>net current of the entire propulsion system as curve vs. speed for braking mode</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tractiveCurrentLimitation" type="rail:tCurrentLimitation" minOccurs="0"> + <xs:annotation> + <xs:documentation>limitation curve of net current of the entire propulsion system vs. net voltage for traction mode</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="brakeCurrentLimitation" type="rail:tCurrentLimitation" minOccurs="0"> + <xs:annotation> + <xs:documentation>limitation curve of net current of the entire propulsion system vs. net voltage for braking mode</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tractiveVehicleEfficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>efficiency of the entire propulsion system as curve vs. speed or effort for traction mode</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="brakeVehicleEfficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>efficiency of the entire propulsion system as curve vs. speed or effort for braking mode</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="rackTraction" type="rail:tRackTractionType" minOccurs="0"> + <xs:annotation> + <xs:documentation>data about rack traction equipment of the vehicle used for propulsion</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTransformer"> + <xs:complexContent> + <xs:extension base="rail:tTransformer"> + <xs:sequence> + <xs:element name="winding" type="rail:tWinding" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>nominal values of each transformer winding</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>transformer efficiency vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eFourQuadrantChopper"> + <xs:complexContent> + <xs:extension base="rail:tFourQuadrantChopper"> + <xs:sequence> + <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>four-quadrant-chopper efficiency vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="phi" type="rail:tCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>phase angle of the real power to the apparent power as curve for the entire propulsion system</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTractionInverter"> + <xs:complexContent> + <xs:extension base="rail:tTractionInverter"> + <xs:sequence> + <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>traction inverter efficiency vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="pulsePattern" type="rail:ePulsePattern" minOccurs="0"> + <xs:annotation> + <xs:documentation>puls pattern of the traction inverter</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="ePulsePattern"> + <xs:sequence> + <xs:element name="valueTable"> + <xs:annotation> + <xs:documentation>table of values vs. arbitrary variable</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="rail:tValueTable" /> + </xs:complexContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTractionMotor"> + <xs:complexContent> + <xs:extension base="rail:tTractionMotor"> + <xs:sequence> + <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>traction motor efficiency vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="mechanicalLosses" type="rail:tLosses" minOccurs="0"> + <xs:annotation> + <xs:documentation>traction motor mechanical losses vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eGear"> + <xs:complexContent> + <xs:extension base="rail:tGear"> + <xs:sequence> + <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>transmission efficiency vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eAuxiliarySupply"> + <xs:complexContent> + <xs:extension base="rail:tAuxiliarySupply"> + <xs:sequence> + <xs:element name="dedicatedSupplySystem" type="rail:tAuxiliarySupplySystem" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>list of available supply systems for auxiliaries</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eMonitoring"> + <xs:complexContent> + <xs:extension base="rail:tMonitoring"> + <xs:sequence> + <xs:element name="etcs" type="rail:eETCS" minOccurs="0"> + <xs:annotation> + <xs:documentation>capabilities with respect to European Train Control System</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="nationalSystem" type="rail:tNationalSystem" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>list of installed national train protection/control systems</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="trainRadio" type="rail:eTrainRadio" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>list of installed train radio systems for communication</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="otherEquipment" type="rail:tOtherEquipment" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>list of other (non-safety) installed train equipment</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - Content of this file: - XML Schema for railML(R) 2.0 - Definition of elements (partially hidden as complex type) for - rollingstock sub schema (RS), uses rollingstock types and - attribute groups from "xs:include" path - </xs:documentation> + <xs:complexType name="eETCS"> + <xs:annotation> + <xs:documentation>data about installed ETCS system</xs:documentation> </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tETCS"> + <xs:sequence> + <xs:element name="specificTransmissionModule" type="rail:tSpecificTransmissionModule" minOccurs="0"> + <xs:annotation> + <xs:documentation>data for special transmission modules of ETCS equipment</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - <xs:include schemaLocation="rollingstockTypes.xsd" /> + <xs:complexType name="eTrainRadio"> + <xs:annotation> + <xs:documentation>train radio</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tTrainRadio"> + <xs:sequence> + <xs:element name="radioSystem" type="rail:tRadioSystem" minOccurs="0"> + <xs:annotation> + <xs:documentation>list of available radio systems for communication like 'GSM-R'</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - <!----> - <!-- rollingstock --> - <!-- +- vehicles --> - <!-- +- formations --> - <!----> + <xs:complexType name="eWagon"> + <xs:annotation> + <xs:documentation>data about the car body of a vehicle and its payload</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tWagon"> + <xs:sequence> + <xs:element name="passenger" type="rail:ePassenger" minOccurs="0"> + <xs:annotation> + <xs:documentation>data for passenger cars</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="goods" type="rail:eGoods" minOccurs="0"> + <xs:annotation> + <xs:documentation>data for freight cars</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="auxiliarySupplySystem" type="rail:tElectrificationSystem" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>installed supply systems for auxiliaries in the vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="driversCab" type="rail:tDriversCabType" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>data about each drivers cab of the vehicle</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="rackTraction" type="rail:tRackTractionType" minOccurs="0"> + <xs:annotation> + <xs:documentation>data about rack traction equipment of the vehicle used for braking only</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="couplers" type="rail:eCouplers" minOccurs="0"> + <xs:annotation> + <xs:documentation>data for couplers between wagons</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="ePassenger"> + <xs:complexContent> + <xs:extension base="rail:tPassenger"> + <xs:sequence> + <xs:element name="gangway" type="rail:tGangway" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>description of gangway features between vehicles</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="doors" type="rail:tDoors" minOccurs="0"> + <xs:annotation> + <xs:documentation>data about door dimensions</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="tilting" type="rail:tTilting" minOccurs="0"> + <xs:annotation> + <xs:documentation>data about carbody tilting system</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eGoods"> + <xs:complexContent> + <xs:extension base="rail:tGoods"> + <xs:sequence> + <xs:element name="service" type="rail:tService" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>description of any additional service provided per vehicle like car or truck ports</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eCouplers"> + <xs:sequence> + <xs:element name="mechanicalCoupler" type="rail:eMechanicalCoupler" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>container for available mechanical couplers between wagons</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="pneumaticCoupler" type="rail:ePneumaticCoupler" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>container for available pneumatic couplers between wagons</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="electricalCoupler" type="rail:eElectricalCoupler" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>container for available electrical couplers between wagons</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eMechanicalCoupler"> + <xs:complexContent> + <xs:extension base="rail:tMechanicalWagonCouplerType" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="ePneumaticCoupler"> + <xs:complexContent> + <xs:extension base="rail:tPneumaticWagonCouplerType" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eElectricalCoupler"> + <xs:complexContent> + <xs:extension base="rail:tElectricalWagonCouplerType" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eVehicleBrakes"> + <xs:annotation> + <xs:documentation>data about brake systems independent from propulsion</xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="vehicleBrake" type="rail:eVehicleBrake" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>settings and characteristic of a particular brake type or brake application position</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="mechanicalBrakeEffort" type="rail:tEffortCurve" minOccurs="0"> + <xs:annotation> + <xs:documentation>mechanical brake effort at wheel vs. speed by brake systems without propulsion</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="eddyCurrentBrake" type="rail:tEddyCurrentBrake" minOccurs="0"> + <xs:annotation> + <xs:documentation>technical data of eddy current brake</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eVehicleBrake"> + <xs:complexContent> + <xs:extension base="rail:tBasicBrakeType"> + <xs:attributeGroup ref="rail:aVehicleBrake" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eCurvingLimitation"> + <xs:complexContent> + <xs:extension base="rail:tCurvingLimitationType" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eLoadLimitMatrix"> + <xs:complexContent> + <xs:extension base="rail:tLoadLimitMatrixType"> + <xs:sequence> + <xs:element name="loadLimit" type="rail:eLoadLimit" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>container for possible load limits</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eLoadLimit"> + <xs:complexContent> + <xs:extension base="rail:tLoadLimitType"> + <xs:sequence> + <xs:element name="railNetwork" type="rail:tRailNetwork" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>relation to particular rail networks the limit is applicable</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="lineClassification" type="rail:tLineClassification" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>load limit with respect to line classification (permissible axle load and meter load)</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eFormations"> + <xs:sequence> + <xs:annotation> + <xs:documentation>contain formation data</xs:documentation> + </xs:annotation> + <xs:element name="formation" type="rail:eFormation" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>data for train composition or vehicle formation</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> - <xs:element name="rollingstock"> - <xs:complexType> + <xs:complexType name="eFormation"> + <xs:annotation> + <xs:documentation>data for train composition or vehicle formation</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tFormation"> + <xs:sequence> + <xs:annotation> + <xs:documentation>contain formation data</xs:documentation> + </xs:annotation> + <xs:element name="trainOrder" type="rail:eTrainOrder" minOccurs="0"> <xs:annotation> - <xs:documentation> - container for rolling stock data of single vehicles and - train formations - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tRollingstock"> - <xs:sequence> - <xs:element name="vehicles" type="rail:eVehicles" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - container for single vehicle data or - vehicle family data - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="formations" type="rail:eFormations" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - container for complete train formations - or sets of vehicles - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - <!----> - <!-- vehicles --> - <!-- +- vehicle --> - <!----> - - <xs:complexType name="eVehicles"> - <xs:sequence> - <xs:element name="vehicle" type="rail:eVehicle" - maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - data related to single vehicle or vehicle family - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- vehicle --> - <!-- +- classification --> - <!-- +- engine --> - <!-- +- wagon --> - <!-- +- brakes --> - <!----> - - <xs:complexType name="eVehicle"> - <xs:complexContent> - <xs:extension base="rail:tVehicle"> - <xs:sequence> - <xs:element name="classification" - type="rail:eClassification" minOccurs="0"> - <xs:annotation> - <xs:documentation> - general management and classification - data of vehicle - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="engine" type="rail:eEngine" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - engine data about a motor car or - locomotive - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="wagon" type="rail:eWagon" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical and payload data about a - (motor) car or locomotive - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="vehicleBrakes" type="rail:eVehicleBrakes" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - data about brake systems independent - from propulsion - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- classification --> - <!-- +- manufacturer --> - <!-- +- operator --> - <!----> - - <xs:complexType name="eClassification"> - <xs:sequence> - <xs:element name="manufacturer" type="rail:tManufacturer" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - manufacturer data related to the vehicle - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="operator" type="rail:tOperator" minOccurs="0" - maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - general operator specific vehicle data - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- engine --> - <!-- +- propulsion --> - <!-- +- monitoring --> - <!----> - - <xs:complexType name="eEngine"> - <xs:annotation> - <xs:documentation> - engine data about a motor car or locomotive, may be used - in conjunction with 'wagon' - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="propulsion" type="rail:ePropulsion" - minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - technical data about the propulsion system of a - vehicle - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="monitoring" type="rail:eMonitoring" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - types of signalling systems fitted to the - vehicle - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- propulsion --> - <!-- +- transformer --> - <!-- +- fourQuadrantChopper --> - <!-- +- link --> - <!-- +- tractionInverter --> - <!-- +- tractionMotor --> - <!-- +- diesel --> - <!-- +- gear --> - <!-- +- auxiliarySupply --> - <!-- +- tractiveEffort --> - <!-- +- brakeEffort --> - <!-- +- tractiveCurrent --> - <!-- +- brakeCurrent --> - <!-- +- tractiveCurrentLimitation --> - <!-- +- brakeCurrentLimitation --> - <!-- +- tractiveVehicleEfficiency --> - <!-- +- brakeVehicleEfficiency --> - <!----> - - <xs:complexType name="ePropulsion"> - <xs:annotation> - <xs:documentation> - technical data about the propulsion system of a vehicle - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tPropulsion"> - <xs:sequence> - <xs:element name="transformer" type="rail:eTransformer" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of main transformer - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="fourQuadrantChopper" - type="rail:eFourQuadrantChopper" minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of inverter between - OHL/transformer and link circuit - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="link" type="rail:tLink" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - nominal values of link circuit between - input inverter and motor inverter - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="tractionInverter" - type="rail:eTractionInverter" minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of inverter between link - circuit and motors - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="tractionMotor" - type="rail:eTractionMotor" minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of traction motor - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="diesel" type="rail:tDieselEngine" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of diesel engine - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="gear" type="rail:eGear" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of transmission system - between motor and wheel - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="auxiliarySupply" - type="rail:tAuxiliarySupply" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - technical data of auxiliary systems - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="tractiveEffort" - type="rail:tEffortCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - mechanical tractive effort at wheel vs. - speed by propulsion system - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="brakeEffort" type="rail:tEffortCurve" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - mechanical brake effort at wheel vs. - speed by propulsion system - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="tractiveCurrent" - type="rail:tCurrentCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - net current of the entire propulsion - system as curve vs. speed for traction - mode - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="brakeCurrent" - type="rail:tCurrentCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - net current of the entire propulsion - system as curve vs. speed for braking - mode - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="tractiveCurrentLimitation" - type="rail:tCurrentLimitation" minOccurs="0"> - <xs:annotation> - <xs:documentation> - limitation curve of net current of the - entire propulsion system vs. net voltage - for traction mode - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="brakeCurrentLimitation" - type="rail:tCurrentLimitation" minOccurs="0"> - <xs:annotation> - <xs:documentation> - limitation curve of net current of the - entire propulsion system vs. net voltage - for braking mode - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="tractiveVehicleEfficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - efficiency of the entire propulsion - system as curve vs. speed or effort for - traction mode - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="brakeVehicleEfficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - efficiency of the entire propulsion - system as curve vs. speed or effort for - braking mode - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- transformer --> - <!-- +- winding --> - <!-- +- efficiency --> - <!----> - - <xs:complexType name="eTransformer"> - <xs:complexContent> - <xs:extension base="rail:tTransformer"> - <xs:sequence> - <xs:element name="winding" type="rail:tWinding" - minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - nominal values of each transformer - winding - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="efficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - transformer efficiency vs. speed - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- fourQuadrantChopper --> - <!-- +- efficiency --> - <!-- +- cosphi --> - <!----> - - <xs:complexType name="eFourQuadrantChopper"> - <xs:complexContent> - <xs:extension base="rail:tFourQuadrantChopper"> - <xs:sequence> - <xs:element name="efficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - four-quadrant-chopper efficiency vs. - speed - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="phi" type="rail:tCurve" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - phase angle of the real power to the apparent - power as curve for the entire propulsion - system - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- tractionInverter --> - <!-- +- efficiency --> - <!-- +- pulsPattern --> - <!----> - - <xs:complexType name="eTractionInverter"> - <xs:complexContent> - <xs:extension base="rail:tTractionInverter"> - <xs:sequence> - <xs:element name="efficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - traction inverter efficiency vs. speed - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="pulsePattern" type="rail:ePulsePattern" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - puls pattern of the traction inverter - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- pulsePattern --> - <!-- +- valueTable --> - <!----> - - <xs:complexType name="ePulsePattern"> - <xs:sequence> - <xs:element name="valueTable"> - <xs:annotation> - <xs:documentation> - table of values vs. arbitrary variable - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="rail:tValueTable" /> - </xs:complexContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- tractionMotor --> - <!-- +- efficiency --> - <!-- +- mechanicalLosses --> - <!----> - - <xs:complexType name="eTractionMotor"> - <xs:complexContent> - <xs:extension base="rail:tTractionMotor"> - <xs:sequence> - <xs:element name="efficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - traction motor efficiency vs. speed - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="mechanicalLosses" type="rail:tLosses" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - traction motor mechanical losses vs. - speed - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- gear --> - <!-- +- efficiency --> - <!----> - - <xs:complexType name="eGear"> - <xs:complexContent> - <xs:extension base="rail:tGear"> - <xs:sequence> - <xs:element name="efficiency" - type="rail:tEfficiencyCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - transmission efficiency vs. speed - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- monitoring --> - <!-- +- etcs --> - <!-- +- nationalSystem --> - <!-- +- trainRadio --> - <!-- +- otherEquipment --> - <!----> - - <xs:complexType name="eMonitoring"> - <xs:complexContent> - <xs:extension base="rail:tMonitoring"> - <xs:sequence> - <xs:element name="etcs" type="rail:eETCS" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - Capabilities with respect to European - Train Control System - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="nationalSystem" - type="rail:tNationalSystem" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - list of installed national train protection/control systems - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="trainRadio" - type="rail:eTrainRadio" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - list of installed train radio systems for communication - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="otherEquipment" - type="rail:tOtherEquipment" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - list of other (non-safety) installed train equipment - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- etcs --> - <!-- +- specificTransmissionModule --> - <!----> - - <xs:complexType name="eETCS"> - <xs:annotation> - <xs:documentation> - data about installed ETCS system - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tETCS"> - <xs:sequence> - <xs:element name="specificTransmissionModule" type="rail:tSpecificTransmissionModule" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - data for special transmission modules of ETCS equipment - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trainRadio --> - <!-- +- radioSystem --> - <!----> - - <xs:complexType name="eTrainRadio"> + <xs:documentation>car order for a formation</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="categoryRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>reference to train categories in TimeTable part, e.g. ltd. Express, the formation can run as in service</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="trainEngine" type="rail:tTrainEngine" minOccurs="0"> + <xs:annotation> + <xs:documentation>acceleration value for whole formation</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="trainBrakes" type="rail:tBasicBrakeType" minOccurs="0"> + <xs:annotation> + <xs:documentation>for whole formation deceleration</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="trainResistance" type="rail:tTrainResistance" minOccurs="0"> + <xs:annotation> + <xs:documentation>mechanical train resistance vs. speed</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrainOrder"> + <xs:sequence> + <xs:element name="vehicleRef" type="rail:tVehicleRef" maxOccurs="unbounded"> <xs:annotation> - <xs:documentation> - train radio - </xs:documentation> + <xs:documentation>references via ID-attribute to vehicle element</xs:documentation> </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tTrainRadio"> - <xs:sequence> - <xs:element name="radioSystem" type="rail:tRadioSystem" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - list of available radio systems for communication like 'GSM-R' - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- wagon --> - <!-- +- passenger --> - <!-- +- goods --> - <!----> - - <xs:complexType name="eWagon"> - <xs:annotation> - <xs:documentation> - data about the car body of a vehicle and its payload - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tWagon"> - <xs:sequence> - <xs:element name="passenger" type="rail:ePassenger" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - data for passenger cars - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="goods" type="rail:tGoods" minOccurs="0"> - <xs:annotation> - <xs:documentation> - data for freight cars - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- passenger --> - <!-- +- places --> - <!-- +- service --> - <!-- +- gangway --> - <!----> - - <xs:complexType name="ePassenger"> - <xs:complexContent> - <xs:extension base="rail:tPassenger"> - <xs:sequence> - <xs:element name="places" type="rail:tPlaces" minOccurs="0" maxOccurs="unbounded" /> - <xs:element name="service" - type="rail:tService" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - description of any additional service - provided per vehicle - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="gangway" type="rail:tGangway" minOccurs="0" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- vehicle brakes --> - <!-- +- vehicle Brake --> - <!-- +- mechanicalBrakeEffort --> - <!-- +- eddyCurrentBrake --> - <!----> - - <xs:complexType name="eVehicleBrakes"> - <xs:annotation> - <xs:documentation> - data about brake systems independent from propulsion - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="vehicleBrake" - type="rail:eVehicleBrake" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - settings and characteristic of a particular brake - type or brake application position - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="mechanicalBrakeEffort" - type="rail:tEffortCurve" minOccurs="0"> - <xs:annotation> - <xs:documentation> - mechanical brake effort at wheel vs. - speed by brake systems without - propulsion - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="eddyCurrentBrake" - type="rail:tEddyCurrentBrake" minOccurs="0"> - <xs:annotation> - <xs:documentation> - technical data of eddy current brake - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- vehicle brake --> - <!----> - - <xs:complexType name="eVehicleBrake"> - <xs:complexContent> - <xs:extension base="rail:tBasicBrakeType"> - <xs:attributeGroup ref="rail:aVehicleBrake"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- formations --> - <!-- +- formation --> - <!----> - - <xs:complexType name="eFormations"> - <xs:sequence> - <xs:annotation> - <xs:documentation> - contain formation data - </xs:documentation> - </xs:annotation> - <xs:element name="formation" type="rail:eFormation" - maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - data for train composition or vehicle formation - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- formation --> - <!-- +- trainOrder --> - <!-- +- trainType --> - <!-- +- sysEngine --> - <!-- +- sysBrakes --> - <!-- +- trainResistance --> - <!----> - - <xs:complexType name="eFormation"> - <xs:annotation> - <xs:documentation> - data for train composition or vehicle formation - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tFormation"> - <xs:sequence> - <xs:annotation> - <xs:documentation> - contain formation data - </xs:documentation> - </xs:annotation> - <xs:element name="trainOrder" type="rail:eTrainOrder" minOccurs="0"> - <xs:annotation> - <xs:documentation> - car order for 1 formation - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="categoryRef" type="rail:tElementWithReference" - minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - reference to train categories in TimeTable part, e.g. ltd. Express, - the formation can run as in service - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="trainEngine" type="rail:tTrainEngine" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - acceleration value for whole formation - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="trainBrakes" type="rail:tBasicBrakeType" - minOccurs="0"> - <xs:annotation> - <xs:documentation> - for whole formation deceleration - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="trainResistance" - type="rail:tTrainResistance" minOccurs="0"> - <xs:annotation> - <xs:documentation> - mechanical train resistance vs. speed - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trainOrder --> - <!-- +- vehicleRef --> - <!----> - - <xs:complexType name="eTrainOrder"> - <xs:sequence> - <xs:element name="vehicleRef" type="rail:tVehicleRef" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - references via ID-attribute to vehicle element - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:schema> diff --git a/schema/rollingstockTypes.xsd b/schema/rollingstockTypes.xsd index d17b40a..028d9aa 100644 --- a/schema/rollingstockTypes.xsd +++ b/schema/rollingstockTypes.xsd @@ -1,1844 +1,2155 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - xmlns:mml="http://www.w3.org/1998/Math/MathML" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by rollingstock sub schema (RS)</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="railwayUnits.xsd" /> + <xs:include schemaLocation="railwayBaseTypes.xsd" /> + + <xs:complexType name="tRollingstock"> + <xs:annotation> + <xs:documentation>rolling stock data root</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tGlobalElementWithMetadata"> + <xs:attributeGroup ref="rail:aRollingstock" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aRollingstock"> + <xs:attribute name="timetableRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>identifier for status of related timetable data as reference</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="infrastructureRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>identifier for status of related infrastructure data as reference</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tVehicle"> + <xs:annotation> + <xs:documentation>vehicle related data</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aVehicle" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aVehicle"> + <xs:attribute name="vehicleFamilyRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>reference to 'id' in vehicle data in order to obtain all data common for the vehicle family not explicitly specified in this element of an individual vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="axleSequence" type="xs:string"> + <xs:annotation> + <xs:documentation>description of axle sequence</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="numberDrivenAxles" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>the number of motored axles used for traction</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="numberNonDrivenAxles" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>the number of axles not used for traction (without motor or gear)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trackGauge" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>the track gauge in metres the vehicle is mainly used for</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trackGaugeAlternative" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>the track gauge in metres the vehicle is alternatively used for</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="adjustableWheelSet" type="xs:boolean"> + <xs:annotation> + <xs:documentation>the vehicle comprises wheelsets adjustable to different track gauge</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="length" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>vehicle length in metres</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="speed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>maximum allowed vehicle speed in km/h</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="towingSpeed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>maximum allowed vehicle speed in km/h when its towed (not powered)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="bruttoWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>total weight of vehicle with full payload in metric tons (gross weight)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nettoWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>net weight of vehicle payload in metric tons</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tareWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>tare weight of vehicle (empty) in metric tons</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="bruttoAdhesionWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>portion of total vehicle weight on motored axles in metric tons (adhesion weight)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tareAdhesionWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>portion of tare vehicle weight on motored axles in metric tons (adhesion weight)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nettoAdhesionWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>DEPRECATED: portion of vehicle payload weight on motored axles in metric tons (adhesion weight)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="axleLoad" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>weight per axle of vehicle in metric tons</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="resistanceFactor" type="xs:decimal"> + <xs:annotation> + <xs:documentation>running resistance of vehicle in N/kN (to be used in conjungtion with 'trainResistance' element</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="onTrainHead" type="xs:boolean"> + <xs:annotation> + <xs:documentation>vehicle may run at the train head</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="onTrainTailOnly" type="xs:boolean"> + <xs:annotation> + <xs:documentation>vehicle must be the last one in any formation, no other vehicle coupled to its end</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tManufacturer"> + <xs:annotation> + <xs:documentation>container for descriptive data of the vehicle manufacturer</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aManufacturer" /> + </xs:complexType> + + <xs:attributeGroup name="aManufacturer"> + <xs:attribute name="manufacturerName" type="rail:tGenericName" use="required"> + <xs:annotation> + <xs:documentation>name of manufacturer</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="manufacturerType" type="rail:tElementDescription" use="required"> + <xs:annotation> + <xs:documentation>type description of manufacturer</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="serialNumber" type="xs:string"> + <xs:annotation> + <xs:documentation>serial number from manufacturer for the particular vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tOperator"> + <xs:annotation> + <xs:documentation>container for descriptive data of the vehicle operator</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aOperator" /> + <xs:attributeGroup ref="rail:aTimePeriod" /> + </xs:complexType> + + <xs:attributeGroup name="aOperator"> + <xs:attribute name="operatorName" type="rail:tGenericName" use="required"> + <xs:annotation> + <xs:documentation>name of vehicle operator</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="operatorClass" type="xs:string" use="required"> + <xs:annotation> + <xs:documentation>vehicle class description of operator or complete identifier number in case of particular vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tEngine"> + <xs:annotation> + <xs:documentation>engine data about a motor car or locomotive</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aEngine" /> + </xs:complexType> + + <xs:attributeGroup name="aEngine"> + <xs:attribute name="axleDriveType" type="rail:tAxleDriveType"> + <xs:annotation> + <xs:documentation>way of transmitting the torque onto axle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="haulageLoad" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>permissible load attached to the vehicle in metric tons</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tStorage"> + <xs:annotation> + <xs:documentation>technical data of energy storage device</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aStorage" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aStorage"> + <xs:attribute name="maximumCurrentCharging" type="rail:tCurrentAmpere" use="required"> + <xs:annotation> + <xs:documentation>The maximum current in A while charging the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maximumCurrentDischarging" type="rail:tCurrentAmpere" use="required"> + <xs:annotation> + <xs:documentation>The maximum current in A while discharging the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maximumPowerCharging" type="rail:tPowerWatt" use="required"> + <xs:annotation> + <xs:documentation>The maximum power in W while charging the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maximumPowerDischarging" type="rail:tPowerWatt" use="required"> + <xs:annotation> + <xs:documentation>The maximum power in W while discharging the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maximumChargingEnergy" type="rail:tEnergyKiloWattHours" use="required"> + <xs:annotation> + <xs:documentation>The maximum energy in kWh charging to the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="chargingEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The efficiency while charging the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="dischargingEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The efficiency while discharging the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanStorageEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The mean efficiency of the energy storage.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tPropulsion"> + <xs:annotation> + <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aElectrificationSystem"> + <xs:annotation> + <xs:documentation>type of power supply system for electric vehicles (voltage + frequency)</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aPropulsion" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aPropulsion"> + <xs:attribute name="power" type="rail:tPowerWatt" use="required"> + <xs:annotation> + <xs:documentation>installed power of propulsuion system per vehicle in Watt</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="powerType" type="rail:tMotivePowerType" use="required"> + <xs:annotation> + <xs:documentation>type of power for propulsuion system in the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="transmission" type="rail:tTransmission"> + <xs:annotation> + <xs:documentation>type of transmission system in vehicle (mainly for diesel cars)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="controlType" type="rail:tPropulsionControlType"> + <xs:annotation> + <xs:documentation>type of control for propulsuion system in the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxTractEffort" type="rail:tEffortNewton"> + <xs:annotation> + <xs:documentation>maximum tractive effort per vehicle in Newton (to be used in conjunction with 'tractiveEffort' element)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rotationMassFactor" type="xs:decimal"> + <xs:annotation> + <xs:documentation>factor for increased running resistance by rotating masses of propulsion system</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="additionalRotationMass" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>figure for increased running resistance by rotating masses of propulsion system</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rackTraction" type="xs:boolean"> + <xs:annotation> + <xs:documentation>DEPRECATED: flag, whether the vehicle comprises equipment for use on rack railways</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="remoteControl" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether the vehicle can be remotely controlled</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="numberNotches" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of notches of propulsion system switch gear</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="wheelDiameter" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>nominal diameter of driven wheels in m</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxBrakeEffort" type="rail:tEffortNewton"> + <xs:annotation> + <xs:documentation>maximum braking effort of propulsion system per vehicle in N (to be used in conjunction with 'brakeEffort' element)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxBrakePower" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>maximum braking power in W for regenerative braking</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="totalTractEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>the average efficiency of the entire propulsion system in traction mode</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="totalBrakeEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>the average efficiency of the entire propulsion system in braking mode</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tractionOffUndervoltageThreshold" type="rail:tVoltageVolt"> + <xs:annotation> + <xs:documentation>undervoltage threshold to switch off tration power in case net voltage out of limit</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="zeroSpeedCurrentLimitation" type="rail:tCurrentAmpere"> + <xs:annotation> + <xs:documentation>current limitation in Amps at zero speed</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxRegenerativeVoltage" type="rail:tVoltageVolt"> + <xs:annotation> + <xs:documentation>maximum voltage in Volts for regenerative braking</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="speedRange" type="rail:tSpeedRangeType"> + <xs:annotation> + <xs:documentation>additional information, whether this propulsion dataset is for the normal, slow or fast speed range of the engine</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="forwardSpeed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>permissible speed with front ahead (normal direction)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="reverseSpeed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>permissible speed with tail ahead (reverse direction)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="activationStandstill" type="xs:boolean"> + <xs:annotation> + <xs:documentation>propulsion system can be activated only in standstill</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tElectrificationSystem"> + <xs:annotation> + <xs:documentation>description of the electrification system</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aElectrificationSystem" /> + </xs:complexType> + + <xs:attributeGroup name="aElectrificationSystem"> + <xs:annotation> + <xs:documentation>nominal values (voltage + frequency) of electrification system</xs:documentation> + </xs:annotation> + <xs:attribute name="voltage" type="rail:tVoltageVolt"> + <xs:annotation> + <xs:documentation>as values (not enumeration)!!</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="frequency" type="rail:tFrequencyHertz"> + <xs:annotation> + <xs:documentation>for DC the frequency shall be set to Zero</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tMotivePowerType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="electric" /> + <xs:enumeration value="diesel" /> + <xs:enumeration value="steam" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tTransmission"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="electric" /> + <xs:enumeration value="hydraulic" /> + <xs:enumeration value="hydromechanical" /> + <xs:enumeration value="mechanical" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tModulationType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="analogue" /> + <xs:enumeration value="digital" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tMonitoring"> + <xs:annotation> + <xs:documentation>types of signalling systems fitted to the vehicle</xs:documentation> + </xs:annotation> + </xs:complexType> + + <xs:attributeGroup name="aMonitoringGeneric"> + <xs:attribute name="onBoardUnitID" type="xs:string"> + <xs:annotation> + <xs:documentation>identification of the on-board unit used for addressing within communication</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="softwareVersion" type="rail:tVersionNumber"> + <xs:annotation> + <xs:documentation>version of installed software of the system</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tETCS"> + <xs:annotation> + <xs:documentation>container for installed capabilities with respect to ETCS</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aMonitoringGeneric" /> + <xs:attributeGroup ref="rail:aETCS" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aETCS"> + <xs:attribute name="srsVersion" type="rail:tVersionNumber"> + <xs:annotation> + <xs:documentation>Version of ETCS language (SRS edition) installed</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="level_0" type="xs:boolean"> + <xs:annotation> + <xs:documentation>on-board unit supports level 0</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="level_1" type="xs:boolean"> + <xs:annotation> + <xs:documentation>on-board unit supports level 1</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="level_2" type="xs:boolean"> + <xs:annotation> + <xs:documentation>on-board unit supports level 2</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="level_3" type="xs:boolean"> + <xs:annotation> + <xs:documentation>on-board unit supports level 3</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tSpecificTransmissionModule"> + <xs:annotation> + <xs:documentation>container for installed special transmission modules</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aMonitoringGeneric" /> + <xs:attributeGroup ref="rail:aSpecificTransmissionModule" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aSpecificTransmissionModule"> + <xs:attribute name="nationalSystemRef" type="rail:tGenericRef" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainRadio"> + <xs:annotation> + <xs:documentation>container for installed train radio systems</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aMonitoringGeneric" /> + <xs:attributeGroup ref="rail:aTrainRadio" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrainRadio"> + <xs:attribute name="modulation" type="rail:tModulationType" /> + </xs:attributeGroup> + <xs:simpleType name="tRadioSystem"> + <xs:annotation> + <xs:documentation>list of available radio systems for communication like 'GSM-R'</xs:documentation> + </xs:annotation> + <xs:restriction base="rail:tGenericName" /> + </xs:simpleType> + + <xs:complexType name="tOtherEquipment"> + <xs:annotation> + <xs:documentation>container for other installed train equipment (non-safety)</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aMonitoringGeneric" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tTransformer"> + <xs:annotation> + <xs:documentation>technical data of main transformer</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aAssemblyNameNumber"> + <xs:annotation> + <xs:documentation>number of transformers per vehicle and their type description</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aTransformer" /> + </xs:complexType> + + <xs:attributeGroup name="aTransformer"> + <xs:attribute name="ferrumResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of iron core of one transformer in Ohms (open-circuit core loss)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="additionalResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>additional resistance of one transformer in Ohms due to non-sinusoid currents (stray loss)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mainInductance" type="rail:tInductanceHenry"> + <xs:annotation> + <xs:documentation>main inductance of one transformer in H</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The transformer mean efficiency in the range 0..1.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tWinding"> + <xs:annotation> + <xs:documentation>technical data of transformer winding</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aWinding" /> + </xs:complexType> + + <xs:attributeGroup name="aWinding"> + <xs:attribute name="assemblyName" type="rail:tGenericName" use="required"> + <xs:annotation> + <xs:documentation>type of transformer winding as descriptive name</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt"> + <xs:annotation> + <xs:documentation>nominal voltage of transformer winding (primary side) in Volts</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere"> + <xs:annotation> + <xs:documentation>nominal current of transformer winding (primary side) in Amps</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="transformationRatio" type="xs:decimal"> + <xs:annotation> + <xs:documentation>transformation ratio of transformer winding (primary/secondary voltage)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="primaryResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of primary winding of one transformer in Ohms</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="secondaryResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of secondary winding of one transformer in Ohms transformed to primary side</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="primaryLeakageInductance" type="rail:tInductanceHenry"> + <xs:annotation> + <xs:documentation>leakage inductance of primary winding of one transformer in H</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="secondaryLeakageInductance" type="rail:tInductanceHenry"> + <xs:annotation> + <xs:documentation>leakage inductance of secondary winding of one transformer in H transformed to primary side</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tFourQuadrantChopper"> + <xs:annotation> + <xs:documentation>technical data of inverter between OHL/transformer and link circuit</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aAssemblyNameNumber"> + <xs:annotation> + <xs:documentation>number of four-quadrant choppers installed per vehicle and their type description</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aFourQuadrantChopper" /> + </xs:complexType> + + <xs:attributeGroup name="aFourQuadrantChopper"> + <xs:attribute name="meanPhi" type="rail:tAngleDegFullCircle"> + <xs:annotation> + <xs:documentation>average phase angle phi of four-quadrant-chopper (in traction mode)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanPhiRegeneration" type="rail:tAngleDegFullCircle"> + <xs:annotation> + <xs:documentation>average phase angle phi of four-quadrant-chopper in regeneration mode</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The four quadrant chopper mean efficiency in the range 0..1.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tLink"> + <xs:attributeGroup ref="rail:aNominalElectrical" /> + </xs:complexType> + + <xs:attributeGroup name="aNominalElectrical"> + <xs:annotation> + <xs:documentation>nominal values (voltage + current) of an electrical circuit</xs:documentation> + </xs:annotation> + <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt" use="required"> + <xs:annotation> + <xs:documentation>nominal voltage of circuit in Volts</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere" use="required"> + <xs:annotation> + <xs:documentation>nominal current of circuit in Amps</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tTractionInverter"> + <xs:annotation> + <xs:documentation>technical data of inverter between link circuit and motors</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aAssemblyNameNumber"> + <xs:annotation> + <xs:documentation>number of traction inverters installed per vehicle and their type description</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aTractionInverter" /> + </xs:complexType> + + <xs:attributeGroup name="aTractionInverter"> + <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The traction inverter mean efficiency in the range 0..1.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tTractionMotor"> + <xs:annotation> + <xs:documentation>technical data of traction motor</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aAssemblyNameNumber"> + <xs:annotation> + <xs:documentation>number of traction motors per vehicle and their type description</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aTractionMotor" /> + </xs:complexType> + + <xs:attributeGroup name="aTractionMotor"> + <xs:attribute name="nominalPower" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>rated power consumption of one traction motor in Watt</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt"> + <xs:annotation> + <xs:documentation>rated voltage of traction motor in Volts</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere"> + <xs:annotation> + <xs:documentation>rated current of one traction motor in Amps</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalFrequency" type="rail:tFrequencyHertz"> + <xs:annotation> + <xs:documentation>rated frequency of traction motor windings in Hz</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalFlux" type="rail:tFluxVoltSecond"> + <xs:annotation> + <xs:documentation>nominal flux of one traction motor in Volt*sec</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalPhi" type="rail:tAngleDegFullCircle"> + <xs:annotation> + <xs:documentation>nominal phase angle phi of traction motor in the range -180..+180</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="numberPolePairs" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of pole pairs of one traction motor</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="statorResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of stator winding of one traction motor in Ohms</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rotorResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of rotor winding of one traction motor in Ohms</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="ferrumResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of iron core of one traction motor in Ohms (open-circuit core loss)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="additionalResistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>additional resistance of one traction motor in Ohms due to non-sinusoid currents (stray loss)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mainInductance" type="rail:tInductanceHenry"> + <xs:annotation> + <xs:documentation>main inductance of one traction motor in H</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="statorLeakageInductance" type="rail:tInductanceHenry"> + <xs:annotation> + <xs:documentation>leakage inductance of stator winding of one traction motor in H</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rotorLeakageInductance" type="rail:tInductanceHenry"> + <xs:annotation> + <xs:documentation>leakage inductance of rotor winding of one traction motor in H</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalRevolutions" type="rail:tRotationalFrequencyRevolutionsPerMinute"> + <xs:annotation> + <xs:documentation>nominal number of revolutions in revolutions per minute (rpm)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>The traction motor mean efficiency in the range 0..1.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tDieselEngine"> + <xs:annotation> + <xs:documentation>technical data of diesel engine</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aAssemblyNameNumber"> + <xs:annotation> + <xs:documentation>number of diesel engines per vehicle and their type description (for traction)</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aDieselEngine" /> + </xs:complexType> + + <xs:attributeGroup name="aDieselEngine"> + <xs:attribute name="nominalPower" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>nominal power per diesel engine in Watt</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="availableAuxiliaryPower" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>nominal power per diesel engine in Watt leftover for auxiliary supply</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="fuelCapacity" type="rail:tVolumeLitre"> + <xs:annotation> + <xs:documentation>fuel capacity of the entire diesel tank in liters</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>average efficiency of the diesel engine in the range 0..1</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tGear"> + <xs:annotation> + <xs:documentation>technical data of transmission system between motor and wheel</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aAssemblyNameNumber"> + <xs:annotation> + <xs:documentation>number of gear assemblies per vehicle and their type description</xs:documentation> + </xs:annotation> + </xs:attributeGroup> + <xs:attributeGroup ref="rail:aGear" /> + </xs:complexType> + + <xs:attributeGroup name="aGear"> + <xs:attribute name="gearRatio" type="xs:decimal"> + <xs:annotation> + <xs:documentation>gear ratio as decimal value</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> + <xs:annotation> + <xs:documentation>the gear mean efficiency in the range 0..1.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="designType" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>design type of the gear</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="manufacturerName" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>manufacturer of the gear</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nominalPower" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>nominal power of the gear for transmission</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="torqueConversion" type="rail:tTorqueConversionType"> + <xs:annotation> + <xs:documentation>type of torque conversion between motor and axle gear, mainly for diesel-hydraulic vehicles</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tAuxiliarySupply"> + <xs:attributeGroup ref="rail:aAuxiliarySupply" /> + </xs:complexType> + + <xs:attributeGroup name="aAuxiliarySupply"> + <xs:attribute name="power" type="rail:tPowerWatt" use="required"> + <xs:annotation> + <xs:documentation>power consumption of constant load by auxiliary equipment in Watt (permanent)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="powerPhi" type="rail:tAngleDegFullCircle"> + <xs:annotation> + <xs:documentation>phase angle phi of constant power of auxiliary load between -180..+180</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="resistance" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of constant load by auxiliary equipment in Ohm</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="powerBraking" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>power consumption of constant load by auxiliary equipment in Watt (only during braking mode)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="powerPhiBraking" type="rail:tAngleDegFullCircle"> + <xs:annotation> + <xs:documentation>phase angle phi of constant power of auxiliary load between -180..+180 (only during braking mode)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="resistanceBraking" type="rail:tResistanceOhm"> + <xs:annotation> + <xs:documentation>resistance of constant load by auxiliary equipment in Ohm (only during braking mode)</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tAuxiliarySupplySystem"> + <xs:attributeGroup ref="rail:aElectrificationSystem" /> + <xs:attribute name="maxPower" type="rail:tPowerWatt" use="required"> + <xs:annotation> + <xs:documentation>maximum power available for auxiliary equipment in this supply system</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + + <xs:complexType name="tNationalSystem"> + <xs:annotation> + <xs:documentation>description of installed national train protection/monitoring systems like PZB, CIR-ELKE, TVM, LEA, ...</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aMonitoringGeneric" /> + <xs:attributeGroup ref="rail:aMonitoringSystem" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aMonitoringSystem"> + <xs:attribute name="type" type="rail:tNationalSystemsType" use="required"> + <xs:annotation> + <xs:documentation>type of national system as enumeration</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trainProtectionMedium" type="rail:tTrainProtectionMedium" use="required"> + <xs:annotation> + <xs:documentation>type of transmission medium for the train protection system</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trainProtectionMonitoring" type="rail:tTrainProtectionMonitoring" use="required"> + <xs:annotation> + <xs:documentation>way of information transmission between lineside and trainborne equipment</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tWagon"> + <xs:annotation> + <xs:documentation>technical and payload data about a car</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aWagon" /> + </xs:complexType> + + <xs:attributeGroup name="aWagon"> + <xs:attribute name="rotationMassFactor" type="xs:decimal"> + <xs:annotation> + <xs:documentation>factor for increased running resistance by rotating masses of non-motored axles</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="additionalRotationMass" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>additional mass for increased running resistance by rotating masses of non-motored axles</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="kinematicEnvelope" type="rail:tElementDescription"> + <xs:annotation> + <xs:documentation>name of car body kinematic envelope as reference</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="auxiliaryPowerConsumption" type="rail:tPowerWatt"> + <xs:annotation> + <xs:documentation>continuous power consumption in Watt of auxiliaries within one car</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="headShape" type="rail:tHeadShapeType"> + <xs:annotation> + <xs:documentation>basic definition of head shape in order to derive air resistance of the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="headSurface" type="rail:tAreaSquareMeter"> + <xs:annotation> + <xs:documentation>cross-section area of vehicle front in order to derive air resistance of the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="bearingType" type="rail:tBearingType"> + <xs:annotation> + <xs:documentation>describes the type of the bearing used for calculating vehicle resistance</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tPassenger"> + <xs:annotation> + <xs:documentation>data for passenger cars</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:ePassengerFacility"> + <xs:attributeGroup ref="rail:aPassenger" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aPassenger"> + <xs:attribute name="deck" type="rail:tVerbalCounter"> + <xs:annotation> + <xs:documentation>number of decks per vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="drivingCab" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether the vehicle comprises driving cab</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tilting" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether the vehicle comprises tilting capabilities</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="airTightness" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether the passenger compartment of the vehicle is air tight/pressure resistant</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="emergencyBrakeDeactivation" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether the vehicle comprises a de-activation function of the emergency brake for long tunnels</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tGangway"> + <xs:annotation> + <xs:documentation>description of any gangways of the passenger car to other cars</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aGangway" /> + </xs:complexType> + + <xs:attributeGroup name="aGangway"> + <xs:attribute name="frontEnd" type="xs:boolean" use="required"> + <xs:annotation> + <xs:documentation>flag, whether there is a gangway at the front end of the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rearEnd" type="xs:boolean" use="required"> + <xs:annotation> + <xs:documentation>flag, whether there is a gangway at the rear end of the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="position" type="rail:tGangwayPosition"> + <xs:annotation> + <xs:documentation>vertical position of the gangway, valid for both sides</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="designType" type="rail:tGangwayDesignType" use="required"> + <xs:annotation> + <xs:documentation>type of design of the gangway</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="floorLevel" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>height of gangways floor above top of rail</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="gangwayHeight" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>height of gangway for passenger use</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="gangwayWidth" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>width of gangway for passenger use</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tGangwayPosition"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="standardUIC" /> + <xs:enumeration value="upperDeck" /> + <xs:enumeration value="lowerDeck" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tGangwayDesignType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="unknown" /> + <xs:enumeration value="standardUIC561" /> + <xs:enumeration value="special" /> + <xs:enumeration value="nonPublic" /> + <xs:enumeration value="sigI" /> + <xs:enumeration value="sigII" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tDoors"> + <xs:annotation> + <xs:documentation>data about door features for the car</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aDoors" /> + </xs:complexType> + + <xs:attributeGroup name="aDoors"> + <xs:attribute name="number" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of doors per vehicle at each side</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="entranceHeight" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>height of entrance foot plate above rail top</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="entranceLength" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>maximum distance between the doors of the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="entranceWidth" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>total of all door width of the vehicle at one side</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="footStepHeight" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>height of lowest foot step above rail top</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="lockingSpeed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>speed limit for locking the doors during train ride</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tTilting"> + <xs:annotation> + <xs:documentation>data for tilting mechanism of passenger cars</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aTilting" /> + </xs:complexType> + + <xs:attributeGroup name="aTilting"> + <xs:attribute name="maxTiltingAngle" type="rail:tAngleDegQuadrant"> + <xs:annotation> + <xs:documentation>maximum tilting angle in degrees</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="actuation" type="rail:tTiltingActuationType"> + <xs:annotation> + <xs:documentation>way of actuating the carbody tilting (active/passive)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tiltingSpeed" type="rail:tSpeedDegreesPerSecond"> + <xs:annotation> + <xs:documentation>speed of changing the tilting angle in degrees per second</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tGoods"> + <xs:annotation> + <xs:documentation>data for freight cars</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aGoods" /> + </xs:complexType> + + <xs:attributeGroup name="aGoods"> + <xs:attribute name="load" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>maximum paylod per wagon in metric tons</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="loadArea" type="rail:tAreaSquareMeter"> + <xs:annotation> + <xs:documentation>maximum area to be used for paylod per wagon in square metres</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="volume" type="rail:tVolumeCubicMeter"> + <xs:annotation> + <xs:documentation>available volume for payload per vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="freightCarType" type="rail:tFreightCarType"> + <xs:annotation> + <xs:documentation>simple classification of goods vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="freightCarUICType" type="rail:tGenericName"> + <xs:annotation> + <xs:documentation>classification string of goods vehicle according UIC</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tFreightCarType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="open" /> + <xs:enumeration value="covered" /> + <xs:enumeration value="platform" /> + <xs:enumeration value="refrigerated" /> + <xs:enumeration value="tank" /> + <xs:enumeration value="self-discharging" /> + <xs:enumeration value="special" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:attributeGroup name="aVehicleBrake"> + <xs:attribute name="loadSwitch" type="rail:tLoadSwitch"> + <xs:annotation> + <xs:documentation>for waggons with "full" / "empty" switch</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="autoBrakePercentage" type="rail:tBrakePercentage"> + <xs:annotation> + <xs:documentation>automatically regulated brake percentages depending on actual load of vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxAutoBrakeMass" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>maximum brake mass of autimatic brake</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tLoadSwitch"> + <xs:restriction base="xs:string"> + <xs:enumeration value="empty" /> + <xs:enumeration value="full" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="tEddyCurrentBrake"> + <xs:annotation> + <xs:documentation>technical data of eddy current brake</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aEddyCurrentBrake" /> + </xs:complexType> + + <xs:attributeGroup name="aEddyCurrentBrake"> + <xs:attribute name="maxPower" type="rail:tPowerWatt" use="required"> + <xs:annotation> + <xs:documentation>maximal power consumption in Watt</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxEffort" type="rail:tEffortNewton" use="required"> + <xs:annotation> + <xs:documentation>maximal brakeing effort achived in Newton</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="minSpeed" type="rail:tSpeedKmPerHour" use="required"> + <xs:annotation> + <xs:documentation>minimum speed for use of eddy current brake in km/h</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tFormation"> + <xs:annotation> + <xs:documentation>data for a single train formation made of rs-vehicles</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aFormation" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aFormation"> + <xs:attribute name="formationCount" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of similar formations forming that train</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="length" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>entire length of the formation (shall be in accordance with the sum of single vehicles)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="speed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>allowed maximum speed for the entire formation (shall be in accordance with single vehicle speed values)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="weight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>DEPRECATED: weight in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="bruttoWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>brutto weight (vehicles plus payload) in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nettoWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>net weight (payload only) in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tareWeight" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>tara weight (empty vehicles) in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tVehicleRef"> + <xs:attributeGroup ref="rail:aVehicleRef" /> + </xs:complexType> + + <xs:attributeGroup name="aVehicleRef"> + <xs:attribute name="orderNumber" type="rail:tPositiveCounter" use="required"> + <xs:annotation> + <xs:documentation>position of that vehicle (group) in the formation</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="vehicleRef" type="rail:tGenericRef" use="required"> + <xs:annotation> + <xs:documentation>vehicle type as reference</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="vehicleCount" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of consecutive vehicles of that type in the formation</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="frontGangway" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether there is a gangway at the front end of the vehicle usable</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rearGangway" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether there is a gangway at the rear end of the vehicle usable</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tTrainEngine"> + <xs:attributeGroup ref="rail:aTrainEngine" /> + </xs:complexType> + + <xs:attributeGroup name="aTrainEngine"> + <xs:attribute name="trainMeanAcceleration" type="rail:tAccelerationMeterPerSquareSec"> + <xs:annotation> + <xs:documentation>formation whole mean acceleration in m/s^2</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trainMaxAcceleration" type="rail:tAccelerationMeterPerSquareSec"> + <xs:annotation> + <xs:documentation>formation whole maximum acceleration in m/s^2</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tTrainResistance"> + <xs:annotation> + <xs:documentation>mechanical train resistance vs. speed</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tCurve"> + <xs:attribute name="tunnelFactor" type="xs:decimal"> + <xs:annotation> + <xs:documentation>factor for increasing air resistance when running through tunnel</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aAssemblyNameNumber"> + <xs:attribute name="count" type="rail:tCounter" use="required"> + <xs:annotation> + <xs:documentation>number of assemblies per vehicle/unit</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="assemblyName" type="rail:tGenericName" use="required"> + <xs:annotation> + <xs:documentation>type of assembly as descriptive name</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tLosses"> + <xs:annotation> + <xs:documentation>losses curve vs. speed, for use with mechanical and electrical systems</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tCurve" /> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="tEffortCurve"> <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. + <xs:documentation>effort curve vs. speed, for use with traction and braking</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tCurve" /> + </xs:complexContent> + </xs:complexType> - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ + <xs:complexType name="tCurrentCurve"> + <xs:annotation> + <xs:documentation>vehicle current curve vs. speed, for use with traction and braking</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tCurve" /> + </xs:complexContent> + </xs:complexType> - For further information see: http://www.railml.org/ + <xs:complexType name="tCurrentLimitation"> + <xs:annotation> + <xs:documentation>net current limitation curve vs. net voltage, for use with traction and braking</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tCurve" /> + </xs:complexContent> + </xs:complexType> - Content of this file: - XML Schema for railML(R) 2.0 - Definition of attribute groups, simple and complex types, - used by rollingstock sub schema (RS) - </xs:documentation> + <xs:complexType name="tEfficiencyCurve"> + <xs:annotation> + <xs:documentation>subsystem efficiency curve vs. speed</xs:documentation> </xs:annotation> + <xs:complexContent> + <xs:extension base="rail:tCurve" /> + </xs:complexContent> + </xs:complexType> - <xs:include schemaLocation="railwayUnits.xsd" /> - <xs:include schemaLocation="railwayBaseTypes.xsd" /> - - <xs:import namespace="http://www.w3.org/XML/1998/namespace" - schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> - - <!--*********************************************************--> - <!-- Support for MathML2 --> - <!--*********************************************************--> - - <xs:import namespace="http://www.w3.org/1998/Math/MathML" - schemaLocation="http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd" /> - - <!--*********************************************************--> - <!-- Rollingstock itself --> - <!--*********************************************************--> - - <xs:complexType name="tRollingstock"> - <xs:annotation> - <xs:documentation> - rolling stock data root - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tGlobalElementWithMetadata"> - <xs:attributeGroup ref="rail:aRollingstock" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aRollingstock"> - <xs:attribute name="timetableRef" type="rail:tGenericRef"> - <xs:annotation> - <xs:documentation> - identifier for status of related timetable data as - reference - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="infrastructureRef" type="rail:tGenericRef"> - <xs:annotation> - <xs:documentation> - identifier for status of related infrastructure data - as reference - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Vehicle --> - <!--*********************************************************--> - - <xs:complexType name="tVehicle"> - <xs:annotation> - <xs:documentation>vehicle related data</xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aVehicle" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aVehicle"> - <xs:attribute name="vehicleFamilyRef" type="rail:tGenericRef"> - <xs:annotation> - <xs:documentation> - reference to 'id' in vehicle data in order to obtain - all data common for the vehicle family not explicitly - specified in this element of an individual vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="axleSequence" type="xs:string"> - <xs:annotation> - <xs:documentation> - description of axle sequence - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="numberDrivenAxles" type="rail:tCounter"> - <xs:annotation> - <xs:documentation> - the number of motored axles used for traction - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="numberNonDrivenAxles" type="rail:tCounter"> - <xs:annotation> - <xs:documentation> - the number of axles not used for traction (without - motor or gear) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="trackGauge" type="rail:tLengthM"> - <xs:annotation> - <xs:documentation> - the track guage in metres the vehicles is mainly - used for - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="length" type="rail:tLengthM" use="required"> - <xs:annotation> - <xs:documentation> - vehicle length in metres - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="speed" type="rail:tSpeedKmPerHour" use="required"> - <xs:annotation> - <xs:documentation> - maximum allowed vehicle speed in km/h - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="bruttoWeight" type="rail:tWeightTons" - use="required"> - <xs:annotation> - <xs:documentation> - total weight of vehicle with full payload in metric - tons - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nettoWeight" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation> - tare weight of vehicle (empty) in metric tons - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="bruttoAdhesionWeight" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation> - portion of total vehicle weight on motored axles in - metric tons (adhesion weight) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nettoAdhesionWeight" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation> - portion of tare vehicle weight on motored axles in - metric tons (adhesion weight) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="resistanceFactor" type="xs:decimal"> - <xs:annotation> - <xs:documentation> - running resistance of vehicle in N/kN (to be used in - conjungtion with 'trainResistance' element - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Manufacturer --> - <!--*********************************************************--> - - <xs:complexType name="tManufacturer"> - <xs:annotation> - <xs:documentation> - container for descriptive data of the vehicle - manufacturer - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aManufacturer" /> - </xs:complexType> - - <xs:attributeGroup name="aManufacturer"> - <xs:attribute name="manufacturerName" type="rail:tGenericName" - use="required"> - <xs:annotation> - <xs:documentation> - name of manufacturer - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="manufacturerType" - type="rail:tElementDescription" use="required"> - <xs:annotation> - <xs:documentation> - type description of manufacturer - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="serialNumber" type="xs:string"> - <xs:annotation> - <xs:documentation> - serial number from manufacturer for the particular - vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Operator --> - <!--*********************************************************--> - - <xs:complexType name="tOperator"> - <xs:annotation> - <xs:documentation> - container for descriptive data of the vehicle operator - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aOperator" /> - <xs:attributeGroup ref="rail:aTimePeriod" /> - </xs:complexType> - - <xs:attributeGroup name="aOperator"> - <xs:attribute name="operatorName" type="rail:tGenericName" - use="required"> - <xs:annotation> - <xs:documentation> - name of vehicle operator - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="operatorClass" type="xs:string" - use="required"> - <xs:annotation> - <xs:documentation> - vehicle class description of operator or complete - identifier number in case of particular vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Propulsion --> - <!--*********************************************************--> - - <xs:complexType name="tPropulsion"> - <xs:annotation> - <xs:documentation> - technical data about the propulsion system of a vehicle - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aElectrificationSystem"> - <xs:annotation> - <xs:documentation> - type of power supply system for electric vehicles - (voltage + frequency) - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aPropulsion" /> - </xs:complexType> - - <xs:attributeGroup name="aPropulsion"> - <xs:attribute name="power" type="rail:tPowerWatt" use="required"> - <xs:annotation> - <xs:documentation> - installed power of propulsuion system per vehicle in - Watt - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="powerType" type="rail:tMotivePowerType" - use="required"> - <xs:annotation> - <xs:documentation> - type of power for propulsuion system in the vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="transmission" type="rail:tTransmission" - use="required"> - <xs:annotation> - <xs:documentation> - type of transmission system in vehicle (mainly for - diesel cars) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxTractEffort" type="rail:tEffortNewton"> - <xs:annotation> - <xs:documentation> - maximum tractive effort per vehicle in Newton (to be - used in conjunction with 'tractiveEffort' element) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="rotationMassFactor" type="xs:decimal"> - <xs:annotation> - <xs:documentation> - factor for increased running resistance by rotating - masses of propulsion system - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="rackTraction" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - flag, whether the vehicle comprises equipment for - use on rack railways - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="remoteControl" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - flag, whether the vehicle can be remotely controlled - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="numberNotches" type="rail:tCounter"> - <xs:annotation> - <xs:documentation> - number of notches of propulsion system switch gear - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="wheelDiameter" type="rail:tLengthM"> - <xs:annotation> - <xs:documentation> - nominal diameter of driven wheels in m - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxBrakeEffort" type="rail:tEffortNewton"> - <xs:annotation> - <xs:documentation> - maximum braking effort of propulsion system per - vehicle in N (to be used in conjunction with - 'brakeEffort' element) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxBrakePower" type="rail:tPowerWatt"> - <xs:annotation> - <xs:documentation> - maximum braking power in W for regenerative braking - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="totalTractEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - the average efficiency of the entire propulsion - system in traction mode - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="totalBrakeEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - the average efficiency of the entire propulsion - system in braking mode - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="tractionOffUndervoltageThreshold" - type="rail:tVoltageVolt"> - <xs:annotation> - <xs:documentation> - undervoltage threshold to switch off tration power - in case net voltage out of limit - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="zeroSpeedCurrentLimitation" type="rail:tCurrentAmpere"> - <xs:annotation> - <xs:documentation>current limitation in Amps at zero speed</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxRegenerativeVoltage" type="rail:tVoltageVolt"> - <xs:annotation> - <xs:documentation>maximum voltage in Volts for regenerative braking</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- ElectrificationSystem --> - <!-- Information on electrification system as values (not enumeration)!!--> - <!-- for DC the frequency shall be set to Zero --> - <!--*********************************************************--> - - <xs:attributeGroup name="aElectrificationSystem"> - <xs:annotation> - <xs:documentation> - nominal values (voltage + frequency) of electrification - system - </xs:documentation> - </xs:annotation> - <xs:attribute name="voltage" type="rail:tVoltageVolt" /> - <xs:attribute name="frequency" type="rail:tFrequencyHertz" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Type of Motive Power --> - <!--*********************************************************--> - - <xs:simpleType name="tMotivePowerType"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="electric" /> - <xs:enumeration value="diesel" /> - <xs:enumeration value="steam" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Type of Transmission System --> - <!--*********************************************************--> - - <xs:simpleType name="tTransmission"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="electric" /> - <xs:enumeration value="hydraulic" /> - <xs:enumeration value="mechanical" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Type of Radio Modulation --> - <!--*********************************************************--> - - <xs:simpleType name="tModulationType"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="analogue" /> - <xs:enumeration value="digital" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <!--*********************************************************--> - <!-- MonitoringSystem --> - <!--*********************************************************--> - - <xs:complexType name="tMonitoring"> - <xs:annotation> - <xs:documentation> - types of signalling systems fitted to the vehicle - </xs:documentation> - </xs:annotation> - </xs:complexType> - - <xs:attributeGroup name="aMonitoringGeneric"> - <xs:attribute name="onBoardUnitID" type="xs:string"> - <xs:annotation> - <xs:documentation> - identification of the on-board unit used for addressing within communication - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="softwareVersion" type="rail:tVersionNumber"> - <xs:annotation> - <xs:documentation> - version of installed software of the system - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- ETCS --> - <!--*********************************************************--> - - <xs:complexType name="tETCS"> - <xs:annotation> - <xs:documentation> - container for installed capabilities with respect to - ETCS - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aMonitoringGeneric" /> - <xs:attributeGroup ref="rail:aETCS" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aETCS"> - <xs:attribute name="srsVersion" type="rail:tVersionNumber"> - <xs:annotation> - <xs:documentation> - Version of ETCS language (SRS edition) installed - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="level_0" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - on-board unit supports level 0 - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="level_1" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - on-board unit supports level 1 - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="level_2" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - on-board unit supports level 2 - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="level_3" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - on-board unit supports level 3 - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Special Transmission Modules --> - <!--*********************************************************--> - - <xs:complexType name="tSpecificTransmissionModule"> - <xs:annotation> - <xs:documentation> - container for installed special transmission modules - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aMonitoringGeneric" /> - <xs:attributeGroup ref="rail:aSpecificTransmissionModule" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aSpecificTransmissionModule"> - <xs:attribute name="nationalSystemRef" type="rail:tGenericRef" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Radio --> - <!--*********************************************************--> - - <xs:complexType name="tTrainRadio"> - <xs:annotation> - <xs:documentation> - container for installed train radio systems - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aMonitoringGeneric" /> - <xs:attributeGroup ref="rail:aTrainRadio" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTrainRadio"> - <xs:attribute name="modulation" type="rail:tModulationType" /> - </xs:attributeGroup> - - <xs:simpleType name="tRadioSystem"> - <xs:annotation> - <xs:documentation> - list of available radio systems for communication like 'GSM-R' - </xs:documentation> - </xs:annotation> - <xs:restriction base="rail:tGenericName" /> - </xs:simpleType> - - <!--*********************************************************--> - <!-- other (non-safety) Train Equipment --> - <!--*********************************************************--> - - <xs:complexType name="tOtherEquipment"> - <xs:annotation> - <xs:documentation> - container for other installed train equipment - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aMonitoringGeneric" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Transformer --> - <!--*********************************************************--> - - <xs:complexType name="tTransformer"> - <xs:annotation> - <xs:documentation> - technical data of main transformer - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aAssemblyNameNumber"> - <xs:annotation> - <xs:documentation> - number of transformers per vehicle and their type - description - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aTransformer" /> - </xs:complexType> - - <xs:attributeGroup name="aTransformer"> - <xs:attribute name="ferrumResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of iron core of one transformer in Ohms - (open-circuit core loss) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="additionalResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - additional resistance of one transformer in Ohms due - to non-sinusoid currents (stray loss) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="mainInductance" type="rail:tInductanceHenry"> - <xs:annotation> - <xs:documentation> - main inductance of one transformer in H - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - The transformer mean efficiency in the range 0..1. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Winding --> - <!--*********************************************************--> - - <xs:complexType name="tWinding"> - <xs:annotation> - <xs:documentation> - technical data of transformer winding - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aWinding" /> - </xs:complexType> - - <xs:attributeGroup name="aWinding"> - <xs:attribute name="assemblyName" type="rail:tGenericName" - use="required"> - <xs:annotation> - <xs:documentation> - type of transformer winding as descriptive name - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt"> - <xs:annotation> - <xs:documentation> - nominal voltage of transformer winding (primary - side) in Volts - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere"> - <xs:annotation> - <xs:documentation> - nominal current of transformer winding (primary - side) in Amps - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="transformationRatio" type="xs:decimal"> - <xs:annotation> - <xs:documentation> - transformation ratio of transformer winding - (primary/secondary voltage) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="primaryResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of primary winding of one transformer in - Ohms - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="secondaryResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of secondary winding of one transformer - in Ohms transformed to primary side - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="primaryLeakageInductance" - type="rail:tInductanceHenry"> - <xs:annotation> - <xs:documentation> - leakage inductance of primary winding of one - transformer in H - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="secondaryLeakageInductance" - type="rail:tInductanceHenry"> - <xs:annotation> - <xs:documentation> - leakage inductance of secondary winding of one - transformer in H transformed to primary side - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- four-Quadrant-Chopper --> - <!--*********************************************************--> - - <xs:complexType name="tFourQuadrantChopper"> - <xs:annotation> - <xs:documentation> - technical data of inverter between OHL/transformer and - link circuit - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aAssemblyNameNumber"> - <xs:annotation> - <xs:documentation> - number of four-quadrant choppers installed per - vehicle and their type description - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aFourQuadrantChopper" /> - </xs:complexType> - - <xs:attributeGroup name="aFourQuadrantChopper"> - <xs:attribute name="meanPhi" type="rail:tAngleDegFullCircle"> - <xs:annotation> - <xs:documentation> - average phase angle phi of - four-quadrant-chopper - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - The four quadrant chopper mean efficiency in the - range 0..1. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Link circuit --> - <!--*********************************************************--> - - <xs:complexType name="tLink"> - <xs:attributeGroup ref="rail:aNominalElectrical" /> - </xs:complexType> - - <xs:attributeGroup name="aNominalElectrical"> - <xs:annotation> - <xs:documentation> - nominal values (voltage + current) of an electrical - circuit - </xs:documentation> - </xs:annotation> - <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt" - use="required"> - <xs:annotation> - <xs:documentation> - nominal voltage of circuit in Volts - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere" - use="required"> - <xs:annotation> - <xs:documentation> - nominal current of circuit in Amps - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- TractionInverter --> - <!--*********************************************************--> - - <xs:complexType name="tTractionInverter"> - <xs:annotation> - <xs:documentation> - technical data of inverter between link circuit and - motors - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aAssemblyNameNumber"> - <xs:annotation> - <xs:documentation> - number of traction inverters installed per vehicle - and their type description - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aTractionInverter" /> - </xs:complexType> - - <xs:attributeGroup name="aTractionInverter"> - <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - The traction inverter mean efficiency in the range - 0..1. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- TractionMotor --> - <!--*********************************************************--> - - <xs:complexType name="tTractionMotor"> - <xs:annotation> - <xs:documentation> - technical data of traction motor - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aAssemblyNameNumber"> - <xs:annotation> - <xs:documentation> - number of traction motors per vehicle and their type - description - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aTractionMotor" /> - </xs:complexType> - - <xs:attributeGroup name="aTractionMotor"> - <xs:attribute name="nominalPower" type="rail:tPowerWatt"> - <xs:annotation> - <xs:documentation> - rated power consumption of one traction motor in - Watt - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt"> - <xs:annotation> - <xs:documentation> - rated voltage of traction motor in Volts - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere"> - <xs:annotation> - <xs:documentation> - rated current of one traction motor in Amps - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalFrequency" type="rail:tFrequency"> - <xs:annotation> - <xs:documentation> - rated frequency of traction motor windings in Hz - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalFlux" type="rail:tFluxVoltSecond"> - <xs:annotation> - <xs:documentation> - nominal flux of one traction motor in Volt*sec - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalPhi" type="rail:tAngleDegFullCircle"> - <xs:annotation> - <xs:documentation> - nominal phase angle phi of traction motor in the range -180..+180 - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="numberPolePairs" type="rail:tCounter"> - <xs:annotation> - <xs:documentation> - number of pole pairs of one traction motor - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="statorResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of stator winding of one traction motor - in Ohms - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="rotorResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of rotor winding of one traction motor in - Ohms - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="ferrumResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of iron core of one traction motor in - Ohms (open-circuit core loss) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="additionalResistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - additional resistance of one traction motor in Ohms - due to non-sinusoid currents (stray loss) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="mainInductance" type="rail:tInductanceHenry"> - <xs:annotation> - <xs:documentation> - main inductance of one traction motor in H - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="statorLeakageInductance" - type="rail:tInductanceHenry"> - <xs:annotation> - <xs:documentation> - leakage inductance of stator winding of one traction - motor in H - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="rotorLeakageInductance" - type="rail:tInductanceHenry"> - <xs:annotation> - <xs:documentation> - leakage inductance of rotor winding of one traction - motor in H - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nominalRevolutions" type="rail:tRotationalFrequencyRevolutionsPerMinute"> - <xs:annotation> - <xs:documentation> - nominal number of revolutions in revolutions per - minute (rpm) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - The traction motor mean efficiency in the range - 0..1. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- DieselMotor --> - <!--*********************************************************--> - - <xs:complexType name="tDieselEngine"> - <xs:annotation> - <xs:documentation> - technical data of diesel engine - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aAssemblyNameNumber"> - <xs:annotation> - <xs:documentation> - number of diesel engines per vehicle and their type - description (for traction) - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aDieselEngine" /> - </xs:complexType> - - <xs:attributeGroup name="aDieselEngine"> - <xs:attribute name="nominalPower" type="rail:tPowerWatt"> - <xs:annotation> - <xs:documentation> - nominal power per diesel engine in Watt - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="fuelCapacity" type="rail:tVolumeLitre"> - <xs:annotation> - <xs:documentation> - fuel capacity of the entire diesel tank in liters - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - average efficiency of the diesel engine in the range - 0..1 - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Gear --> - <!--*********************************************************--> - - <xs:complexType name="tGear"> - <xs:annotation> - <xs:documentation> - technical data of transmission system between motor and - wheel - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aAssemblyNameNumber"> - <xs:annotation> - <xs:documentation> - number of gear assemblies per vehicle and their type - description - </xs:documentation> - </xs:annotation> - </xs:attributeGroup> - <xs:attributeGroup ref="rail:aGear" /> - </xs:complexType> - - <xs:attributeGroup name="aGear"> - <xs:attribute name="gearRatio" type="xs:decimal" use="required"> - <xs:annotation> - <xs:documentation> - gear ratio as decimal value - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="meanEfficiency" type="rail:tOneToZero"> - <xs:annotation> - <xs:documentation> - The gear mean efficiency in the range 0..1. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Auxiliary supply--> - <!--*********************************************************--> - - <xs:complexType name="tAuxiliarySupply"> - <xs:attributeGroup ref="rail:aAuxiliarySupply" /> - </xs:complexType> - - <xs:attributeGroup name="aAuxiliarySupply"> - <xs:attribute name="power" type="rail:tPowerWatt" - use="required"> - <xs:annotation> - <xs:documentation> - power consumption of constant load by auxiliary equipment in - Watt (permanent) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="powerPhi" type="rail:tAngleDegFullCircle"> - <xs:annotation> - <xs:documentation> - phase angle phi of constant power of auxiliary load between - -180..+180 - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="resistance" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of constant load by auxiliary equipment in Ohm - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="powerBraking" type="rail:tPowerWatt"> - <xs:annotation> - <xs:documentation> - power consumption of constant load by auxiliary equipment in - Watt (only during braking mode) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="powerPhiBraking" type="rail:tAngleDegFullCircle"> - <xs:annotation> - <xs:documentation> - phase angle phi of constant power of auxiliary load between - -180..+180 (only during braking mode) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="resistanceBraking" type="rail:tResistanceOhm"> - <xs:annotation> - <xs:documentation> - resistance of constant load by auxiliary equipment in Ohm - (only during braking mode) - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- National System of Train Protection/Train Control --> - <!--*********************************************************--> - - <xs:complexType name="tNationalSystem"> - <xs:annotation> - <xs:documentation> - description of installed national train protection/monitoring systems like PZB, CIR-ELKE, TVM, LEA, ... - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aMonitoringGeneric" /> - <xs:attributeGroup ref="rail:aMonitoringSystem" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aMonitoringSystem"> - <xs:attribute name="type" type="rail:tNationalSystemsType" use="required"> - <xs:annotation> - <xs:documentation> - type of national system as enumeration - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="trainProtectionMedium" type="rail:tTrainProtectionMedium" - use="required"> - <xs:annotation> - <xs:documentation> - type of transmission medium for the train protection system - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="trainProtectionMonitoring" type="rail:tTrainProtectionMonitoring" - use="required"> - <xs:annotation> - <xs:documentation> - way of information transmission between lineside and trainborne equipment - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Wagon--> - <!--*********************************************************--> - - <xs:complexType name="tWagon"> - <xs:annotation> - <xs:documentation> - technical and payload data about a car - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aWagon" /> - </xs:complexType> - - <xs:attributeGroup name="aWagon"> - <xs:attribute name="rotationMassFactor" type="xs:decimal"> - <xs:annotation> - <xs:documentation> - factor for increased running resistance by rotating - masses of non-motored axles - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="kinematicEnvelope" - type="rail:tElementDescription"> - <xs:annotation> - <xs:documentation> - name of car body kinematic envelope as reference - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="auxiliaryPowerConsumption" type="rail:tPowerWatt"> - <xs:annotation> - <xs:documentation> - continuous power consumption in Watt of auxiliaries - within one car - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Passenger --> - <!--*********************************************************--> - - <xs:complexType name="tPassenger"> - <xs:annotation> - <xs:documentation> - data for passenger cars - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aPassenger" /> - </xs:complexType> - - <xs:attributeGroup name="aPassenger"> - <xs:attribute name="deck" type="rail:tVerbalCounter"> - <xs:annotation> - <xs:documentation> - number of decks per vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="drivingCab" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - flag, whether the vehicle comprises driving cab - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="tilting" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - flag, whether the vehicle comprises tilting - capabilities - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Gangway --> - <!--*********************************************************--> - - <xs:complexType name="tGangway"> - <xs:annotation> - <xs:documentation> - description of any gangways of the passenger car to other cars - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aGangway" /> - </xs:complexType> - - <xs:attributeGroup name="aGangway"> - <xs:attribute name="frontEnd" type="xs:boolean" use="required" /> - <xs:attribute name="rearEnd" type="xs:boolean" use="required" /> - <xs:attribute name="position" type="rail:tGangwayPosition" use="required" /> - </xs:attributeGroup> - - <xs:simpleType name="tGangwayPosition"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="standardUIC" /> - <xs:enumeration value="upperDeck" /> - <xs:enumeration value="lowerDeck" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Goods --> - <!--*********************************************************--> - - <xs:complexType name="tGoods"> - <xs:annotation> - <xs:documentation>data for freight cars</xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aGoods" /> - </xs:complexType> - - <xs:attributeGroup name="aGoods"> - <xs:attribute name="load" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation> - maximum paylod per wagon in metric tons - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="volume" type="rail:tVolumeCubicMeter"> - <xs:annotation> - <xs:documentation> - available volume for payload per vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="freightCarType" type="rail:tFreightCarType"> - <xs:annotation> - <xs:documentation> - classification of goods vehicle - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <xs:simpleType name="tFreightCarType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="open" /> - <xs:enumeration value="covered" /> - <xs:enumeration value="platform" /> - <xs:enumeration value="refrigerated" /> - <xs:enumeration value="tank" /> - <xs:enumeration value="self-discharging" /> - <xs:enumeration value="special" /> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Vehicle Brakes --> - <!--*********************************************************--> - - <xs:attributeGroup name="aVehicleBrake"> - <xs:attribute name="loadSwitch" type="rail:tLoadSwitch"> - <xs:annotation> - <xs:documentation>for waggons with "full" / "empty" switch</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="autoBrakePercentage" type="rail:tBrakePercentage"> - <xs:annotation> - <xs:documentation>automatically regulated brake percentages - depending on actual load of vehicle</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxAutoBrakeMass" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation>maximum brake mass of autimatic brake</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Positions of load switch for brake system --> - <!--*********************************************************--> - - <xs:simpleType name="tLoadSwitch"> - <xs:restriction base="xs:string"> - <xs:enumeration value="empty" /> - <xs:enumeration value="full" /> - </xs:restriction> - </xs:simpleType> - - <!--*********************************************************--> - <!-- Eddy current brake --> - <!--*********************************************************--> - - <xs:complexType name="tEddyCurrentBrake"> - <xs:annotation> - <xs:documentation> - technical data of eddy current brake - </xs:documentation> - </xs:annotation> - <xs:attributeGroup ref="rail:aEddyCurrentBrake" /> - </xs:complexType> - - <xs:attributeGroup name="aEddyCurrentBrake"> - <xs:attribute name="maxPower" type="rail:tPowerWatt" - use="required"> - <xs:annotation> - <xs:documentation> - maximal power consumption in Watt - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="maxEffort" type="rail:tEffortNewton" - use="required"> - <xs:annotation> - <xs:documentation> - maximal brakeing effort achived in Newton - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="minSpeed" type="rail:tSpeedKmPerHour" use="required"> - <xs:annotation> - <xs:documentation> - minimum speed for use of eddy current brake in km/h - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Composition --> - <!--*********************************************************--> - - <xs:complexType name="tFormation"> - <xs:annotation> - <xs:documentation> - data for a single train formation made of rs-vehicles - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aFormation" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aFormation"> - <xs:attribute name="formationCount" type="rail:tCounter"> - <xs:annotation> - <xs:documentation> - number of similar formations forming that train - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="length" type="rail:tLengthM"> - <xs:annotation> - <xs:documentation> - entire length of the formation (shall be in - accordance with the sum of single vehicles) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="speed" type="rail:tSpeedKmPerHour"> - <xs:annotation> - <xs:documentation> - allowed maximum speed for the entire formation - (shall be in accordance with single vehicle speed - values) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="weight" type="rail:tWeightTons"> - <xs:annotation> - <xs:documentation> - weight in metrical tons of the entire formation - (shall be in accordance with the sum of single - vehicles) - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Vehicle reference --> - <!--*********************************************************--> - - <xs:complexType name="tVehicleRef"> - <xs:attributeGroup ref="rail:aVehicleRef" /> - </xs:complexType> - - <xs:attributeGroup name="aVehicleRef"> - <xs:attribute name="orderNumber" type="xs:positiveInteger" - use="required"> - <xs:annotation> - <xs:documentation> - position of that vehicle (group) in the formation - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="vehicleRef" type="rail:tGenericRef" - use="required"> - <xs:annotation> - <xs:documentation> - vehicle type as reference - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="vehicleCount" type="rail:tCounter"> - <xs:annotation> - <xs:documentation> - number of consecutive vehicles of that type in the - formation - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="frontGangway" type="xs:boolean" /> - <xs:attribute name="rearGangway" type="xs:boolean" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train engine data for the entire formation --> - <!--*********************************************************--> - - <xs:complexType name="tTrainEngine"> - <xs:attributeGroup ref="rail:aTrainEngine" /> - </xs:complexType> - - <xs:attributeGroup name="aTrainEngine"> - <xs:attribute name="trainMeanAcceleration" - type="rail:tAccelerationMeterPerSquareSec"> - <xs:annotation> - <xs:documentation> - formation whole mean acceleration in m/s^2 - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="trainMaxAcceleration" - type="rail:tAccelerationMeterPerSquareSec"> - <xs:annotation> - <xs:documentation> - formation whole maximum acceleration in m/s^2 - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train resistance --> - <!--*********************************************************--> - - <xs:complexType name="tTrainResistance"> - <xs:annotation> - <xs:documentation> - mechanical train resistance vs. speed - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tCurve"> - <xs:attribute name="tunnelFactor" type="xs:decimal"> - <xs:annotation> - <xs:documentation> - factor for increasing air resistance when - running through tunnel - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- general attribute groups --> - <!--*********************************************************--> - - <xs:attributeGroup name="aAssemblyNameNumber"> - <xs:attribute name="count" type="rail:tCounter" use="required"> - <xs:annotation> - <xs:documentation> - number of assemblies per vehicle/unit - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="assemblyName" type="rail:tGenericName" - use="required"> - <xs:annotation> - <xs:documentation> - type of assembly as descriptive name - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- LossesCurve --> - <!--*********************************************************--> - - <xs:complexType name="tLosses"> - <xs:annotation> - <xs:documentation> - losses curve vs. speed, for use with mechanical and - electrical systems - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tCurve" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- EffortCurve --> - <!--*********************************************************--> - - <xs:complexType name="tEffortCurve"> - <xs:annotation> - <xs:documentation> - effort curve vs. speed, for use with traction and - braking - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tCurve" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Vehicle CurrentCurve --> - <!--*********************************************************--> - - <xs:complexType name="tCurrentCurve"> - <xs:annotation> - <xs:documentation> - vehicle current curve vs. speed, for use with traction - and braking - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tCurve" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Vehicle NetCurrentLimitationCurve --> - <!--*********************************************************--> - - <xs:complexType name="tCurrentLimitation"> - <xs:annotation> - <xs:documentation> - net current limitation curve vs. net voltage, for use - with traction and braking - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tCurve" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- EfficiencyCurve --> - <!--*********************************************************--> - - <xs:complexType name="tEfficiencyCurve"> - <xs:annotation> - <xs:documentation> - subsystem efficiency curve vs. speed - </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="rail:tCurve" /> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- generic Curve --> - <!--*********************************************************--> - - <xs:complexType name="tCurve"> - <xs:annotation> - <xs:documentation> - generic curve of function y=f(x,z) - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element ref="mml:math" minOccurs="0"> - <xs:annotation> - <xs:documentation> - function definition vs. arbitrary variable in - MathML format - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="valueTable" minOccurs="0"> - <xs:annotation> - <xs:documentation> - table of values vs. arbitrary variable - representing function y=f(x,z) - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="rail:tValueTable" /> - </xs:complexContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!--*********************************************************--> - <!-- ValueTable --> - <!--*********************************************************--> - - <xs:complexType name="tValueTable"> - <xs:annotation> - <xs:documentation> - table of values vs. arbitrary x-variable - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="columnHeader" minOccurs="0" - maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - List of Names to explain meaning of values - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:attribute name="zValue" type="xs:decimal" - use="required"> - <xs:annotation> - <xs:documentation> - z-value itself as parameter in the value - table - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - </xs:element> - <xs:element name="valueLine" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - set of values related to an x-value (one table - line) - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="values" - maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - the values related to an x-value - themselves - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:attribute name="yValue" - type="xs:decimal" use="required"> - <xs:annotation> - <xs:documentation> - value of ordinate (y-axis) - for this line (row) - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attribute name="xValue" type="xs:decimal" - use="required"> - <xs:annotation> - <xs:documentation> - values of abscissa (x-axis) for this - line (row) - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attribute name="xValueName" type="rail:tElementDescription" - use="required"> - <xs:annotation> - <xs:documentation> - descriptive name for values of abscissa (x-axis) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="xValueUnit" type="rail:tUnitName" - use="required"> - <xs:annotation> - <xs:documentation> - physical unit for values of abscissa (x-axis) - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="yValueName" type="rail:tElementDescription" - use="required"> - <xs:annotation> - <xs:documentation> - descriptive name of y-values in that column - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="yValueUnit" type="rail:tUnitName" - use="required"> - <xs:annotation> - <xs:documentation> - physical unit of the valuesin element "values" - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="zValueName" type="rail:tElementDescription"> - <xs:annotation> - <xs:documentation> - descriptive name of z-value used as parameter in the - value table - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="zValueUnit" type="rail:tUnitName"> - <xs:annotation> - <xs:documentation> - physical unit for z-value used as parameter in the - value table - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> + <xs:complexType name="tCurve"> + <xs:annotation> + <xs:documentation>generic curve of function y=f(x,z)</xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:any namespace="http://www.w3.org/1998/Math/MathML" processContents="strict" minOccurs="0"> + <xs:annotation> + <xs:documentation>function definition vs. arbitrary variable in MathML format</xs:documentation> + </xs:annotation> + </xs:any> + <xs:element name="valueTable" minOccurs="0"> + <xs:annotation> + <xs:documentation> table of values vs. arbitrary variable representing function y=f(x,z)</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="rail:tValueTable" /> + </xs:complexContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="tValueTable"> + <xs:annotation> + <xs:documentation>table of values vs. arbitrary x-variable</xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="columnHeader" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>List of Names to explain meaning of values</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:attribute name="zValue" type="xs:decimal" use="required"> + <xs:annotation> + <xs:documentation>z-value itself as parameter in the value table</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="valueLine" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>set of values related to an x-value (one table line)</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="values" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>the values related to an x-value themselves</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:attribute name="yValue" type="xs:decimal" use="required"> + <xs:annotation> + <xs:documentation>value of ordinate (y-axis) for this line (row)</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="xValue" type="xs:decimal" use="required"> + <xs:annotation> + <xs:documentation>values of abscissa (x-axis) for this line (row)</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="xValueName" type="rail:tElementDescription" use="required"> + <xs:annotation> + <xs:documentation>descriptive name for values of abscissa (x-axis)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="xValueUnit" type="rail:tUnitName" use="required"> + <xs:annotation> + <xs:documentation>physical unit for values of abscissa (x-axis)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="yValueName" type="rail:tElementDescription" use="required"> + <xs:annotation> + <xs:documentation>descriptive name of y-values in that column</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="yValueUnit" type="rail:tUnitName" use="required"> + <xs:annotation> + <xs:documentation>physical unit of the valuesin element "values"</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="zValueName" type="rail:tElementDescription"> + <xs:annotation> + <xs:documentation>descriptive name of z-value used as parameter in the value table</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="zValueUnit" type="rail:tUnitName"> + <xs:annotation> + <xs:documentation>physical unit for z-value used as parameter in the value table</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + + <xs:simpleType name="tSpeedRangeType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="dontcare" /> + <xs:enumeration value="slow" /> + <xs:enumeration value="fast" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tAxleDriveType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="cardanShaft" /> + <xs:enumeration value="tubularAxle" /> + <xs:enumeration value="noseSuspensionDrive" /> + <xs:enumeration value="helicalSpringGear" /> + <xs:enumeration value="rubberRingResilientDrive" /> + <xs:enumeration value="buchliDrive" /> + <xs:enumeration value="inclinedRodDrive" /> + <xs:enumeration value="sideRodDrive" /> + <xs:enumeration value="chain" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tPantographControlType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="cable" /> + <xs:enumeration value="spring" /> + <xs:enumeration value="air" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tPantographPositionType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="front" /> + <xs:enumeration value="frontSecond" /> + <xs:enumeration value="middle" /> + <xs:enumeration value="rearSecond" /> + <xs:enumeration value="rear" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tPantograph"> + <xs:annotation> + <xs:documentation>description of any installed pantograph</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aPantograph" /> + </xs:complexType> + + <xs:attributeGroup name="aPantograph"> + <xs:attribute name="orderNumber" type="rail:tPositiveCounter" use="required"> + <xs:annotation> + <xs:documentation>number of the pantograph on the vehicle, starting with '1'</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="designType" type="rail:tGenericName" use="required"> + <xs:annotation> + <xs:documentation>descriptive info about design type</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="positionOnSection" type="rail:tPantographPositionType" use="required"> + <xs:annotation> + <xs:documentation>position of the pantograph with respect to typical locations of a section</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="fittedSection" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of vehicle section the panto is fitted on in case of articulated vehicle, normally '1'</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="controlType" type="rail:tPantographControlType"> + <xs:annotation> + <xs:documentation>the way of controlling the pantograph drive</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="headWidth" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>width of pan head</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxCurrentDriving" type="rail:tCurrentAmpere"> + <xs:annotation> + <xs:documentation>maximum current transferred by the panto during driving</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxCurrentStandstill" type="rail:tCurrentAmpere"> + <xs:annotation> + <xs:documentation>maximum current transferred by the panto in standstill of the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tDriversCabType"> + <xs:annotation> + <xs:documentation>description of each drivers cab</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aDriversCab" /> + </xs:complexType> + + <xs:attributeGroup name="aDriversCab"> + <xs:attribute name="orderNumber" type="rail:tPositiveCounter" use="required"> + <xs:annotation> + <xs:documentation>ordered number of cab</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="position" type="rail:tCabPositionType" use="required"> + <xs:annotation> + <xs:documentation>position of cab related to vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="acousticSignaller" type="rail:tAcousticSignalType"> + <xs:annotation> + <xs:documentation>installed acoustic signaller</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tAcousticSignalType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="bell" /> + <xs:enumeration value="alarmBell" /> + <xs:enumeration value="horn" /> + <xs:enumeration value="airChime" /> + <xs:enumeration value="whistle" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tRackTractionType"> + <xs:annotation> + <xs:documentation>description of any installed rack traction equipment</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aRackTraction" /> + </xs:complexType> + + <xs:attributeGroup name="aRackTraction"> + <xs:attribute name="number" type="rail:tCounter" use="required"> + <xs:annotation> + <xs:documentation>number of cog wheels on the vehicle</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rackSystem" type="rail:tRackSystemType" use="required"> + <xs:annotation> + <xs:documentation>kind of rack system used</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="resilentCogWheel" type="xs:boolean" use="required"> + <xs:annotation> + <xs:documentation>flag, wheter the cog wheel(s) is(are) resilently suspended</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tTiltingActuationType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="active" /> + <xs:enumeration value="passive" /> + <xs:enumeration value="rollCompensation" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tRackSystemType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="Riggenbach" /> + <xs:enumeration value="Riggenbach-Klose" /> + <xs:enumeration value="Abt2Bars" /> + <xs:enumeration value="Abt3Bars" /> + <xs:enumeration value="Locher" /> + <xs:enumeration value="Strub" /> + <xs:enumeration value="Wetli" /> + <xs:enumeration value="Marsh" /> + <xs:enumeration value="Roll" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tBearingType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="rollerBearing" /> + <xs:enumeration value="ballBearing" /> + <xs:enumeration value="plainBearing" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tHeadShapeType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="angular" /> + <xs:enumeration value="rounded" /> + <xs:enumeration value="streamlined" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tEndPositionType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="both" /> + <xs:enumeration value="front" /> + <xs:enumeration value="rear" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tRelatedPositionType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="aside" /> + <xs:enumeration value="ontop" /> + <xs:enumeration value="below" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tCabPositionType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="front" /> + <xs:enumeration value="middle" /> + <xs:enumeration value="rear" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tTorqueConversionType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="converter" /> + <xs:enumeration value="coupling" /> + <xs:enumeration value="hydrodynamicTransmission" /> + <xs:enumeration value="hydraulicTransmission" /> + <xs:enumeration value="hydromechanicalTransmission" /> + <xs:enumeration value="hydrostaticTransmission" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tCurvingLimitationType"> + <xs:annotation> + <xs:documentation>container for list of physical curving limits</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aCurvingLimitation" /> + </xs:complexType> + + <xs:attributeGroup name="aCurvingLimitation"> + <xs:attribute name="horizontalCurveRadius" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>maximum horizontal curve radius in metres allowed for the vehicle running</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="verticalCrestRadius" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>maximum vertical radius of any crest (Kuppe) in metres allowed for the vehicle running</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="verticalSagRadius" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>maximum vertical radius of any sag (Wanne) in metres allowed for the vehicle running</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tLoadLimitMatrixType"> + <xs:annotation> + <xs:documentation>container for list of load limits</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aLoadLimitMatrix" /> + </xs:complexType> + + <xs:attributeGroup name="aLoadLimitMatrix"> + <xs:attribute name="chassisSpeed" type="rail:tSpeedKmPerHour"> + <xs:annotation> + <xs:documentation>maximum speed allowed for the vehicle not considering braking capabilities</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tLoadLimitType"> + <xs:annotation> + <xs:documentation>permissible load limits depending on line classification</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aLoadLimit" /> + </xs:complexType> + + <xs:attributeGroup name="aLoadLimit"> + <xs:attribute name="maxSpeed" type="rail:tSpeedKmPerHour" use="required"> + <xs:annotation> + <xs:documentation>maximum speed allowed with the load limit</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tRailNetwork"> + <xs:annotation> + <xs:documentation>list of related rail networks</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aRailNetwork" /> + </xs:complexType> + + <xs:attributeGroup name="aRailNetwork"> + <xs:attribute name="name" type="rail:tGenericName" use="required"> + <xs:annotation> + <xs:documentation>name of the rail network the load limit and line classification is applicable</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tLineClassification"> + <xs:annotation> + <xs:documentation>list of line classifications and permissible payload according RIV</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aLineClassification" /> + </xs:complexType> + + <xs:attributeGroup name="aLineClassification"> + <xs:attribute name="name" type="rail:tLineClassificationType" use="required"> + <xs:annotation> + <xs:documentation>the name of the line class according RIV or any other distinctive name</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="payLoad" type="rail:tWeightTons" use="required"> + <xs:annotation> + <xs:documentation>permissible payload for the vehicle with respect to line classification</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tPropulsionControlType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="unknown" /> + <xs:enumeration value="camshaftControl" /> + <xs:enumeration value="contactorControl" /> + <xs:enumeration value="rectifier" /> + <xs:enumeration value="thyristorControl" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tPneumaticWagonCouplerType"> + <xs:annotation> + <xs:documentation>data of available pneumatic couplers between wagons</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aPneumaticWagonCoupler" /> + </xs:complexType> + + <xs:attributeGroup name="aPneumaticWagonCoupler"> + <xs:attribute name="positionOnCarEnd" type="rail:tEndPositionType" use="required"> + <xs:annotation> + <xs:documentation>basic position of the pneumatic wagon coupler (front/rear/both)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="couplerFunction" type="rail:tPneumaticCouplerFunctionType"> + <xs:annotation> + <xs:documentation>the function the pneumatic coupler is used for</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="integratedOnMechanicalCoupler" type="xs:boolean"> + <xs:annotation> + <xs:documentation>flag, whether the pneumatic coupler is integrated in the mechanical coupler and coupled automatically</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tPneumaticCouplerFunctionType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="unknown" /> + <xs:enumeration value="mainAirPipe" /> + <xs:enumeration value="mainAirReservoirPipe" /> + <xs:enumeration value="additionalBrakeControlPipe" /> + <xs:enumeration value="vacuumAirPipe" /> + <xs:enumeration value="steamHeatingPipe" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tElectricalWagonCouplerType"> + <xs:annotation> + <xs:documentation>data of available electrical couplers between wagons</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aElectricalWagonCoupler" /> + </xs:complexType> + + <xs:attributeGroup name="aElectricalWagonCoupler"> + <xs:attribute name="positionOnCarEnd" type="rail:tEndPositionType" use="required"> + <xs:annotation> + <xs:documentation>basic position of the electrical wagon coupler (front/rear/both)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="designType" type="rail:tElectricalCouplerDesignType"> + <xs:annotation> + <xs:documentation>description of the design type of the elctrical coupler (mainly control lines)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="positionOnMechanicalCoupler" type="rail:tRelatedPositionType"> + <xs:annotation> + <xs:documentation>the position of electrical coupling in relation to mechanical coupling if integrated</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="numberContacts" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>number of contacts included in the coupler (similar to number of lines)</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tElectricalCouplerDesignType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="unknown" /> + <xs:enumeration value="pushTrainControl36" /> + <xs:enumeration value="pushTrainControl34" /> + <xs:enumeration value="emergencyBrakeDeactivation" /> + <xs:enumeration value="UIC-IS-cable21" /> + <xs:enumeration value="UIC556" /> + <xs:enumeration value="UIC558-18" /> + <xs:enumeration value="UIC568-13" /> + <xs:enumeration value="wireTrainBus" /> + <xs:enumeration value="multifunctionVehicleBus" /> + <xs:enumeration value="trainCommunicationNetwork" /> + <xs:enumeration value="vehicleSpecificConnection" /> + <xs:enumeration value="fibreOptics" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:complexType name="tMechanicalWagonCouplerType"> + <xs:annotation> + <xs:documentation>data of available mechanical couplers between wagons</xs:documentation> + </xs:annotation> + <xs:attributeGroup ref="rail:aMechanicalWagonCoupler" /> + </xs:complexType> + <xs:attributeGroup name="aMechanicalWagonCoupler"> + <xs:attribute name="designType" type="rail:tMechanicalCouplerDesignType" use="required"> + <xs:annotation> + <xs:documentation>design type of the mechanical wagon coupler</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="positionOnCarEnd" type="rail:tEndPositionType" use="required"> + <xs:annotation> + <xs:documentation>basic position of the mechanical wagon coupler (front/rear/both)</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="couplingHeight" type="rail:tLengthM"> + <xs:annotation> + <xs:documentation>coupling level above top of rail in mm</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="pullingForce" type="rail:tForceNewton"> + <xs:annotation> + <xs:documentation>maximum force in Newton to be used for pulling vehicles with this type of coupling</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="pushingForce" type="rail:tForceNewton"> + <xs:annotation> + <xs:documentation>maximum force in Newton to be used for pushing vehicles with this type of coupling</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tMechanicalCouplerDesignType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="unknown" /> + <xs:enumeration value="AAR_KnuckleCoupler" /> + <xs:enumeration value="AK69e" /> + <xs:enumeration value="AlbertCoupler" /> + <xs:enumeration value="APTA_tightlock" /> + <xs:enumeration value="BSI_compact" /> + <xs:enumeration value="BSI_shunting" /> + <xs:enumeration value="buckeyeKnuckleCoupler" /> + <xs:enumeration value="BuddPinCup" /> + <xs:enumeration value="buffersChainScrewCoupler" /> + <xs:enumeration value="C-AKv" /> + <xs:enumeration value="centralBuffer1Chain" /> + <xs:enumeration value="centralBuffer2Chains" /> + <xs:enumeration value="FK-3-2.5" /> + <xs:enumeration value="FK-5.5-4" /> + <xs:enumeration value="FK-9-6" /> + <xs:enumeration value="FK-15-10" /> + <xs:enumeration value="FK-15-12" /> + <xs:enumeration value="GF_Coupler" /> + <xs:enumeration value="GFN" /> + <xs:enumeration value="GFT" /> + <xs:enumeration value="GFV" /> + <xs:enumeration value="Intermat" /> + <xs:enumeration value="linkPin_flat" /> + <xs:enumeration value="linkPin_round" /> + <xs:enumeration value="NorwegianMeatChopper" /> + <xs:enumeration value="SA3_WillisonCoupler" /> + <xs:enumeration value="Scharfenberg" /> + <xs:enumeration value="Scharfenberg10" /> + <xs:enumeration value="Scharfenberg35" /> + <xs:enumeration value="Scharfenberg55" /> + <xs:enumeration value="Scharfenberg140" /> + <xs:enumeration value="Scharfenberg330" /> + <xs:enumeration value="Scharfenberg430" /> + <xs:enumeration value="SchwabCoupler" /> + <xs:enumeration value="Wedgelock" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> </xs:schema> diff --git a/schema/timetable.xsd b/schema/timetable.xsd index 37a9d0b..0ecb3f1 100644 --- a/schema/timetable.xsd +++ b/schema/timetable.xsd @@ -1,693 +1,428 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> - - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ - - For further information see: http://www.railml.org/ - - Content of this file: - XML Schema for railML(R) 2.0 - Definition of elements (partially hidden as complex type) for - timetable sub schema (TT), uses timetable types and - attribute groups from "xs:include" path - </xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="timetableTypes.xsd" /> - - <!----> - <!-- timetable --> - <!-- +- timetablePeriods --> - <!-- +- operatingPeriods --> - <!-- +- categories --> - <!-- +- trainParts --> - <!-- +- trains --> - <!-- +- trainGroups --> - <!-- +- rosterings --> - <!----> - - <xs:element name="timetable"> - <xs:complexType> - <xs:complexContent> - <xs:extension base="rail:tTimetable"> - <xs:sequence> - <xs:element name="timetablePeriods" - type="rail:eTimetablePeriods" minOccurs="0" /> - <xs:element name="operatingPeriods" - type="rail:eOperatingPeriods" minOccurs="0" /> - <xs:element name="categories" type="rail:eCategories" - minOccurs="0" /> - <xs:element name="trainParts" type="rail:eTrainParts" - minOccurs="0" /> - <xs:element name="trains" type="rail:eTrains" - minOccurs="0" /> - <xs:element name="trainGroups" - type="rail:eTrainGroups" minOccurs="0" /> - <xs:element name="rosterings" - type="rail:eRosterings" minOccurs="0"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:key name="timetablePeriodKey"> - <xs:selector xpath=".//rail:timetablePeriods/rail:timetablePeriod"/> - <xs:field xpath="@id"/> - </xs:key> - <xs:keyref name="timetablePeriod-operatingPeriodKeyref" refer="rail:timetablePeriodKey"> - <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" /> - <xs:field xpath="@timetablePeriodRef"/> - </xs:keyref> - <xs:keyref name="timetablePeriod-trainPartKeyref" refer="rail:timetablePeriodKey"> - <xs:selector xpath=".//rail:trainParts/rail:trainPart"/> - <xs:field xpath="@timetablePeriodRef"/> - </xs:keyref> - - <xs:key name="operatingPeriodKey"> - <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" /> - <xs:field xpath="@id" /> - </xs:key> - <xs:keyref name="operatingPeriod-trainPartKeyref" refer="rail:operatingPeriodKey"> - <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:operatingPeriodRef" /> - <xs:field xpath="@ref" /> - </xs:keyref> - <xs:keyref name="operatingPeriod-blockPartKeyref" refer="rail:operatingPeriodKey"> - <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> - <xs:field xpath="@operatingPeriodRef" /> - </xs:keyref> - <xs:keyref name="operatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey"> - <xs:selector xpath=".//rail:circulations/rail:circulation" /> - <xs:field xpath="@operatingPeriodRef" /> - </xs:keyref> - - <xs:key name="categoryKey"> - <xs:selector xpath=".//rail:categories/rail:category" /> - <xs:field xpath="@id" /> - </xs:key> - <xs:keyref name="category-trainPartKeyref" refer="rail:categoryKey"> - <xs:selector xpath=".//rail:trainParts/rail:trainPart" /> - <xs:field xpath="@categoryRef" /> - </xs:keyref> - - <xs:key name="trainPartKey"> - <xs:selector xpath=".//rail:trainParts/rail:trainPart" /> - <xs:field xpath="@id" /> - </xs:key> - <xs:keyref name="trainPart-trainPartSequenceKeyref" refer="rail:trainPartKey"> - <xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence/rail:trainPartRef" /> - <xs:field xpath="@ref" /> - </xs:keyref> - <xs:keyref name="trainPart-blockPartKeyref" refer="rail:trainPartKey"> - <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> - <xs:field xpath="@trainPartRef" /> - </xs:keyref> - - <xs:key name="trainKey"> - <xs:selector xpath=".//rail:trains/rail:train" /> - <xs:field xpath="@id" /> - </xs:key> - <xs:keyref name="train-trainGroupKeyref" refer="rail:trainKey"> - <xs:selector xpath=".//rail:trainGroups/rail:trainGroup/rail:trainRef" /> - <xs:field xpath="@ref" /> - </xs:keyref> - - <xs:key name="blockPartKey"> - <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> - <xs:field xpath="@id" /> - </xs:key> - <xs:keyref name="blockPart-blockPartSequenceKeyref" refer="rail:blockPartKey"> - <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence/rail:blockPartRef" /> - <xs:field xpath="@ref" /> - </xs:keyref> - - <xs:key name="blockKey"> - <xs:selector xpath=".//rail:blocks/rail:block" /> - <xs:field xpath="@id" /> - </xs:key> - <xs:keyref name="block-blockPartSequenceKeyref" refer="rail:blockKey"> - <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence" /> - <xs:field xpath="@basicBlockRef" /> - </xs:keyref> - <xs:keyref name="block-circulationKeyref" refer="rail:blockKey"> - <xs:selector xpath=".//rail:circulations/rail:circulation" /> - <xs:field xpath="@blockRef" /> - </xs:keyref> - <xs:keyref name="nextBlock-circulationKeyref" refer="rail:blockKey"> - <xs:selector xpath=".//rail:circulations/rail:circulation" /> - <xs:field xpath="@nextBlockRef" /> - </xs:keyref> - - </xs:element> - - <!----> - <!-- operatingPeriods --> - <!-- +- operatingPeriod --> - <!----> - - <xs:complexType name="eOperatingPeriods"> - <xs:sequence> - <xs:element name="operatingPeriod" type="rail:eOperatingPeriod" - maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- operatingPeriod --> - <!-- +- operatingDay --> - <!-- +- specialService --> - <!----> - - <xs:complexType name="eOperatingPeriod"> - <xs:complexContent> - <xs:extension base="rail:tOperatingPeriod"> - <xs:sequence> - <xs:element name="operatingDay" - type="rail:eOperatingDay" minOccurs="0" maxOccurs="unbounded"> - </xs:element> - <xs:element name="specialService" - type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded"> - </xs:element> - <xs:any namespace="##other" - processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- operatingDay --> - <!-- +- operatingDayDeviance --> - <!----> - - <xs:complexType name="eOperatingDay"> - <xs:complexContent> - <xs:extension base="rail:tOperatingDay"> - <xs:sequence> - <xs:element name="operatingDayDeviance" - type="rail:tOperatingDayDeviance" minOccurs="0" maxOccurs="unbounded"> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- timetablePeriods --> - <!-- +- timetablePeriod --> - <!----> - - <xs:complexType name="eTimetablePeriods"> - <xs:sequence> - <xs:element name="timetablePeriod" type="rail:eTimetablePeriod" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- timetablePeriod --> - <!-- +- holidays --> - <!----> - - <xs:complexType name="eTimetablePeriod"> - <xs:complexContent> - <xs:extension base="rail:tTimetablePeriod"> - <xs:sequence> - <xs:element name="holidays" type="rail:eHolidays" minOccurs="0"/> - <xs:any namespace="##other" - processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- holidays --> - <!-- +- holiday --> - <!----> - - <xs:complexType name="eHolidays"> - <xs:sequence> - <xs:element name="holiday" type="rail:tHoliday" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- formationTT --> - <!-- +- equipmentUsage --> - <!-- +- passengerUsage --> - <!-- +- reservationInfo --> - <!----> - - <xs:complexType name="eFormationTT"> - <xs:complexContent> - <xs:extension base="rail:tFormationTT"> - <xs:sequence> - <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0" /> - <xs:element name="passengerUsage" type="rail:ePassengerUsage" minOccurs="0"/> - <xs:element name="reservationInfo" type="rail:eReservationInfo" minOccurs="0"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- equipmentUsage --> - <!-- +-equipment --> - <!----> - - <xs:complexType name="eEquipmentUsage"> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of elements (partially hidden as complex type) for timetable sub schema (TT), uses timetable types and attribute groups from "xs:include" path</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="timetableTypes.xsd" /> + + <xs:element name="timetable"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="rail:tTimetable"> + <xs:sequence> + <xs:element name="timetablePeriods" type="rail:eTimetablePeriods" minOccurs="0" /> + <xs:element name="operatingPeriods" type="rail:eOperatingPeriods" minOccurs="0" /> + <xs:element name="categories" type="rail:eCategories" minOccurs="0" /> + <xs:element name="trainParts" type="rail:eTrainParts" minOccurs="0" /> + <xs:element name="trains" type="rail:eTrains" minOccurs="0" /> + <xs:element name="trainGroups" type="rail:eTrainGroups" minOccurs="0" /> + <xs:element name="rosterings" type="rail:eRosterings" minOccurs="0" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:key name="timetablePeriodKey"> + <xs:selector xpath=".//rail:timetablePeriods/rail:timetablePeriod" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="timetablePeriod-operatingPeriodKeyref" refer="rail:timetablePeriodKey"> + <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" /> + <xs:field xpath="@timetablePeriodRef" /> + </xs:keyref> + <xs:keyref name="timetablePeriod-trainPartKeyref" refer="rail:timetablePeriodKey"> + <xs:selector xpath=".//rail:trainParts/rail:trainPart" /> + <xs:field xpath="@timetablePeriodRef" /> + </xs:keyref> + + <xs:key name="operatingPeriodKey"> + <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="operatingPeriod-trainPartKeyref" refer="rail:operatingPeriodKey"> + <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:operatingPeriodRef" /> + <xs:field xpath="@ref" /> + </xs:keyref> + <xs:keyref name="operatingPeriod-blockPartKeyref" refer="rail:operatingPeriodKey"> + <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> + <xs:field xpath="@operatingPeriodRef" /> + </xs:keyref> + <xs:keyref name="operatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey"> + <xs:selector xpath=".//rail:circulations/rail:circulation" /> + <xs:field xpath="@operatingPeriodRef" /> + </xs:keyref> + <xs:keyref name="nextOperatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey"> + <xs:selector xpath=".//rail:circulations/rail:circulation" /> + <xs:field xpath="@nextOperatingPeriodRef" /> + </xs:keyref> + + <xs:key name="categoryKey"> + <xs:selector xpath=".//rail:categories/rail:category" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="category-trainPartKeyref" refer="rail:categoryKey"> + <xs:selector xpath=".//rail:trainParts/rail:trainPart" /> + <xs:field xpath="@categoryRef" /> + </xs:keyref> + <xs:keyref name="category-trainPartSequenceKeyref" refer="rail:categoryKey"> + <xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence" /> + <xs:field xpath="@categoryRef" /> + </xs:keyref> + + <xs:key name="trainPartKey"> + <xs:selector xpath=".//rail:trainParts/rail:trainPart" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="trainPart-trainPartSequenceKeyref" refer="rail:trainPartKey"> + <xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence/rail:trainPartRef" /> + <xs:field xpath="@ref" /> + </xs:keyref> + <xs:keyref name="trainPart-blockPartKeyref" refer="rail:trainPartKey"> + <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> + <xs:field xpath="@trainPartRef" /> + </xs:keyref> + + <xs:key name="trainKey"> + <xs:selector xpath=".//rail:trains/rail:train" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="train-trainGroupKeyref" refer="rail:trainKey"> + <xs:selector xpath=".//rail:trainGroups/rail:trainGroup/rail:trainRef" /> + <xs:field xpath="@ref" /> + </xs:keyref> + + <xs:key name="blockPartKey"> + <xs:selector xpath=".//rail:blockParts/rail:blockPart" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="blockPart-blockPartSequenceKeyref" refer="rail:blockPartKey"> + <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence/rail:blockPartRef" /> + <xs:field xpath="@ref" /> + </xs:keyref> + + <xs:key name="blockKey"> + <xs:selector xpath=".//rail:blocks/rail:block" /> + <xs:field xpath="@id" /> + </xs:key> + <xs:keyref name="block-blockPartSequenceKeyref" refer="rail:blockKey"> + <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence" /> + <xs:field xpath="@basicBlockRef" /> + </xs:keyref> + <xs:keyref name="block-circulationKeyref" refer="rail:blockKey"> + <xs:selector xpath=".//rail:circulations/rail:circulation" /> + <xs:field xpath="@blockRef" /> + </xs:keyref> + <xs:keyref name="nextBlock-circulationKeyref" refer="rail:blockKey"> + <xs:selector xpath=".//rail:circulations/rail:circulation" /> + <xs:field xpath="@nextBlockRef" /> + </xs:keyref> + + </xs:element> + + <xs:complexType name="eOperatingPeriods"> + <xs:sequence> + <xs:element name="operatingPeriod" type="rail:eOperatingPeriod" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eOperatingPeriod"> + <xs:complexContent> + <xs:extension base="rail:tOperatingPeriod"> <xs:sequence> - <xs:element name="equipment" type="rail:tEquipment" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="operatingDay" type="rail:eOperatingDay" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="specialService" type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> - </xs:complexType> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOperatingDay"> + <xs:complexContent> + <xs:extension base="rail:tOperatingDay"> + <xs:sequence> + <xs:element name="operatingDayDeviance" type="rail:tOperatingDayDeviance" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTimetablePeriods"> + <xs:sequence> + <xs:element name="timetablePeriod" type="rail:eTimetablePeriod" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTimetablePeriod"> + <xs:complexContent> + <xs:extension base="rail:tTimetablePeriod"> + <xs:sequence> + <xs:element name="holidays" type="rail:eHolidays" minOccurs="0" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eHolidays"> + <xs:sequence> + <xs:element name="holiday" type="rail:tHoliday" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eFormationTT"> + <xs:complexContent> + <xs:extension base="rail:tFormationTT"> + <xs:sequence> + <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0" /> + <xs:element name="passengerUsage" type="rail:ePassengerFacility" minOccurs="0" /> + <xs:element name="reservationInfo" type="rail:eReservationInfo" minOccurs="0" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eEquipmentUsage"> + <xs:sequence> + <xs:element name="equipment" type="rail:tEquipment" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eReservationInfo"> + <xs:sequence> + <xs:element name="booking" type="rail:tBooking" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eCategories"> + <xs:sequence> + <xs:element name="category" type="rail:eCategory" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eCategory"> + <xs:complexContent> + <xs:extension base="rail:tCategory" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrainParts"> + <xs:sequence> + <xs:element name="trainPart" type="rail:eTrainPart" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrainPart"> + <xs:complexContent> + <xs:extension base="rail:tTrainPart"> + <xs:sequence> + <xs:element name="formationTT" type="rail:eFormationTT" minOccurs="0" /> + <xs:element name="operatingPeriodRef" type="rail:eOperatingPeriodRef" minOccurs="0" /> + <xs:element name="ocpsTT" type="rail:eOcpsTT" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>Deprecated for next major release, use "generic any element" instead.</xs:documentation> + </xs:annotation> + </xs:any> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOperatingPeriodRef"> + <xs:complexContent> + <xs:extension base="rail:tOperatingPeriodRef"> + <xs:sequence> + <xs:element name="specialService" type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eOcpsTT"> + <xs:sequence> + <xs:element name="ocpTT" type="rail:eOcpTT" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eOcpTT"> + <xs:complexContent> + <xs:extension base="rail:tOcpTT"> + <xs:sequence> + <xs:element name="times" type="rail:eArrivalDepartureTimes" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="connections" type="rail:eConnectionsTT" minOccurs="0" /> + <xs:element name="statistics" type="rail:eStatistics" minOccurs="0" /> + <xs:element name="sectionTT" type="rail:eSectionTT" minOccurs="0" /> + <xs:element name="stopDescription" type="rail:eStopDescription" minOccurs="0" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eArrivalDepartureTimes"> + <xs:complexContent> + <xs:extension base="rail:tArrivalDepartureTimes" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eConnectionsTT"> + <xs:sequence> + <xs:element name="connection" type="rail:tConnectionTT" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eStatistics"> + <xs:sequence> + <xs:element name="statistic" type="rail:eStatistic" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eStatistic"> + <xs:complexContent> + <xs:extension base="rail:tStatistic"> + <xs:sequence> + <xs:element name="mean" type="rail:tStatisticTimes" minOccurs="0" /> + <xs:element name="median" type="rail:tStatisticTimes" minOccurs="0" /> + <xs:element name="standardDeviation" type="rail:tStandardDeviationTimes" minOccurs="0" /> + <xs:element name="statisticAnalyses" type="rail:tStatisticAnalyses" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="eSectionTT"> + <xs:complexContent> + <xs:extension base="rail:tSectionTT"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" name="trackRef" type="rail:tTrackRef" /> + <xs:element minOccurs="0" name="runTimes" type="rail:tRunTimes" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - <!----> - <!-- passengerUsage --> - <!-- +-places --> - <!-- +-service --> - <!----> + <xs:complexType name="eStopDescription"> + <xs:complexContent> + <xs:extension base="rail:tStopDescription"> + <xs:sequence> + <xs:element minOccurs="0" name="stopTimes" type="rail:tStopTimes" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrains"> + <xs:sequence> + <xs:element name="train" type="rail:eTrain" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrain"> + <xs:complexContent> + <xs:extension base="rail:tTrain"> + <xs:sequence> + <xs:element name="trainPartSequence" type="rail:eTrainPartSequence" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - <xs:complexType name="ePassengerUsage"> + <xs:complexType name="eTrainPartSequence"> + <xs:complexContent> + <xs:extension base="rail:tTrainPartSequence"> <xs:sequence> - <xs:element name="places" type="rail:tPlaces" minOccurs="0" maxOccurs="unbounded"/> - <xs:element name="service" type="rail:tService" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="trainPartRef" type="rail:tTrainPartRef" maxOccurs="unbounded" /> + <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0" /> + <xs:element name="brakeUsage" type="rail:eBrakeUsage" minOccurs="0" /> </xs:sequence> - </xs:complexType> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eBrakeUsage"> + <xs:complexContent> + <xs:extension base="rail:tBasicBrakeType"> + <xs:attributeGroup ref="rail:aBrakeUsage" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eTrainGroups"> + <xs:sequence> + <xs:element name="trainGroup" type="rail:eTrainGroup" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eTrainGroup"> + <xs:complexContent> + <xs:extension base="rail:tTrainGroup"> + <xs:sequence> + <xs:element name="trainRef" type="rail:tTrainRef" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eRosterings"> + <xs:sequence> + <xs:element name="rostering" type="rail:eRostering" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eRostering"> + <xs:complexContent> + <xs:extension base="rail:tRostering"> + <xs:sequence> + <xs:element name="blockParts" type="rail:eBlockParts" /> + <xs:element name="blocks" type="rail:eBlocks" /> + <xs:element name="circulations" type="rail:eCirculations" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eBlocks"> + <xs:sequence> + <xs:element name="block" type="rail:eBlock" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eBlock"> + <xs:complexContent> + <xs:extension base="rail:tBlock"> + <xs:sequence> + <xs:element name="blockPartSequence" type="rail:eBlockPartSequence" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> - <!----> - <!-- reservationInfo --> - <!-- +- booking --> - <!----> - - <xs:complexType name="eReservationInfo"> - <xs:sequence> - <xs:element name="booking" type="rail:tBooking" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- categories --> - <!-- +- category --> - <!----> - - <xs:complexType name="eCategories"> - <xs:sequence> - <xs:element name="category" type="rail:eCategory" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- category --> - <!----> - - <xs:complexType name="eCategory"> - <xs:complexContent> - <xs:extension base="rail:tCategory"> - <xs:sequence> - <xs:any namespace="##other" - processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trainParts --> - <!-- +- trainPart --> - <!----> - - <xs:complexType name="eTrainParts"> - <xs:sequence> - <xs:element name="trainPart" type="rail:eTrainPart" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- trainPart --> - <!-- +- formationTT --> - <!-- +- operatingPeriodRef --> - <!-- +- ocpsTT --> - <!----> - - <xs:complexType name="eTrainPart"> - <xs:complexContent> - <xs:extension base="rail:tTrainPart"> - <xs:sequence> - <xs:element name="formationTT" type="rail:eFormationTT" - minOccurs="0" /> - <xs:element name="operatingPeriodRef" type="rail:eOperatingPeriodRef" - minOccurs="0"/> - <xs:element name="ocpsTT" - type="rail:eOcpsTT"> - </xs:element> - <xs:any namespace="##other" - processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- operatingPeriodRef --> - <!-- +- specialService --> - <!----> - - <xs:complexType name="eOperatingPeriodRef"> - <xs:complexContent> - <xs:extension base="rail:tOperatingPeriodRef"> - <xs:sequence> - <xs:element name="specialService" type="rail:tSpecialService" - minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- ocpsTT --> - <!-- +- ocpTT --> - <!----> - - <xs:complexType name="eOcpsTT"> - <xs:sequence> - <xs:element name="ocpTT" type="rail:eOcpTT" - maxOccurs="unbounded"> - </xs:element> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- ocpTT --> - <!-- +- times --> - <!-- +- connections --> - <!-- +- statistics --> - <!-- +- sectionTT --> - <!-- +- stopDescription --> - <!----> - - <xs:complexType name="eOcpTT"> - <xs:complexContent> - <xs:extension base="rail:tOcpTT"> - <xs:sequence> - <xs:element name="times" type="rail:eArrivalDepartureTimes" - minOccurs="0" maxOccurs="unbounded"> - </xs:element> - <xs:element name="connections" type="rail:eConnectionsTT" - minOccurs="0"> - </xs:element> - <xs:element name="statistics" type="rail:eStatistics" - minOccurs="0"> - </xs:element> - <xs:element name="sectionTT" type="rail:eSectionTT" - minOccurs="0"> - </xs:element> - <xs:element name="stopDescription" - type="rail:eStopDescription" minOccurs="0"> - </xs:element> - <xs:any namespace="##other" - processContents="strict" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- arrivalDepartureTimes --> - <!----> - - <xs:complexType name="eArrivalDepartureTimes"> - <xs:complexContent> - <xs:extension base="rail:tArrivalDepartureTimes" /> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- connections --> - <!-- +- connection --> - <!----> - - <xs:complexType name="eConnectionsTT"> - <xs:sequence> - <xs:element name="connection" type="rail:tConnectionTT" - minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- statistics --> - <!-- +- statistic --> - <!----> - - <xs:complexType name="eStatistics"> - <xs:sequence> - <xs:element name="statistic" type="rail:eStatistic" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- statistic --> - <!-- +- mean --> - <!-- +- median --> - <!-- +- standardDeviation --> - <!-- +- statisticAnalyses --> - <!----> - - <xs:complexType name="eStatistic"> - <xs:complexContent> - <xs:extension base="rail:tStatistic"> - <xs:sequence> - <xs:element name="mean" type="rail:tStatisticTimes" minOccurs="0"/> - <xs:element name="median" type="rail:tStatisticTimes" minOccurs="0"/> - <xs:element name="standardDeviation" type="rail:tStandardDeviationTimes" minOccurs="0"/> - <xs:element name="statisticAnalyses" type="rail:tStatisticAnalyses" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- sectionTT --> - <!-- +- trackRef --> - <!-- +- runTimes --> - <!----> - - <xs:complexType name="eSectionTT"> - <xs:complexContent> - <xs:extension base="rail:tSectionTT"> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="unbounded" name="trackRef" type="rail:tElementWithReference" /> - <xs:element minOccurs="0" name="runTimes" type="rail:tRunTimes" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- stopDescription --> - <!-- +- stopTimes --> - <!----> - - <xs:complexType name="eStopDescription"> - <xs:complexContent> - <xs:extension base="rail:tStopDescription"> - <xs:sequence> - <xs:element minOccurs="0" name="stopTimes" type="rail:tStopTimes" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trains --> - <!-- +- train --> - <!----> - - <xs:complexType name="eTrains"> - <xs:sequence> - <xs:element name="train" type="rail:eTrain" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- train --> - <!-- +- trainPartSequence --> - <!----> - - <xs:complexType name="eTrain"> - <xs:complexContent> - <xs:extension base="rail:tTrain"> - <xs:sequence> - <xs:element name="trainPartSequence" type="rail:eTrainPartSequence" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trainPartSequence --> - <!-- +- trainPartRef --> - <!-- +- equipmentUsage --> - <!-- +- brakeUsage --> - <!----> - - <xs:complexType name="eTrainPartSequence"> - <xs:complexContent> - <xs:extension base="rail:tTrainPartSequence"> - <xs:sequence> - <xs:element name="trainPartRef" type="rail:tTrainPartRef" maxOccurs="unbounded"/> - <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0"/> - <xs:element name="brakeUsage" type="rail:eBrakeUsage" minOccurs="0"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- brakeUsage --> - <!----> - - <xs:complexType name="eBrakeUsage"> - <xs:complexContent> - <xs:extension base="rail:tBasicBrakeType"> - <xs:attributeGroup ref="rail:aBrakeUsage" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- trainGroups --> - <!-- +- trainGroup --> - <!----> - - <xs:complexType name="eTrainGroups"> - <xs:sequence> - <xs:element name="trainGroup" type="rail:eTrainGroup" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - - <!-- train --> - <!-- +- trainRef --> <!-- +- trainPartSequence --> - <!----> - - <xs:complexType name="eTrainGroup"> - <xs:complexContent> - <xs:extension base="rail:tTrainGroup"> - <xs:sequence> - <xs:element name="trainRef" type="rail:tTrainRef" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!--*********************************************************--> - <!-- Rostering types --> - <!--*********************************************************--> - - <!----> - <!-- rosterings --> - <!-- +- rostering --> - <!----> - - <xs:complexType name="eRosterings"> - <xs:sequence> - <xs:element name="rostering" type="rail:eRostering" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- rostering --> - <!-- +- blockParts --> - <!-- +- blocks --> - <!-- +- circulations --> - <!----> - - <xs:complexType name="eRostering"> - <xs:complexContent> - <xs:extension base="rail:tRostering"> - <xs:sequence> - <xs:element name="blockParts" type="rail:eBlockParts"/> - <xs:element name="blocks" type="rail:eBlocks"/> - <xs:element name="circulations" type="rail:eCirculations"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- blocks --> - <!-- +- block --> - <!----> - - <xs:complexType name="eBlocks"> - <xs:sequence> - <xs:element name="block" type="rail:eBlock" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- blockParts --> - <!-- +- blockPart --> - <!-- +- blockPartRef --> - <!----> - - <xs:complexType name="eBlock"> - <xs:complexContent> - <xs:extension base="rail:tBlock"> - <xs:sequence> - <xs:element name="blockPartSequence" type="rail:eBlockPartSequence" minOccurs="0" maxOccurs="unbounded"/> - <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="eBlockPartSequence"> - <xs:complexContent> - <xs:extension base="rail:tBlockPartSequence"> - <xs:sequence> - <xs:element name="blockPartRef" type="rail:tBlockPartRef" maxOccurs="unbounded"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <!----> - <!-- blockParts --> - <!-- +- blockPart --> - <!----> - - <xs:complexType name="eBlockParts"> - <xs:sequence> - <xs:element name="blockPart" type="rail:tBlockPart" maxOccurs="unbounded"/> - <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <!----> - <!-- circulations --> - <!-- +- circulation --> - <!----> - - <xs:complexType name="eCirculations"> - <xs:sequence> - <xs:element name="circulation" type="rail:tCirculation" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - </xs:schema> + <xs:complexType name="eBlockPartSequence"> + <xs:complexContent> + <xs:extension base="rail:tBlockPartSequence"> + <xs:sequence> + <xs:element name="blockPartRef" type="rail:tBlockPartRef" maxOccurs="unbounded" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="eBlockParts"> + <xs:sequence> + <xs:element name="blockPart" type="rail:tBlockPart" maxOccurs="unbounded" /> + <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="eCirculations"> + <xs:sequence> + <xs:element name="circulation" type="rail:tCirculation" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + +</xs:schema> diff --git a/schema/timetableTypes.xsd b/schema/timetableTypes.xsd index 9b551e0..cd71051 100644 --- a/schema/timetableTypes.xsd +++ b/schema/timetableTypes.xsd @@ -1,457 +1,329 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- $Id$ --> -<xs:schema xmlns:rail="http://www.railml.org/schemas/2009" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xml="http://www.w3.org/XML/1998/namespace" - targetNamespace="http://www.railml.org/schemas/2009" - elementFormDefault="qualified" version="2.0"> - - <xs:annotation> - <xs:documentation> - Copyright (c) railML.org; All Rights Reserved. - - This work is licensed under a Creative Commons Attribution 2.0 License. - http://creativecommons.org/licenses/by/2.0/ - - For further information see: http://www.railml.org/ - - Content of this file: - XML Schema for railML(R) 2.0 - Definition of attribute groups, simple and complex types, - used by timetable sub schema (TT) - </xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="railwayUnits.xsd" /> - <xs:include schemaLocation="railwayBaseTypes.xsd" /> - - <xs:import namespace="http://www.w3.org/XML/1998/namespace" - schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> - - <!--*********************************************************--> - <!-- Timetable itself --> - <!--*********************************************************--> - - <xs:complexType name="tTimetable"> - <xs:complexContent> - <xs:extension base="rail:tGlobalElementWithMetadata"> - <xs:attributeGroup ref="rail:aTimetable" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTimetable"> - <xs:attribute name="infrastructureRef" type="rail:tGenericRef" /> - <xs:attribute name="rollingstockRef" type="rail:tGenericRef" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Operating Period --> - <!--*********************************************************--> - - <xs:complexType name="tOperatingPeriod"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aOperatingPeriod" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aOperatingPeriod"> - <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" /> - <xs:attributeGroup ref="rail:aServicePeriod" /> - </xs:attributeGroup> - - <xs:attributeGroup name="aServicePeriod"> - <xs:attributeGroup ref="rail:aTimePeriod" /> - <xs:attribute name="bitMask"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:whiteSpace value="collapse" /> - <xs:pattern value="[0-1]*" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Special service --> - <!--*********************************************************--> - - <xs:complexType name="tSpecialService"> - <xs:attributeGroup ref="rail:aSpecialService" /> - </xs:complexType> - - <xs:attributeGroup name="aSpecialService"> - <xs:attribute name="type" use="required"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="include" /> - <xs:enumeration value="exclude" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="singleDate" type="xs:date" /> - <xs:attributeGroup ref="rail:aTimePeriod" /> - <xs:attributeGroup ref="rail:aPeriodTimeSpan" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Operating Day --> - <!--*********************************************************--> - - <xs:complexType name="tOperatingDay"> - <xs:attributeGroup ref="rail:aOperatingCode" /> - <xs:attributeGroup ref="rail:aTimePeriod" /> - </xs:complexType> - - <xs:attributeGroup name="aOperatingCode"> - <xs:attribute name="operatingCode" use="required"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:length value="7" /> - <xs:pattern value="[0-1]{7}" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Operating day devianvce --> - <!--*********************************************************--> - - <xs:complexType name="tOperatingDayDeviance"> - <xs:attributeGroup ref="rail:aOperatingCode" /> - <xs:attributeGroup ref="rail:aOperatingDayDeviance" /> - </xs:complexType> - - <xs:attributeGroup name="aOperatingDayDeviance"> - <xs:attribute name="holidayOffset" type="xs:integer" use="required" /> - <xs:attribute name="ranking" type="xs:positiveInteger" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Holiday --> - <!--*********************************************************--> - - <xs:complexType name="tHoliday"> - <xs:attributeGroup ref="rail:aHoliday" /> - </xs:complexType> - - <xs:attributeGroup name="aHoliday"> - <xs:attribute name="holidayDate" type="xs:date" - use="required" /> - <xs:attribute name="description" type="rail:tElementDescription" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Timetable period --> - <!--*********************************************************--> - - <xs:complexType name="tTimetablePeriod"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aTimetablePeriod" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTimetablePeriod"> - <xs:attributeGroup ref="rail:aTimePeriod" /> - <xs:attributeGroup ref="rail:aPeriodTimeSpan" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Formation --> - <!--*********************************************************--> - - <xs:complexType name="tFormationTT"> - <xs:attributeGroup ref="rail:aFormationTT" /> - </xs:complexType> - - <xs:attributeGroup name="aFormationTT"> - <xs:attribute name="formationRef" type="rail:tGenericRef" /> - <xs:attribute name="weight" type="rail:tWeightTons" /> - <xs:attribute name="length" type="rail:tLengthM" /> - <xs:attribute name="speed" type="rail:tSpeedKmPerHour" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- equipment usage --> - <!--*********************************************************--> - - <xs:complexType name="tEquipment"> - <xs:attributeGroup ref="rail:aEquipment" /> - </xs:complexType> - - <xs:attributeGroup name="aEquipment"> - <xs:attribute name="type" type="rail:tNationalSystemsType" /> - <xs:attribute name="uses" type="xs:boolean" /> - <xs:attribute name="description" type="xs:string" /> - <!-- Provide an extension point for other attributes--> - <xs:attributeGroup ref="rail:anyAttribute" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- brake usage --> - <!--*********************************************************--> - - <xs:complexType name="tBrakeUsage"> - <xs:attributeGroup ref="rail:aBrakeUsage" /> - </xs:complexType> - - <xs:attributeGroup name="aBrakeUsage"> - <xs:attribute name="brakePercentage" type="rail:tBrakePercentage" /> - <!-- Provide an extension point for other attributes--> - <xs:attributeGroup ref="rail:anyAttribute" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Booking --> - <!--*********************************************************--> - - <xs:complexType name="tBooking"> - <xs:attributeGroup ref="rail:aBooking" /> - </xs:complexType> - - <xs:attributeGroup name="aBooking"> - <xs:attribute name="bookingNumber" type="rail:tGenericName" use="required" /> - <xs:attribute name="vehicleRef" type="rail:tGenericRef" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Category data, used to group trains by priority --> - <!--*********************************************************--> - - <xs:complexType name="tCategory"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aCategory" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aCategory"> - <xs:attribute name="trainUsage" type="rail:tUsageType" /> - <xs:attribute name="deadrun" type="xs:boolean" /> - <xs:attribute name="categoryPriority" type="xs:string" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train part --> - <!--*********************************************************--> - - <xs:complexType name="tTrainPart"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aTrainPart" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTrainPart"> - <xs:attribute name="trainLine" type="xs:string" /> - <xs:attribute name="trainNumber" type="xs:string" /> - <xs:attribute name="additionalTrainNumber" type="xs:string" /> - <xs:attribute name="processStatus" type="rail:tProcessStatus" /> - <xs:attribute name="debitcode" type="xs:integer" /> - <xs:attribute name="remarks" type="xs:string" /> - <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" /> - <xs:attribute name="categoryRef" type="rail:tGenericRef" /> - <xs:attribute name="operator" type="xs:string" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train --> - <!--*********************************************************--> - - <xs:complexType name="tTrain"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aTrain" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTrain"> - <xs:attribute name="type" use="required"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="operational" /> - <xs:enumeration value="commercial" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="trainNumber" type="xs:string" /> - <xs:attribute name="additionalTrainNumber" type="xs:string" /> - <xs:attribute name="scope"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="primary" /> - <xs:enumeration value="secondary" /> - <xs:enumeration value="secondaryStart" /> - <xs:enumeration value="secondaryEnd" /> - <xs:enumeration value="secondaryInner" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="processStatus" type="rail:tProcessStatus" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Group--> - <!--*********************************************************--> - - <xs:complexType name="tTrainGroup"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aTrainGroup" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTrainGroup"> - <xs:attribute name="type"> - <xs:simpleType> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="interval" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="trainNumber" type="xs:string" /> - <xs:attribute name="processStatus" type="rail:tProcessStatus" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Ref--> - <!--*********************************************************--> - - <xs:complexType name="tTrainRef"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:attributeGroup ref="rail:aTrainRef" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTrainRef"> - <xs:attribute name="sequence" type="rail:tCounter" use="required" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Part Sequence --> - <!--*********************************************************--> - - <xs:complexType name="tTrainPartSequence"> - <xs:attributeGroup ref="rail:aTrainPartSequence" /> - </xs:complexType> - - <xs:attributeGroup name="aTrainPartSequence"> - <xs:attribute name="sequence" type="rail:tCounter" use="required" /> - <xs:attribute name="pathStatus" type="rail:tPathStatus" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Train Part Ref--> - <!--*********************************************************--> - - <xs:complexType name="tTrainPartRef"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:attributeGroup ref="rail:aTrainPartRef" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aTrainPartRef"> - <xs:attribute name="position" type="rail:tCounter" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Operating Period Ref--> - <!--*********************************************************--> - - <xs:complexType name="tOperatingPeriodRef"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference"> - <xs:attributeGroup ref="rail:aOperatingPeriodRef" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <xs:attributeGroup name="aOperatingPeriodRef"> - <xs:attributeGroup ref="rail:aTimePeriod" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- ocpTT data --> - <!--*********************************************************--> - - <xs:complexType name="tOcpTT"> - <xs:attributeGroup ref="rail:aOcpTT" /> - </xs:complexType> - - <xs:attributeGroup name="aOcpTT"> - <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" /> - <xs:attribute name="trackRef" type="rail:tGenericRef" /> - <xs:attribute name="trackInfo" type="xs:string" /> - <xs:attribute name="ocpType"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="stop" /> - <xs:enumeration value="pass" /> - <xs:enumeration value="begin" /> - <xs:enumeration value="end" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="remarks" type="xs:string" /> - <xs:attribute name="trainReverse" type="xs:boolean" /> - <xs:attribute name="alignment" type="rail:tTrainAlignment" /> - <xs:attribute name="offset" type="rail:tLengthM" /> - <xs:attribute name="shuntingTime" type="xs:duration" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Arrival and departure times --> - <!--*********************************************************--> - - <xs:complexType name="tArrivalDepartureTimes"> - <xs:attributeGroup ref="rail:aTimesScope" /> - <xs:attributeGroup ref="rail:aArrivalDepartureTimes" /> - </xs:complexType> - - <xs:attributeGroup name="aArrivalDepartureTimes"> - <xs:attribute name="arrival" type="xs:time" /> - <xs:attribute name="arrivalDay" type="xs:integer" /> - <xs:attribute name="departure" type="xs:time" /> - <xs:attribute name="departureDay" type="xs:integer" /> - </xs:attributeGroup> - - <xs:attributeGroup name="aTimesScope"> - <xs:attribute name="scope" use="required"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="actual" /> - <xs:enumeration value="calculated" /> - <xs:enumeration value="published" /> - <xs:enumeration value="scheduled" /> - <xs:enumeration value="earliest" /> - <xs:enumeration value="latest" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Stop times --> - <!--*********************************************************--> + <!-- $Id$ --> +<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1"> + + <xs:annotation> + <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation> + <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. http://creativecommons.org/licenses/by/2.0/</xs:documentation> + <xs:documentation>For further information see: http://www.railml.org/</xs:documentation> + <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by timetable sub schema (TT)</xs:documentation> + </xs:annotation> + + <xs:include schemaLocation="railwayUnits.xsd" /> + <xs:include schemaLocation="railwayBaseTypes.xsd" /> + + <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> + + <xs:complexType name="tTimetable"> + <xs:complexContent> + <xs:extension base="rail:tGlobalElementWithMetadata"> + <xs:attributeGroup ref="rail:aTimetable" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTimetable"> + <xs:attribute name="infrastructureRef" type="rail:tGenericRef" /> + <xs:attribute name="rollingstockRef" type="rail:tGenericRef" /> + </xs:attributeGroup> + + <xs:complexType name="tOperatingPeriod"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aOperatingPeriod" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aOperatingPeriod"> + <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" /> + <xs:attributeGroup ref="rail:aServicePeriod" /> + </xs:attributeGroup> + + <xs:attributeGroup name="aServicePeriod"> + <xs:attributeGroup ref="rail:aTimePeriod" /> + <xs:attribute name="bitMask" type="rail:tBitMask" /> + </xs:attributeGroup> + + <xs:complexType name="tSpecialService"> + <xs:attributeGroup ref="rail:aSpecialService" /> + </xs:complexType> + + <xs:attributeGroup name="aSpecialService"> + <xs:attribute name="type" type="rail:tSpecialServiceType" use="required" /> + <xs:attribute name="singleDate" type="xs:date" /> + <xs:attributeGroup ref="rail:aTimePeriod" /> + <xs:attributeGroup ref="rail:aPeriodTimeSpan" /> + </xs:attributeGroup> + + <xs:complexType name="tOperatingDay"> + <xs:attributeGroup ref="rail:aOperatingCode" /> + <xs:attributeGroup ref="rail:aTimePeriod" /> + </xs:complexType> + + <xs:attributeGroup name="aOperatingCode"> + <xs:attribute name="operatingCode" type="rail:tOperatingCode" use="required" /> + <xs:attribute name="onRequest" type="xs:boolean"> + <xs:annotation> + <xs:documentation>needed for "runs Monday to Friday and additionally Sunday on request"</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tOperatingDayDeviance"> + <xs:attributeGroup ref="rail:aOperatingCode" /> + <xs:attributeGroup ref="rail:aOperatingDayDeviance" /> + </xs:complexType> + + <xs:attributeGroup name="aOperatingDayDeviance"> + <xs:attribute name="holidayOffset" type="xs:integer" use="required" /> + <xs:attribute name="ranking" type="rail:tPositiveCounter" /> + </xs:attributeGroup> + + <xs:complexType name="tHoliday"> + <xs:attributeGroup ref="rail:aHoliday" /> + </xs:complexType> + + <xs:attributeGroup name="aHoliday"> + <xs:attribute name="holidayDate" type="xs:date" use="required" /> + <xs:attribute name="description" type="rail:tElementDescription" /> + </xs:attributeGroup> + + <xs:complexType name="tTimetablePeriod"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aTimetablePeriod" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTimetablePeriod"> + <xs:attributeGroup ref="rail:aTimePeriod" /> + <xs:attributeGroup ref="rail:aPeriodTimeSpan" /> + </xs:attributeGroup> + + <xs:complexType name="tFormationTT"> + <xs:attributeGroup ref="rail:aFormationTT" /> + </xs:complexType> + + <xs:attributeGroup name="aFormationTT"> + <xs:attribute name="formationRef" type="rail:tGenericRef" /> + <xs:attribute name="weight" type="rail:tWeightTons" /> + <xs:attribute name="load" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>weight without engine</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="length" type="rail:tLengthM" /> + <xs:attribute name="speed" type="rail:tSpeedKmPerHour" /> + <xs:attribute name="timetableLoad" type="rail:tWeightTons"> + <xs:annotation> + <xs:documentation>assumed load (without engine) for timetable planning</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> + + <xs:complexType name="tEquipment"> + <xs:attributeGroup ref="rail:aEquipment" /> + </xs:complexType> + + <xs:attributeGroup name="aEquipment"> + <xs:attribute name="type" type="rail:tNationalSystemsType" /> + <xs:attribute name="uses" type="xs:boolean" /> + <xs:attribute name="description" type="xs:string" /> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> + + <xs:complexType name="tBrakeUsage"> + <xs:attributeGroup ref="rail:aBrakeUsage" /> + </xs:complexType> + + <xs:attributeGroup name="aBrakeUsage"> + <xs:attribute name="brakePercentage" type="rail:tBrakePercentage" /> + <xs:attribute name="regularBrakePercentage" type="rail:tBrakePercentage"> + <xs:annotation> + <xs:documentation>to be used instead of the uncertain "brakePercentage" as specific value for the regular case"</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="emergencyBrakePercentage" type="rail:tBrakePercentage"> + <xs:annotation> + <xs:documentation>to be used instead of the uncertain "brakePercentage" as specific value for the emergency case"</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> + + <xs:complexType name="tBooking"> + <xs:attributeGroup ref="rail:aBooking" /> + </xs:complexType> + + <xs:attributeGroup name="aBooking"> + <xs:attribute name="bookingNumber" type="rail:tGenericName" use="required" /> + <xs:attribute name="posInFormation" type="rail:tPositiveCounter"> + <xs:annotation> + <xs:documentation>needed as reference, if the same vehicle is referenced several times inside a formation</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="vehicleRef" type="rail:tGenericRef" /> + </xs:attributeGroup> + + <xs:complexType name="tCategory"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aCategory" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aCategory"> + <xs:attribute name="trainUsage" type="rail:tUsageType" /> + <xs:attribute name="deadrun" type="xs:boolean" /> + <xs:attribute name="categoryPriority" type="xs:string" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainPart"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aTrainPart" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrainPart"> + <xs:attribute name="line" type="xs:string"> + <xs:annotation> + <xs:documentation>the "train part line", which could be different from the "train line"</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trainLine" type="xs:string"> + <xs:annotation> + <xs:documentation>DEPRECATED: the "train line" is located at the train and not to be mixed with a "train part line"</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="trainNumber" type="xs:string" /> + <xs:attribute name="additionalTrainNumber" type="xs:string" /> + <xs:attribute name="processStatus" type="rail:tProcessStatus" /> + <xs:attribute name="debitcode" type="xs:integer" /> + <xs:attribute name="remarks" type="xs:string" /> + <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" /> + <xs:attribute name="categoryRef" type="rail:tGenericRef" /> + <xs:attribute name="operator" type="xs:string" /> + </xs:attributeGroup> + + <xs:complexType name="tTrain"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aTrain" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrain"> + <xs:attribute name="type" type="rail:tTrainType" use="required" /> + <xs:attribute name="trainNumber" type="xs:string" /> + <xs:attribute name="additionalTrainNumber" type="xs:string" /> + <xs:attribute name="scope" type="rail:tTrainScope" /> + <xs:attribute name="processStatus" type="rail:tProcessStatus" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainGroup"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aTrainGroup" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrainGroup"> + <xs:attribute name="type" type="rail:tTrainGroupType" /> + <xs:attribute name="trainNumber" type="xs:string" /> + <xs:attribute name="processStatus" type="rail:tProcessStatus" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainRef"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:attributeGroup ref="rail:aTrainRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrainRef"> + <xs:attribute name="sequence" type="rail:tPositiveCounter" use="required" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainPartSequence"> + <xs:attributeGroup ref="rail:aTrainPartSequence" /> + </xs:complexType> + + <xs:attributeGroup name="aTrainPartSequence"> + <xs:attribute name="sequence" type="rail:tPositiveCounter" use="required" /> + <xs:attribute name="pathStatus" type="rail:tPathStatus" /> + <xs:attribute name="categoryRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>the category of a train which could differ (by its meaning) from a train part category</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> + + <xs:complexType name="tTrainPartRef"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:attributeGroup ref="rail:aTrainPartRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aTrainPartRef"> + <xs:attribute name="position" type="rail:tPositiveCounter" /> + </xs:attributeGroup> + + <xs:complexType name="tOperatingPeriodRef"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:attributeGroup ref="rail:aOperatingPeriodRef" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aOperatingPeriodRef"> + <xs:attributeGroup ref="rail:aTimePeriod" /> + </xs:attributeGroup> + + <xs:complexType name="tOcpTT"> + <xs:attributeGroup ref="rail:aOcpTT" /> + </xs:complexType> + + <xs:attributeGroup name="aOcpTT"> + <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" /> + <xs:attribute name="trackRef" type="rail:tGenericRef" /> + <xs:attribute name="trackInfo" type="xs:string" /> + <xs:attribute name="ocpType" type="rail:tOcpTTType" /> + <xs:attribute name="remarks" type="xs:string" /> + <xs:attribute name="trainReverse" type="xs:boolean" /> + <xs:attribute name="alignment" type="rail:tTrainAlignment" /> + <xs:attribute name="offset" type="rail:tLengthM" /> + <xs:attribute name="shuntingTime" type="xs:duration" /> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> + + <xs:complexType name="tArrivalDepartureTimes"> + <xs:attributeGroup ref="rail:aTimesScope" /> + <xs:attributeGroup ref="rail:aArrivalDepartureTimes" /> + </xs:complexType> + + <xs:attributeGroup name="aArrivalDepartureTimes"> + <xs:attribute name="arrival" type="xs:time" /> + <xs:attribute name="arrivalDay" type="xs:integer" /> + <xs:attribute name="departure" type="xs:time" /> + <xs:attribute name="departureDay" type="xs:integer" /> + </xs:attributeGroup> + + <xs:attributeGroup name="aTimesScope"> + <xs:attribute name="scope" type="rail:tTimeScope" use="required" /> + </xs:attributeGroup> <xs:complexType name="tStopTimes"> <xs:attributeGroup ref="rail:aStopTimes" /> @@ -465,101 +337,74 @@ <xs:attribute name="clearanceTime" type="xs:duration" /> </xs:attributeGroup> - <!--*********************************************************--> - <!-- Connection --> - <!--*********************************************************--> - - <xs:complexType name="tConnectionTT"> - <xs:attributeGroup ref="rail:aConnectionTT" /> - </xs:complexType> - - <xs:attributeGroup name="aConnectionTT"> - <xs:attribute name="trainRef" type="rail:tGenericRef" use="required" /> - <xs:attribute name="minConnTime" type="xs:duration" /> - <xs:attribute name="maxConnTime" type="xs:duration" /> - <xs:attribute name="connOperation"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="none" /> - <xs:enumeration value="join" /> - <xs:enumeration value="split" /> - <xs:enumeration value="meet" /> - <xs:enumeration value="turnaround" /> - <xs:enumeration value="IsWaitingFor" /> - <xs:enumeration value="IsExpectedBy" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Statistic and analyses --> - <!--*********************************************************--> - - <xs:complexType name="tStatistic"> - <xs:attributeGroup ref="rail:aStatistic" /> - </xs:complexType> - - <xs:attributeGroup name="aStatistic" /> - - <xs:complexType name="tStatisticTimes"> - <xs:attributeGroup ref="rail:aArrivalDepartureTimes" /> - <xs:attributeGroup ref="rail:aArrivalDepartureDelay" /> - <xs:attribute name="stopTime" type="xs:duration" /> - </xs:complexType> - - <xs:attributeGroup name="aArrivalDepartureDelay"> - <xs:attribute name="arrivalDelay" type="xs:duration" /> - <xs:attribute name="departureDelay" type="xs:duration" /> - </xs:attributeGroup> - - <xs:complexType name="tStandardDeviationTimes"> - <xs:attributeGroup ref="rail:aArrivalDepartureDelay" /> - </xs:complexType> - - <xs:complexType name="tStatisticAnalyses"> - <xs:attributeGroup ref="rail:aStatisticAnalyses" /> - </xs:complexType> - - <xs:attributeGroup name="aStatisticAnalyses"> - <xs:attribute name="description" type="xs:string" /> - <xs:attribute name="percentage" type="xs:decimal" /> - <xs:attribute name="value" type="xs:duration" /> - <xs:attribute name="figure"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="maxDelayArrival" /> - <xs:enumeration value="maxDelayDeparture" /> - <xs:enumeration value="meanDelayArrival" /> - <xs:enumeration value="meanDelayDeparture" /> - <xs:enumeration value="medianDelayArrival" /> - <xs:enumeration value="medianDelayDeparture" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Section TT --> - <!--*********************************************************--> - - <xs:complexType name="tSectionTT"> - <xs:attributeGroup ref="rail:aSectionTT" /> - </xs:complexType> - - <xs:attributeGroup name="aSectionTT"> - <xs:attribute name="section" type="xs:string" /> - <xs:attribute name="lineRef" type="rail:tGenericRef" /> - <xs:attribute name="trackInfo" type="xs:string" /> - <xs:attribute name="description" type="rail:tElementDescription" /> - <xs:attribute name="remarks" type="xs:string" /> - <xs:attribute name="percentageSupplement" type="xs:decimal" /> - <xs:attribute name="distance" type="rail:tLength" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Run times --> - <!--*********************************************************--> + <xs:complexType name="tConnectionTT"> + <xs:attributeGroup ref="rail:aConnectionTT" /> + </xs:complexType> + + <xs:attributeGroup name="aConnectionTT"> + <xs:attribute name="trainRef" type="rail:tGenericRef" use="required" /> + <xs:attribute name="minConnTime" type="xs:duration" /> + <xs:attribute name="maxConnTime" type="xs:duration" /> + <xs:attribute name="connOperation" type="rail:tConnOperation" /> + </xs:attributeGroup> + + <xs:complexType name="tStatistic"> + <xs:attributeGroup ref="rail:aStatistic" /> + </xs:complexType> + + <xs:attributeGroup name="aStatistic" /> + + <xs:complexType name="tStatisticTimes"> + <xs:attributeGroup ref="rail:aArrivalDepartureTimes" /> + <xs:attributeGroup ref="rail:aArrivalDepartureDelay" /> + <xs:attribute name="stopTime" type="xs:duration" /> + </xs:complexType> + + <xs:attributeGroup name="aArrivalDepartureDelay"> + <xs:attribute name="arrivalDelay" type="xs:duration" /> + <xs:attribute name="departureDelay" type="xs:duration" /> + </xs:attributeGroup> + + <xs:complexType name="tStandardDeviationTimes"> + <xs:attributeGroup ref="rail:aArrivalDepartureDelay" /> + </xs:complexType> + + <xs:complexType name="tStatisticAnalyses"> + <xs:attributeGroup ref="rail:aStatisticAnalyses" /> + </xs:complexType> + + <xs:attributeGroup name="aStatisticAnalyses"> + <xs:attribute name="description" type="xs:string" /> + <xs:attribute name="percentage" type="xs:decimal" /> + <xs:attribute name="value" type="xs:duration" /> + <xs:attribute name="figure" type="rail:tStatisticFigure" /> + </xs:attributeGroup> + + <xs:complexType name="tSectionTT"> + <xs:attributeGroup ref="rail:aSectionTT" /> + </xs:complexType> + + <xs:attributeGroup name="aSectionTT"> + <xs:attribute name="section" type="xs:string" /> + <xs:attribute name="lineRef" type="rail:tGenericRef" /> + <xs:attribute name="trackInfo" type="xs:string" /> + <xs:attribute name="description" type="rail:tElementDescription" /> + <xs:attribute name="remarks" type="xs:string" /> + <xs:attribute name="percentageSupplement" type="xs:decimal" /> + <xs:attribute name="distance" type="rail:tLengthM" /> + </xs:attributeGroup> + + <xs:complexType name="tTrackRef"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference"> + <xs:attribute name="dir" type="rail:tLaxDirection"> + <xs:annotation> + <xs:documentation>driving direction in relation to track definition direction</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> <xs:complexType name="tRunTimes"> <xs:attributeGroup ref="rail:aRunTimes" /> @@ -570,270 +415,389 @@ <xs:attribute name="operationalReserve" type="xs:duration" /> <xs:attribute name="additionalReserve" type="xs:duration" /> </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Stop description --> - <!--*********************************************************--> - - <xs:complexType name="tStopDescription"> - <xs:attributeGroup ref="rail:aStopDescription" /> - </xs:complexType> - - <xs:attributeGroup name="aStopDescription"> - <xs:attribute name="commercial" type="xs:boolean" /> - <xs:attribute name="stopOnRequest" type="xs:boolean" /> - <xs:attribute name="onOff"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="both" /> - <xs:enumeration value="on" /> - <xs:enumeration value="off" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="purpose" type="xs:string" /> - <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Rostering types --> - <!--*********************************************************--> - - <!--*********************************************************--> - <!-- Rostering --> - <!--*********************************************************--> - - <xs:complexType name="tRostering"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aRostering"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aRostering"> - <xs:attribute name="vehicleRef" type="rail:tGenericRef"> - <xs:annotation> - <xs:documentation>default vehicle, normally - identical for all blockParts; can be - superset by a certain blockPart</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="formationRef" type="rail:tGenericRef"> - <xs:annotation> - <xs:documentation>default formation, normally identical - for all blockParts; can be superset by a certain - blockPart</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="depot" type="xs:string"> - <xs:annotation> - <xs:documentation>depot or location this rostering - belongs to</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="defaultPreProcessingTime" type="xs:duration" > - <xs:annotation> - <xs:documentation>default duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="defaultPostProcessingTime" type="xs:duration" > - <xs:annotation> - <xs:documentation>default duration from the end of blockPart until the end of blocking of the ressource</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Block --> - <!--*********************************************************--> - - <xs:complexType name="tBlock"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aBlock" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aBlock"> - <xs:attribute name="blockGroupNumber" type="xs:string" /> - <xs:attribute name="fixed" type="xs:boolean" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Block Part --> - <!--*********************************************************--> - - <xs:complexType name="tBlockPartSequence"> - <xs:attributeGroup ref="rail:aBlockPartSequence" /> - </xs:complexType> - - <xs:attributeGroup name="aBlockPartSequence"> - <xs:attribute name="sequence" type="rail:tCounter" use="required" /> - <xs:attribute name="dayOffset" type="rail:tCounter"> - <xs:annotation> - <xs:documentation>defines the day the blockPart starts if the block runs over midnight (even if it is not longer than 24 hours); first day and default value is 0</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="preProcessingTime" type="xs:duration" > - <xs:annotation> - <xs:documentation>duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="postProcessingTime" type="xs:duration" > - <xs:annotation> - <xs:documentation>duration from the end of blockPart until the end of blocking of the ressource</xs:documentation> - </xs:annotation> - </xs:attribute> - <!-- Provide an extension point for other attributes--> - <xs:attribute name="basicBlockRef" type="rail:tGenericRef" /> - <xs:attributeGroup ref="rail:anyAttribute" /> - </xs:attributeGroup> - - <xs:complexType name="tBlockPartRef"> - <xs:complexContent> - <xs:extension base="rail:tElementWithReference" /> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aBlockPartRef"> - <xs:attribute name="position" type="rail:tCounter" /> - </xs:attributeGroup> - <xs:complexType name="tBlockPart"> - <xs:complexContent> - <xs:extension base="rail:tElementWithIDAndName"> - <xs:attributeGroup ref="rail:aBlockPart" /> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attributeGroup name="aBlockPart"> - <xs:attribute name="begin" type="xs:time" /> - <xs:attribute name="beginDay" type="xs:integer" /> - <xs:attribute name="end" type="xs:time" /> - <xs:attribute name="endDay" type="xs:integer" /> - <xs:attribute name="startOcpRef" type="rail:tGenericRef" /> - <xs:attribute name="endOcpRef" type="rail:tGenericRef" /> - <xs:attribute name="trainPartRef" type="rail:tGenericRef" /> - <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" /> - <xs:attribute name="mission" type="rail:tMission" /> - <xs:attribute name="fixed" type="xs:boolean" /> - <xs:attribute name="runLength" type="rail:tLengthKM" /> - <xs:attribute name="vehicleRef" type="rail:tGenericRef" /> - <xs:attribute name="formationRef" type="rail:tGenericRef" /> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Circulation --> - <!--*********************************************************--> - - <xs:complexType name="tCirculation"> - <xs:attributeGroup ref="rail:aCirculation"/> - </xs:complexType> - - <xs:attributeGroup name="aCirculation"> - <xs:attribute name="blockRef" type="rail:tGenericRef" use="required"/> - <xs:attribute name="startDate" type="xs:date"> - <xs:annotation> - <xs:documentation>if not defined: - operatingPeriodRef must be defined - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="endDate" type="xs:date"> - <xs:annotation> - <xs:documentation>if not defined: - as operatingPeriod or open end - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef"> - <xs:annotation> - <xs:documentation>if not defined: - daily from startDate to endDate - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="repeatCount" type="rail:tCounter"> - <xs:annotation> - <xs:documentation>for abstract circulations - without start/endDate</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="nextBlockRef" type="rail:tGenericRef" use="required"/> - </xs:attributeGroup> - - <!--*********************************************************--> - <!-- Simple type definitions --> - <!--*********************************************************--> - - <xs:simpleType name="tUsageType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="passenger" /> - <xs:enumeration value="goods" /> - <xs:enumeration value="mixed" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="tMission"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="timetable" /> - <xs:enumeration value="fullRun" /> - <xs:enumeration value="emptyRun" /> - <xs:enumeration value="outOfOrder" /> - <xs:enumeration value="fillIn" /> - <xs:enumeration value="preheating" /> - <xs:enumeration value="refuel" /> - <xs:enumeration value="shunting" /> - <xs:enumeration value="depotrun" /> - <xs:enumeration value="standBy" /> - <xs:enumeration value="cleaning" /> - <xs:enumeration value="maintenance" /> - <xs:enumeration value="inspection" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:simpleType name="tPathStatus"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="planned" /> - <xs:enumeration value="ordered" /> - <xs:enumeration value="confirmed" /> - <xs:enumeration value="detailsRefused" /> - <xs:enumeration value="cancelled" /> - <xs:enumeration value="notAvailable" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:simpleType name="tProcessStatus"> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="planned" /> - <xs:enumeration value="actual" /> - <xs:enumeration value="calculated" /> - <xs:enumeration value="toBeChecked" /> - <xs:enumeration value="changed" /> - <xs:enumeration value="imported" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:restriction base="rail:tOtherEnumerationValue" /> - </xs:simpleType> - </xs:union> - </xs:simpleType> + + <xs:complexType name="tStopDescription"> + <xs:attributeGroup ref="rail:aStopDescription" /> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:complexType> + + <xs:attributeGroup name="aStopDescription"> + <xs:attribute name="commercial" type="xs:boolean" /> + <xs:attribute name="stopOnRequest" type="xs:boolean" /> + <xs:attribute name="onOff" type="rail:tOnOff" /> + <xs:attribute name="purpose" type="xs:string" /> + <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" /> + </xs:attributeGroup> + + <xs:complexType name="tRostering"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aRostering" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aRostering"> + <xs:attribute name="vehicleRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>default vehicle, normally identical for all blockParts; can be superset by a certain blockPart</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="formationRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>default formation, normally identical for all blockParts; can be superset by a certain blockPart</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="depot" type="xs:string"> + <xs:annotation> + <xs:documentation>depot or location this rostering belongs to</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="defaultPreProcessingTime" type="xs:duration"> + <xs:annotation> + <xs:documentation>default duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="defaultPostProcessingTime" type="xs:duration"> + <xs:annotation> + <xs:documentation>default duration from the end of blockPart until the end of blocking of the ressource</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="scope" type="rail:tRosteringScope"> + <xs:annotation> + <xs:documentation>could be "conceptional" or "operational", or in case of timetable constraints for trainParts also "timetable"</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:complexType name="tBlock"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aBlock" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aBlock"> + <xs:attribute name="blockGroupNumber" type="xs:string" /> + <xs:attribute name="fixed" type="xs:boolean" /> + </xs:attributeGroup> + + <xs:complexType name="tBlockPartSequence"> + <xs:attributeGroup ref="rail:aBlockPartSequence" /> + </xs:complexType> + + <xs:attributeGroup name="aBlockPartSequence"> + <xs:attribute name="sequence" type="rail:tPositiveCounter" use="required" /> + <xs:attribute name="dayOffset" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>defines the day the blockPart starts if the block runs over midnight (even if it is not longer than 24 hours); first day and default value is 0</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="preProcessingTime" type="xs:duration"> + <xs:annotation> + <xs:documentation>duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="postProcessingTime" type="xs:duration"> + <xs:annotation> + <xs:documentation>duration from the end of blockPart until the end of blocking of the ressource</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="basicBlockRef" type="rail:tGenericRef" /> + <xs:attributeGroup ref="rail:anyAttribute" /> + </xs:attributeGroup> + + <xs:complexType name="tBlockPartRef"> + <xs:complexContent> + <xs:extension base="rail:tElementWithReference" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="tBlockPart"> + <xs:complexContent> + <xs:extension base="rail:tElementWithIDAndName"> + <xs:attributeGroup ref="rail:aBlockPart" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:attributeGroup name="aBlockPart"> + <xs:attribute name="begin" type="xs:time" /> + <xs:attribute name="beginDay" type="xs:integer" /> + <xs:attribute name="end" type="xs:time" /> + <xs:attribute name="endDay" type="xs:integer" /> + <xs:attribute name="startOcpRef" type="rail:tGenericRef" /> + <xs:attribute name="endOcpRef" type="rail:tGenericRef" /> + <xs:attribute name="trainPartRef" type="rail:tGenericRef" /> + <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" /> + <xs:attribute name="mission" type="rail:tMission" /> + <xs:attribute name="fixed" type="xs:boolean" /> + <xs:attribute name="runLength" type="rail:tLengthKM" /> + <xs:attribute name="vehicleRef" type="rail:tGenericRef" /> + <xs:attribute name="formationRef" type="rail:tGenericRef" /> + </xs:attributeGroup> + + <xs:complexType name="tCirculation"> + <xs:attributeGroup ref="rail:aCirculation" /> + </xs:complexType> + + <xs:attributeGroup name="aCirculation"> + <xs:attribute name="blockRef" type="rail:tGenericRef" use="required" /> + <xs:attribute name="startDate" type="xs:date"> + <xs:annotation> + <xs:documentation>if not defined: operatingPeriodRef must be defined</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="endDate" type="xs:date"> + <xs:annotation> + <xs:documentation>if not defined: as operatingPeriod or open end</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>if not defined: daily from startDate to endDate</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="repeatCount" type="rail:tCounter"> + <xs:annotation> + <xs:documentation>for abstract circulations without start/endDate</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="nextBlockRef" type="rail:tGenericRef" /> + <xs:attribute name="nextOperatingPeriodRef" type="rail:tGenericRef"> + <xs:annotation> + <xs:documentation>there has to be an information to which operation day of the next block the current block should be linked to. A vehicle can make a standstill for serveral days but the defined next block inside of the cirulation may run every day</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:simpleType name="tUsageType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="passenger" /> + <xs:enumeration value="goods" /> + <xs:enumeration value="mixed" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tMission"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="timetable" /> + <xs:enumeration value="fullRun" /> + <xs:enumeration value="emptyRun" /> + <xs:enumeration value="outOfOrder" /> + <xs:enumeration value="fillIn" /> + <xs:enumeration value="preheating" /> + <xs:enumeration value="refuel" /> + <xs:enumeration value="shunting" /> + <xs:enumeration value="depotrun" /> + <xs:enumeration value="standBy" /> + <xs:enumeration value="cleaning" /> + <xs:enumeration value="maintenance" /> + <xs:enumeration value="inspection" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tPathStatus"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="planned" /> + <xs:enumeration value="ordered" /> + <xs:enumeration value="confirmed" /> + <xs:enumeration value="detailsRefused" /> + <xs:enumeration value="cancelled" /> + <xs:enumeration value="notAvailable" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tProcessStatus"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="planned" /> + <xs:enumeration value="actual" /> + <xs:enumeration value="calculated" /> + <xs:enumeration value="toBeChecked" /> + <xs:enumeration value="changed" /> + <xs:enumeration value="imported" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tBitMask"> + <xs:restriction base="xs:string"> + <xs:pattern value="[0-1]*" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tOperatingCode"> + <xs:restriction base="xs:string"> + <xs:length value="7" /> + <xs:pattern value="[0-1]{7}" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tTrainScope"> + <xs:restriction base="xs:string"> + <xs:enumeration value="primary" /> + <xs:enumeration value="secondary" /> + <xs:enumeration value="secondaryStart" /> + <xs:enumeration value="secondaryEnd" /> + <xs:enumeration value="secondaryInner" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tTimeScope"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="actual" /> + <xs:enumeration value="calculated" /> + <xs:enumeration value="published" /> + <xs:enumeration value="scheduled" /> + <xs:enumeration value="earliest" /> + <xs:enumeration value="latest" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tRosteringScope"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="conceptional" /> + <xs:enumeration value="operational" /> + <xs:enumeration value="timetable" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tTrainGroupType"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="interval" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tSpecialServiceType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="include" /> + <xs:enumeration value="exclude" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tTrainType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="operational" /> + <xs:enumeration value="commercial" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tOcpTTType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="stop" /> + <xs:enumeration value="pass" /> + <xs:enumeration value="begin"> + <xs:annotation> + <xs:documentation>possible for the first ocp, if train part begins at this ocp and is not part of a longer train path</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="end"> + <xs:annotation> + <xs:documentation>possible for the last ocp, if train part ends at this ocp and is not part of a longer train path</xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tOnOff"> + <xs:restriction base="xs:string"> + <xs:enumeration value="both" /> + <xs:enumeration value="on" /> + <xs:enumeration value="off" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="tConnOperation"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="none" /> + <xs:enumeration value="join"> + <xs:annotation> + <xs:documentation>train will be coupled together with an other train</xs:documentation> + <xs:documentation>DEPRECATED with 2.1: use commercial trains instead</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="split"> + <xs:annotation> + <xs:documentation>part of the train will go on as an other train</xs:documentation> + <xs:documentation>DEPRECATED with 2.1: use commercial trains instead</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="meet" /> + <xs:enumeration value="turnaround"> + <xs:annotation> + <xs:documentation>the train will go on as an other train</xs:documentation> + <xs:documentation>DEPRECATED with 2.1: use rosterings instead</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="IsWaitingFor" /> + <xs:enumeration value="IsExpectedBy" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> + + <xs:simpleType name="tStatisticFigure"> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="maxDelayArrival" /> + <xs:enumeration value="maxDelayDeparture" /> + <xs:enumeration value="meanDelayArrival" /> + <xs:enumeration value="meanDelayDeparture" /> + <xs:enumeration value="medianDelayArrival" /> + <xs:enumeration value="medianDelayDeparture" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="rail:tOtherEnumerationValue" /> + </xs:simpleType> + </xs:union> + </xs:simpleType> </xs:schema>