PyXB: невозможно назначить правильный тип - PullRequest
0 голосов
/ 27 сентября 2019

Я использую 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 метода, чтобы установить ширину.

enter image description here

Каждый метод генерирует ошибку SimpleTypeValueError.Метод 1 и метод 3 генерируют исключение непосредственно в строке, которую вы видите.Метод 2 позже выдает ошибку в методе «toxml», где opendrive - это файл, содержащий указанную выше полосу.

content = opendrive.toxml("utf-8").decode('utf-8')

Тип lane.width равен <class 'pyxb.binding.content._PluralBinding'>, и в нем 0 элементовначало.Я действительно не понимаю этого исключения, потому что оно говорит что-то вроде «А не может быть А».Я очень рад за помощь!

С уважением

...