[英]XMLSchemaChildrenValidationError in Carla simulator (Python 3.7)
我一直在嘗試在 Carla 0.9.5 中使用帶有 openscenario 文件的場景運行器(使用 Python 3.7):
python scenario_runner.py --openscenario openscenario_file.xosc
而且我不斷收到以下錯誤:
Traceback (most recent call last):
File "scenario_runner.py", line 413, in <module>
SCENARIORUNNER.run(ARGUMENTS)
File "scenario_runner.py", line 224, in run
self.run_openscenario(args)
File "scenario_runner.py", line 311, in run_openscenario
config = OpenScenarioConfiguration(args.openscenario)
File "C:\scenario_runner-0.9.5.1\srunner\tools\openscenario_parser.py", line 37, in __init__
self._validate_openscenario_configuration()
File "C:\scenario_runner-0.9.5.1\srunner\tools\openscenario_parser.py", line 58, in _validate_openscenario_configuration
xsd.validate(self.xml_tree)
File "C:\Python\Python37\site-packages\xmlschema\validators\schema.py", line 1269, in validate
raise error
xmlschema.validators.exceptions.XMLSchemaChildrenValidationError: failed validating <Element 'Event' at 0x000002621BDF6458> with XsdGroup(model='sequence', occurs=[1, 1]):
Reason: Unexpected child with tag 'Conditions' at position 2. Tag 'StartConditions' expected.
Schema:
<xsd:complexType xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Action">
<xsd:complexType>
<xsd:choice>
<xsd:element name="Global" type="OSCGlobalAction" />
<xsd:element name="UserDefined" type="OSCUserDefinedAction" />
<xsd:element name="Private" type="OSCPrivateAction" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="StartConditions">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="ConditionGroup" type="OSCConditionGroup" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
...
...
</xsd:complexType>
Instance:
<Event name="MyLaneChangeLeftEvent" priority="overwrite">
<Action name="MyLaneChangeLeftAction">
<Private>
<Lateral>
<LaneChange>
<Dynamics shape="sinusoidal" time="5" />
<Target>
<Relative object="$owner" value="1" />
</Target>
</LaneChange>
</Lateral>
</Private>
</Action>
<Conditions>
<Start>
<ConditionGroup>
<Condition delay="0" edge="rising" name="MyStartCondition1">
<ByEntity>
<TriggeringEntities rule="any">
<Entity name="$owner" />
...
...
</Event>
Path: /OpenSCENARIO/Storyboard/Story/Act/Sequence/Maneuver/Event
我是 python 和 carla 的新手。 我查找了這種類型的錯誤,但是我找不到任何有用的信息,有什么想法嗎? 據我了解,它看起來像子“條件”是無效的子元素,但我不知道為什么。
錯誤很明顯
在 position 2. 預期帶有標簽“條件”的意外孩子。
驗證器看到一個<Conditions>
元素,其中應該有一個<StartConditions>
預期。
您的架構說“在<Action>
出現 1..N 次之后,必須有一個<StartConditions>
” :
<xsd:complexType xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Action">
<xsd:complexType>
<xsd:choice>
<xsd:element name="Global" type="OSCGlobalAction" />
<xsd:element name="UserDefined" type="OSCUserDefinedAction" />
<xsd:element name="Private" type="OSCPrivateAction" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="StartConditions">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="ConditionGroup" type="OSCConditionGroup" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
這就是您的 XML 所做的:
<Event name="MyLaneChangeLeftEvent" priority="overwrite">
<Action name="MyLaneChangeLeftAction"> <!-- position 1 -->
<!-- ... -->
</Action>
<Conditions> <!-- position 2 -->
<!-- ... -->
</Conditions>
</Event>
解決方案是更新您的 XML 以匹配架構,或者更新您的架構以匹配 XML。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.