问题标签 [python-xmlschema]
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.
xml - 使用 XSD 验证 XML - 意外的子错误
我是 XML 验证的新手,遇到了一个我不明白的问题。我正在使用 Pythonxmlschema
库根据我使用 MS xsd 工具生成的 XSD 文件来验证 XML 文件。在创建了许多运行良好的 XSD 架构后,我在使用最新的 XSD 时遇到了以下问题
XML 文件 C:/Users/xxxxxxxxxx/XMLfiles/ADAMIntegration/google\RLS22770.manifest.xml 无效:验证失败 <Element '{http://www.movielabs.com/schema/manifest/v1.8/manifest}ServiceProvider ' 在 0x000001B4A7ADE458> 与 XsdGroup(模型 = '序列',发生 = [1, 1]):
原因:在位置 1 带有标记“app1:DisplayName”的意外子项。标记 mstns:DisplayName 预期。
架构:
<xs:complexType xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:sequence> <xs:element fixed="premiere" name="DisplayName" type="xs:string" msdata:Prefix="md" /> </xs:sequence> </xs:complexType>
实例:
<manifest:ServiceProvider xmlns:manifest="http://www.movielabs.com/schema/manifest/v1.8/manifest" xmlns:md="http://www.movielabs.com/schema/md/v2. 7/md"> <md:DisplayName>首映</md:DisplayName> </manifest:ServiceProvider>
路径:/manifest:MediaManifest/manifest:Source/manifest:ServiceProvider
我该如何解决这个错误?
更新:它似乎在 http://www.movielabs.com/schema/manifest/v1.8/manifest 中寻找“DisplayName”,而据我所知,它实际上在http ://www.movielabs .com/schema/md/v2.7/md
XSD 文件 #1 episode_manifest.xsd
XSD 文件 #2 episode_manifest_app1.xsd
python - TypeError:需要一个类似字节的对象,而不是“str”
我有一个场景,其中书籍 id 明智我正在创建单独的文件并读取所有文件并将其插入到一个文件中 如何将所有文件数据写入一个文件?
所有数据将在一个文件中逐行显示
书 1 | 作者 | 基因 | 价格 | 发布日期 | 描述
书 2 | 作者 | 基因 | 价格 | 发布日期 | 描述
注意:数据应采用管道分隔格式'|'
xml 数据:
我试过代码:
以下格式的所需输出:
xml - 这个符号怎么称呼?
我使用了这里的 xml/xml-schema 示例。当我用给定的模式解码 xml 字符串时,我得到一个嵌套的 dict 作为输出:
{'@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', '@orderid': '889923', '@xsi:noNamespaceSchemaLocation': 'shiporder.xsd', 'orderperson ': 'John Smith', 'shipto': {'name': 'Ola Nordmann', 'address': 'Langgt 23', 'city': '4000 Stavanger', 'country': 'Norway'}, 'item ': [{'title': 'Empire Burlesque', 'note': '特别版', 'quantity': 1, 'price': Decimal('10.90')}, {'title': '隐藏你的心' , '数量': 1, '价格': 十进制('9.90')}]}
这个符号怎么称呼?
或者有人可以帮助我提供格式说明吗?
我认为“@”表示属性和嵌套字典是复杂类型。但是我无法从示例中读取任何内容。
python - 如何验证 XML 架构?
我没有很多使用 XML Schema 定义的经验。我正在使用由多个 XSD 文件组成的定义,该定义由第三方提供。
现在我已经到了要确保 XSD 文件没有错误的地步。所以我的问题是如何检查 XML 模式定义的错误。
我使用 Python 库“xmlschema”。xmlschema.XMLSchema (filename)
可以毫无问题地读入架构。这是否已经清楚地表明定义没有错误?此外,我问自己,没有错误的阅读是否不仅意味着定义在语法上是正确的,而且仍然可能存在逻辑错误。
python - 使用 Python 获取 xml 中每种类型的描述列表
我有一个格式如下的 xml 文件:
我想在 xml 中该类型的描述列表中检索 type1、type2 的列表。列表结果是 ['{blabla.com}type1', '{blabla.com/2}type2', '{blabla.com/3}type3', '{blabla.com}type4', etc.] 我试过了:
获取 xml 中的所有类型。但是,我怎样才能获得每种类型的所有描述呢?
我想要的结果:
xml - 在 Pyspark 中读取 xml 文件
我打开了一个 spark 会话和一个带有 .xml 文件的目录。我只想读取 .xml 文件的架构,但我猜 spark 不会直接执行它,例如,我想读取镶木地板。
我的意思是,我正在尝试做类似的事情:
我得到的是:
有没有人尝试在 pyspark 中读取 xml 文件的架构?我是新手,非常感谢您的反馈。
python - 从 Python,如何获取 XML 中的父元素?
假设我有一个这样的 XML 文件:
然后如何获得如下内容:
xml - 运行编译的 python-script 会带来丢失文件的错误
我想编写一个在 windows shell 中运行的程序。要运行它,我使用 Enfocus Switch“执行命令”。该程序有两个参数,arg1 是 xml,arg2 是 xsd,XML 模式定义文件。当程序完成时,它应该返回 exitcode 0,因为这是 switch 所期望的。当它失败时退出代码 1。除此之外,我希望它打印我以 JSON 格式(如 Object.
到目前为止我的代码:
我使用“pyinstaller --onefile validateXML.py”编译脚本并成功运行。但是当我在 cmd 或 powershell 中启动 validateXML.exe 时,例如“./validateXML.exe c:/user/Documents/XMLvalidation/test.xml c:/user/Documents/XMLvalidation/test.xsd” 会出现一些丢失的文件错误。
python - 为什么我不能使用 Python 更新我的 XML 文件?
我需要更新此 XML 文件中的一些值(我需要更改文本,例如 0.0 和其他值):
我尝试使用此代码更改其中一个值,但什么也没发生:
我想知道问题出在哪里以及如何解决。我是 Python 新手,所以请尝试以简单的方式进行解释。感谢大家回答我的问题!
python - 使用 Python 从 XML 模式中提取枚举值
从使用xmlschema
包的 XML Schema 中,我提取了一个 XsdEnumerationFacets,如下所示
如何从中提取可能的值?(在这种情况下,'OP1'、'OP2'、'OP3'、'OP3'、'OP4' 等等)。
我有一个想法将它转换为字符串(str(enum)
)并解析它,但如果它很长,则不包括最后一个元素。
(我有 xmlschema==1.9.2 和 Python 3.9。)
例子:
schema.xsd
是
我的代码:
这为我创造了字典:
而不是"XsdEnumerationFacets(['Black', 'White', 'Green', 'Blue'])"
作为一个价值,我想拥有 ['Black', 'White', 'Green', 'Blue']
. 而且我不想解析这个字符串。正如我提到的更长的值列表,最后一个元素被省略号 ( ...
) 替换,因此解析字符串会给我一个错误或部分结果。