Commit cbd81605 authored by Sebastian Maierhofer's avatar Sebastian Maierhofer
Browse files

add acc falsification scenarios and update xsd file

parent bbc7e03c
Loading
Loading
Loading
Loading
+3.06 KiB (175 KiB)

File changed.

No diff preview for this file type.

+301 −328
Original line number Diff line number Diff line
@@ -10,30 +10,26 @@ __status__ = "in development"

""" XSD for CommonRoad benchmark scenarios """
-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <!-- %%%%%%%%%%%%%%% auxiliary xsd elements %%%%%%%%%%%%%%% -->
  <!-- distance in meter (positive decimals) -->
    <xs:simpleType name="distance">
  <xs:simpleType name="positiveDecimal">
    <xs:restriction base="xs:decimal">
      <xs:minExclusive value="0.0"/>
    </xs:restriction>
  </xs:simpleType>
	
  <!-- decimal value: either exact or interval -->
  <xs:complexType name="decimalExact">
    <xs:all>
      <xs:element name="exact" type="xs:decimal"/>
    </xs:all>
  </xs:complexType>
	
  <xs:complexType name="decimalInterval">
    <xs:sequence>
      <xs:element name="intervalStart" type="xs:decimal"/>
      <xs:element name="intervalEnd" type="xs:decimal"/>
    </xs:sequence>
  </xs:complexType>
	
  <xs:complexType name="decimalExactOrInterval">
    <xs:choice>
      <xs:element name="exact" type="xs:decimal"/>
@@ -43,22 +39,18 @@ __status__ = "in development"
      </xs:sequence>
    </xs:choice>
  </xs:complexType>

	<!-- integer zero -->
	<xs:simpleType name="integerZero">
		<xs:restriction base="xs:nonNegativeInteger">
			<xs:minInclusive value="0" />
			<xs:maxInclusive value="0" />
		</xs:restriction>
	</xs:simpleType>
	
  <!-- integer value exact zero -->
  <xs:complexType name="integerExactZero">
    <xs:all>
      <xs:element name="exact" type="integerZero"/>
    </xs:all>
  </xs:complexType>
	
  <xs:simpleType name="integerZero">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- integer value greater than zero: either exact or interval -->
  <xs:complexType name="integerIntervalGreaterZero">
    <xs:sequence>
@@ -66,7 +58,6 @@ __status__ = "in development"
      <xs:element name="intervalEnd" type="xs:positiveInteger"/>
    </xs:sequence>
  </xs:complexType>
	
  <xs:complexType name="integerExactOrIntervalGreaterZero">
    <xs:choice>
      <xs:element name="exact" type="xs:positiveInteger"/>
@@ -76,7 +67,6 @@ __status__ = "in development"
      </xs:sequence>
    </xs:choice>
  </xs:complexType>
	
  <!-- %%%%%%%%%%%%%%% auxiliary CommonRoad elements %%%%%%%%%%%%%%% -->
  <xs:complexType name="point">
    <xs:sequence>
@@ -84,30 +74,25 @@ __status__ = "in development"
      <xs:element name="y" type="xs:decimal"/>
    </xs:sequence>
  </xs:complexType>
	
  <xs:complexType name="rectangle">
    <xs:sequence>
            <xs:element name="length" type="distance" />
            <xs:element name="width" type="distance" />
      <xs:element name="length" type="positiveDecimal"/>
      <xs:element name="width" type="positiveDecimal"/>
      <xs:element name="orientation" type="xs:decimal" minOccurs="0"/>
      <xs:element name="center" type="point" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="circle">
    <xs:sequence>
            <xs:element name="radius" type="distance" />
      <xs:element name="radius" type="positiveDecimal"/>
      <xs:element name="center" type="point" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="polygon">
    <xs:sequence>
            <xs:element name="point" type="point" 
				minOccurs="3" maxOccurs="unbounded" />
      <xs:element name="point" type="point" minOccurs="3" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="shape">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="rectangle" type="rectangle"/>
