Yur*_*rim 6 python xml whitespace xsd elementtree
当空白无关紧要时,表示可能非常重要.
在XML Schema Part 2:Datatypes Second Edition中,约束facet whiteSpace是为从字符串派生的类型定义的(http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace).如果此whiteSpace构面被替换或折叠,则在标准化期间可能会更改该值.
第4.3.6节末尾有一个注释:
这里使用的符号#xA(以及本说明书中的其他地方)表示通用字符集(UCS)代码点十六进制A(换行),其由U + 000A表示.此表示法与 区别开来,它是对同一UCS代码点的XML字符引用.
如果元素elem的数据类型具有空格约束折叠,则"<elem> text </elem>"
应该变为"text"
(删除前导和尾随空格),但"<elem> text </elem>"
应该变为" text "
(由字符引用编码的空格不被删除).
因此,解析器/树构建器可以处理此规范化,也可以在之后完成.
set_whitespace_normalization('./country/neighbor', 'collapse')
吗?normalize(content)
解析器或树构建器中是否有钩子?elem.original_text
,可能会返回"  text 
"?elem.unnormalized_text
,可能会返回" text
"?我想使用Python的xml.etree.ElementTree,但我会考虑任何其他XML库来完成这项工作.
当然,通过使用字符引用声明空白无关紧要(替换或折叠)然后作弊是不好的风格.在大多数情况下,应该更改数据或模式以防止这种情况,但有时您必须使用外部XML模式和外部XML文档.上面引用的注释的纯粹存在表明XML编辑已经意识到这种困境并故意不会阻止它.
小智 3
这似乎是 xml.etree.ElementTree 中的一个已知错误: http: //bugs.python.org/issue17582。根据该错误报告,这在 lxml.etree 中得到了正确处理: https: //pypi.python.org/pypi/lxml/。
归档时间: |
|
查看次数: |
1497 次 |
最近记录: |