问题标签 [pyxb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - orderedContent PyXB 返回空列表
我正在尝试使用 pyxb 库解析具有简单和复杂类型的 XML 文件。以下是 XML 结构:
在通过 pyxb 阅读后,我按以下顺序获取 XML,其中 Requirement 和 section 的顺序发生了变化。
我编写了一个将 XML 转储到 pyxb 对象的脚本,并且我曾经orderedContent()
通过以下方式保留顺序。
我在ordered_instance
变量中得到空列表。
python - PyXB XML 对象到字符串
给定一个 PyXB 对象,如何将其转换为字符串?
我使用 PyXB 生成一个 XML 文档,然后我想使用该xmltodict
模块将其转换为字典。问题是它xmltodict.parse
需要一个类似字节的对象,PyXB 对象当然不是。
pyxb - 如何使用 PyXB 从生成的类中访问元素值
例如,我们有以下 xml 文件(简明扼要):
我可以访问 deprecated 和 ref 的信息,但不幸的是,我似乎无法获得文档的值,即“某些文本”。
您会期望 root.doc 会返回该值,但它不会返回:
但是,root.doc.deprecated 返回一个值,root.doc.ref 也一样。
查看从 PyXB 生成的文件,.doc 似乎是一个名为“documentation”的类,其中包含 ref 并已弃用。那么如果生成的类没有,我如何访问 doc 的值呢?
xml - 解析 XML 时无法正确识别合适的“联合”成员类型
我收到了具有以下类型定义的 XSD AnySimple
(我不知道为什么定义了这种类型,但无论如何它都不同于xsd:anySimpleType
):
使用 pyxb 从此 XSD 生成 Python 代码后,当我解析我知道有效的 XML 文档时,我收到以下错误,指出 anxsd:int
不能是AnySimple
:
出了什么问题?
编辑:
作为参考,这里是该AnySimple
类型的生成代码,其中成员列表似乎是正确的:
python - 如何卸载 PyXB?
我尝试从我的 PyCharm 中卸载 PyXB 并使用 pip 命令行。
我试过:pip卸载PyXB,我收到错误消息。下面列出:
“手动删除”我看过。如何做到这一点并不明显。
xsd - 具有固定值和属性的简单内容
我有一些类似的东西schema.xsd
:
和相应的document.xml
:
这是有效的吗?我在规范中找不到任何禁止此类声明的内容,并xmllint
对其进行了很好的验证:
但是,我确实看到了这个问题,这似乎表明它不正确,并且我使用的库(PyXB)似乎无法处理该问题:
我会很感激有人向我指出解释为什么它不正确的规范,因为我必须处理使用该构造的第三方 XSD。
python - 如何安装和使用 PyXB?'pxbgen' 未被识别
我正在尝试使用 PyXB 来理解 Python 中的 XML 消息。
但是,当我安装 PyXB 时,尝试使用 pyxbgen 命令时出现错误:“'pxbgen' 不被识别为内部或外部命令、可运行程序或批处理文件。”
我正在使用 Anaconda 来管理包,并且我正在运行 Windows 10。
对于上下文,我一直在尝试遵循这个 GitHub 自述文件,但我一直坚持生成类:
https://github.com/openraildata/stomp-client-python
我尝试从 pip 以及通过 conda-forge 安装,但结果是一样的(而且我也找不到 pyxbgen 文件)。我也尝试过手动使用 setup.py ,之后我找到了 pyxbgen 文件但仍然无法使用它。
我已经看到这个问题出现在互联网上,但没有真正的解决方案。关于如何解决/诊断问题的任何建议?
python - PyXB:具有相同命名空间的两个版本的 XSD
我正在使用 PyXB 为TRIAS API v 1.0 和 v 1.1 实现客户端。我面临的问题是,两个 XSD 集合具有相同的命名空间,具有相同的元素和不同的内容。pyxbgen
所以我为每个版本构建了两个类绑定。但是我现在不能在同一个程序中同时使用它们,因为 PyXB 会抛出pyxb.exceptions_.NamespaceUniquenessError
:
如何在同一个程序中使用两个类绑定?我无法编辑源 XSD 文件,因为它们不是我自己维护的,也无法合并它们,因为它们包含显着差异。
python - 将两个具有冲突元素的 pyxb 绑定导入同一命名空间
我有几个 XSD 文件,我们从中生成了带有pyxb
(1.2.6) 的 python 绑定。这些 XSD 文件中的每一个都使用相同的命名空间。其中一些定义了具有相同名称 ( MyNamedElement
) 的元素。因此,一次导入两个这样的绑定会产生以下错误:
我不必同时使用两个绑定,因此如果可能的话,只需清除pyxb
的内部命名空间缓存就足够了。
有没有办法做到这一点,或者其他一些 python-magic 来规避这个问题?目前,我最好的想法是使用子进程,它执行导入并希望在完成后再次释放它们,stpyxb
不会抱怨。
SO上的另一个问题也有同样的错误,但结果是由另一个问题引起的:PyXB: two versions of XSDs with same namespace
python - PyXB获取任意元素类型定义的子元素的顺序
我正在使用 PyXB 1.2.6 处理多个 XSD 类绑定。我想获取任意元素类型定义的子元素名称的顺序。到目前为止,我想出了这段代码:
但是,由于_ElementMap
是 a dict
,它以随机顺序生成密钥。然而,我需要元素的顺序,因为它在相应的 XSD 中定义。我怎样才能做到这一点?