@@ -115,7 +100,6 @@ __status__ = "in development"
      <xs:element name="polygon" type="polygon"/>
    </xs:choice>
  </xs:complexType>
	
  <xs:complexType name="position">
    <xs:choice>
      <xs:element name="point" type="point"/>
@@ -125,13 +109,11 @@ __status__ = "in development"
      <xs:element name="lanelet" type="laneletRef" maxOccurs="unbounded"/>
    </xs:choice>
  </xs:complexType>
	
  <xs:complexType name="positionExact">
    <xs:all>
      <xs:element name="point" type="point"/>
    </xs:all>
  </xs:complexType>
	
  <xs:complexType name="positionInterval">
    <xs:choice>
      <xs:element name="rectangle" type="rectangle" maxOccurs="unbounded"/>
@@ -140,7 +122,6 @@ __status__ = "in development"
      <xs:element name="lanelet" type="laneletRef" maxOccurs="unbounded"/>
    </xs:choice>
  </xs:complexType>
	
  <xs:complexType name="state">
    <xs:all>
      <xs:element name="position" type="position"/>
@@ -152,7 +133,6 @@ __status__ = "in development"
      <xs:element name="slipAngle" type="decimalExactOrInterval" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
	
  <xs:complexType name="initialState">
    <xs:all>
      <xs:element name="position" type="position"/>
@@ -164,7 +144,6 @@ __status__ = "in development"
      <xs:element name="slipAngle" type="decimalExactOrInterval" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
	
  <xs:complexType name="initialStateExact">
    <xs:all>
      <xs:element name="position" type="positionExact"/>
@@ -173,9 +152,9 @@ __status__ = "in development"
      <xs:element name="yawRate" type="decimalExact"/>
      <xs:element name="slipAngle" type="decimalExact"/>
      <xs:element name="time" type="integerExactZero"/>
      <xs:element name="acceleration" type="decimalExact" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
	
  <xs:complexType name="goalState">
    <xs:all>
      <xs:element name="time" type="integerIntervalGreaterZero"/>
@@ -184,14 +163,12 @@ __status__ = "in development"
      <xs:element name="velocity" type="decimalInterval" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
	
  <xs:complexType name="occupancy">
    <xs:sequence>
      <xs:element name="shape" type="shape"/>
      <xs:element name="time" type="integerExactOrIntervalGreaterZero"/>
    </xs:sequence>
  </xs:complexType>

  <!-- %%%%%%%%%%%%%%% main CommonRoad elements %%%%%%%%%%%%%%% -->
  <!-- lanelet -->
  <xs:simpleType name="lineMarking">
@@ -200,51 +177,37 @@ __status__ = "in development"
      <xs:enumeration value="solid"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="bound">
    <xs:sequence>
            <xs:element name="point" type="point"
                minOccurs="2" maxOccurs="unbounded" />
            <xs:element name="lineMarking" type="lineMarking"
                minOccurs="0" />
      <xs:element name="point" type="point" minOccurs="2" maxOccurs="unbounded"/>
      <xs:element name="lineMarking" type="lineMarking" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="laneletRef">
    <xs:attribute name="ref" type="xs:integer" use="required"/>
  </xs:complexType>

  <xs:simpleType name="drivingDir">
    <xs:restriction base="xs:string">
      <xs:enumeration value="same"/>
      <xs:enumeration value="opposite"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="laneletAdjacentRef">
    <xs:attribute name="ref" type="xs:integer" use="required"/>
        <xs:attribute name="drivingDir" type="drivingDir"
            use="required" />
    <xs:attribute name="drivingDir" type="drivingDir" use="required"/>
  </xs:complexType>

  <xs:complexType name="lanelet">
    <xs:sequence>
      <xs:element name="leftBound" type="bound"/>
      <xs:element name="rightBound" type="bound"/>
            <xs:element name="predecessor" type="laneletRef"
                minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="successor" type="laneletRef"
                minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="adjacentLeft" type="laneletAdjacentRef"
				minOccurs="0" />
			<xs:element name="adjacentRight" type="laneletAdjacentRef"
				minOccurs="0" />
			<xs:element name="speedLimit" type="xs:decimal"
				minOccurs="0" />
      <xs:element name="predecessor" type="laneletRef" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="successor" type="laneletRef" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="adjacentLeft" type="laneletAdjacentRef" minOccurs="0"/>
      <xs:element name="adjacentRight" type="laneletAdjacentRef" minOccurs="0"/>
      <xs:element name="speedLimit" type="xs:decimal" minOccurs="0"/>
    </xs:sequence>
        <xs:attribute name="id" type="xs:integer" use="required" />
    <xs:attribute name="id" type="xs:positiveInteger" use="required"/>
  </xs:complexType>
	
  <!-- obstacle -->
  <xs:simpleType name="obstacleRole">
    <xs:restriction base="xs:string">
