Я использую PyXB для редактирования файлов XML с использованием этого файла схемы: http://www.opendrive.org/tools/OpenDRIVE_1.4H.xsd. Моя библиотека Python называется OpenDrive14H.py.Я пытаюсь добавить элементы в список "openDRIVE.lane.width", определенный следующим образом:
<!--lane.width -->
<xsd:element name="width" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="userData" type="userData" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="include" type="include" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<!--these 5 required on lane.width -->
<xsd:attribute name="sOffset" type="xsd:double"/>
<xsd:attribute name="a" type="xsd:double"/>
<xsd:attribute name="b" type="xsd:double"/>
<xsd:attribute name="c" type="xsd:double"/>
<xsd:attribute name="d" type="xsd:double"/>
</xsd:complexType>
</xsd:element>
Я пробовал 3 метода, чтобы установить ширину.
Каждый метод генерирует ошибку SimpleTypeValueError.Метод 1 и метод 3 генерируют исключение непосредственно в строке, которую вы видите.Метод 2 позже выдает ошибку в методе «toxml», где opendrive - это файл, содержащий указанную выше полосу.
content = opendrive.toxml("utf-8").decode('utf-8')
Тип lane.width равен <class 'pyxb.binding.content._PluralBinding'>
, и в нем 0 элементовначало.Я действительно не понимаю этого исключения, потому что оно говорит что-то вроде «А не может быть А».Я очень рад за помощь!
С уважением