问题标签 [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.

0 投票
0 回答
56 浏览

python - orderedContent PyXB 返回空列表

我正在尝试使用 pyxb 库解析具有简单和复杂类型的 XML 文件。以下是 XML 结构:

在通过 pyxb 阅读后,我按以下顺序获取 XML,其中 Requirement 和 section 的顺序发生了变化。

我编写了一个将 XML 转储到 pyxb 对象的脚本,并且我曾经orderedContent()通过以下方式保留顺序。

我在ordered_instance变量中得到空列表。

0 投票
1 回答
374 浏览

python - PyXB XML 对象到字符串

给定一个 PyXB 对象,如何将其转换为字符串?

我使用 PyXB 生成一个 XML 文档,然后我想使用该xmltodict模块将其转换为字典。问题是它xmltodict.parse需要一个类似字节的对象,PyXB 对象当然不是。

0 投票
1 回答
81 浏览

pyxb - 如何使用 PyXB 从生成的类中访问元素值

例如,我们有以下 xml 文件(简明扼要):

我可以访问 deprecated 和 ref 的信息,但不幸的是,我似乎无法获得文档的值,即“某些文本”。

您会期望 root.doc 会返回该值,但它不会返回:

但是,root.doc.deprecated 返回一个值,root.doc.ref 也一样。

查看从 PyXB 生成的文件,.doc 似乎是一个名为“documentation”的类,其中包含 ref 并已弃用。那么如果生成的类没有,我如何访问 doc 的值呢?

0 投票
1 回答
49 浏览

xml - 解析 XML 时无法正确识别合适的“联合”成员类型

我收到了具有以下类型定义的 XSD AnySimple(我不知道为什么定义了这种类型,但无论如何它都不同于xsd:anySimpleType):

使用 pyxb 从此 XSD 生成 Python 代码后,当我解析我知道有效的 XML 文档时,我收到以下错误,指出 anxsd:int不能是AnySimple

出了什么问题?


编辑:

作为参考,这里是该AnySimple类型的生成代码,其中成员列表似乎是正确的:

0 投票
1 回答
180 浏览

python - 如何卸载 PyXB?

我尝试从我的 PyCharm 中卸载 PyXB 并使用 pip 命令行。

我试过:pip卸载PyXB,我收到错误消息。下面列出:

“手动删除”我看过。如何做到这一点并不明显。

0 投票
0 回答
104 浏览

xsd - 具有固定值和属性的简单内容

我有一些类似的东西schema.xsd

和相应的document.xml

这是有效的吗?我在规范中找不到任何禁止此类声明的内容,并xmllint对其进行了很好的验证:

但是,我确实看到了这个问题,这似乎表明它不正确,并且我使用的库(PyXB)似乎无法处理该问题:

我会很感激有人向我指出解释为什么它不正确的规范,因为我必须处理使用该构造的第三方 XSD。

0 投票
1 回答
1240 浏览

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 文件但仍然无法使用它。

我已经看到这个问题出现在互联网上,但没有真正的解决方案。关于如何解决/诊断问题的任何建议?

0 投票
1 回答
259 浏览

python - PyXB:具有相同命名空间的两个版本的 XSD

我正在使用 PyXB 为TRIAS API v 1.0 和 v 1.1 实现客户端。我面临的问题是,两个 XSD 集合具有相同的命名空间,具有相同的元素和不同的内容。pyxbgen所以我为每个版本构建了两个类绑定。但是我现在不能在同一个程序中同时使用它们,因为 PyXB 会抛出pyxb.exceptions_.NamespaceUniquenessError

如何在同一个程序中使用两个类绑定?我无法编辑源 XSD 文件,因为它们不是我自己维护的,也无法合并它们,因为它们包含显着差异。

0 投票
1 回答
112 浏览

python - 将两个具有冲突元素的 pyxb 绑定导入同一命名空间

我有几个 XSD 文件,我们从中生成了带有pyxb(1.2.6) 的 python 绑定。这些 XSD 文件中的每一个都使用相同的命名空间。其中一些定义了具有相同名称 ( MyNamedElement) 的元素。因此,一次导入两个这样的绑定会产生以下错误:

我不必同时使用两个绑定,因此如果可能的话,只需清除pyxb的内部命名空间缓存就足够了。

有没有办法做到这一点,或者其他一些 python-magic 来规避这个问题?目前,我最好的想法是使用子进程,它执行导入并希望在完成后再次释放它们,stpyxb不会抱怨。

SO上的另一个问题也有同样的错误,但结果是由另一个问题引起的:PyXB: two versions of XSDs with same namespace

0 投票
0 回答
179 浏览

python - PyXB获取任意元素类型定义的子元素的顺序

我正在使用 PyXB 1.2.6 处理多个 XSD 类绑定。我想获取任意元素类型定义的子元素名称的顺序。到目前为止,我想出了这段代码:

但是,由于_ElementMap是 a dict,它以随机顺序生成密钥。然而,我需要元素的顺序,因为它在相应的 XSD 中定义。我怎样才能做到这一点?