@@ -252,7 +215,6 @@ __status__ = "in development"
      <xs:enumeration value="dynamic"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="obstacleType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="unknown"/>
@@ -270,7 +232,6 @@ __status__ = "in development"
      <xs:enumeration value="train"/>
    </xs:restriction>
  </xs:simpleType>
	
  <xs:complexType name="obstacle">
    <xs:sequence>
      <xs:element name="role" type="obstacleRole"/>
@@ -294,29 +255,41 @@ __status__ = "in development"
        </xs:element>
      </xs:choice>
    </xs:sequence>
        <xs:attribute name="id" type="xs:integer" use="required" />
    <xs:attribute name="id" type="xs:positiveInteger" use="required"/>
  </xs:complexType>

  <!-- planning problem -->
  <xs:complexType name="planningProblem">
    <xs:sequence>
      <xs:element name="initialState" type="initialStateExact"/>
            <xs:element name="goalState" type="goalState" 
				minOccurs="1" maxOccurs="unbounded" />
      <xs:element name="goalState" type="goalState" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:positiveInteger" use="required"/>
  </xs:complexType>
  <xs:complexType name="geoReference" mixed="true">
    <!-- mixed="true" allows text content AND elements like userData -->
  </xs:complexType>
  <xs:complexType name="additionalTransformation">
    <xs:sequence>
      <xs:element name="xTranslation" type="xs:decimal"/>
      <xs:element name="yTranslation" type="xs:decimal"/>
      <xs:element name="zRotation" type="xs:decimal"/>
      <xs:element name="scaling" type="positiveDecimal"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="geoTransformation">
    <xs:sequence minOccurs="0" maxOccurs="1">
      <xs:element name="geoReference" type="geoReference"/>
      <xs:element name="additionalTransformation" type="additionalTransformation"/>
    </xs:sequence>
        <xs:attribute name="id" type="xs:integer" use="required" />
  </xs:complexType>

  <!-- %%%%%%%%%%%%%%% root CommonRoad element %%%%%%%%%%%%%%% -->
  <xs:element name="commonRoad">
    <xs:complexType>
      <xs:sequence>
				<xs:element name="lanelet" type="lanelet"
                    minOccurs="1" maxOccurs="unbounded" />
                <xs:element name="obstacle" type="obstacle"
                    minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="planningProblem" type="planningProblem"
                    minOccurs="1" maxOccurs="unbounded" />
        <xs:element name="geoTransformation" type="geoTransformation" minOccurs="0" maxOccurs="1"/>
        <xs:element name="lanelet" type="lanelet" minOccurs="1" maxOccurs="unbounded"/>
        <xs:element name="obstacle" type="obstacle" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="planningProblem" type="planningProblem" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="commonRoadVersion" use="required">
        <xs:simpleType>
+20549 −0

File added.

Preview size limit exceeded, changes collapsed.

+20249 −0

File added.

Preview size limit exceeded, changes collapsed.

+11369 −0

File added.

Preview size limit exceeded, changes collapsed.