如果xs:list
中的项目包含空格,您如何表示该项?
架构片段:
<xs:simpleType name="mylisttype">
<xs:list itemType="xs:string" />
</xs:simpleType>
<xs:element name="mylist" type="mylisttype" />
示例XML片段:
<mylist>item1 item2 item3 item4</mylist>
示例输出:
["item1", "item2", "item3", "item4"]
示例XML片段(不正确)
<mylist>Item One Item Two Item Three Item Four</mylist>
期望的输出:
["Item One", "Item Two", "Item Three", "Item Four"]
答案 0 :(得分:1)
您无法在xs:list
中更改空格作为成员分隔符,也无法转义成员字符串中的空格
将元素用于不适合xs:list
的任何更复杂的列表。
了解XSD design rationale regarding custom list delimiters here。
答案 1 :(得分:0)
这是规范说这是不可能的。
一个·list·数据类型可以由普通的或原始的·原子数据类构成,它的词汇空间·允许空格(如string或anyURI)或者{union·datatype中的任何一个{member type定义}的词汇空间·允许空间。由于·list·items在项目的词汇表示之前在空格中分隔,因此在列表项目的词法表示中不会出现任何空格,即使项目类型原则上允许它。出于同样的原因,当·项类型的值空间中的给定值的每个可能的词法表示·包括空格时,该值永远不会作为·list·datatype的任何值中的项出现。 / p>
来自W3C XML Schema Definition Language (XSD) 1.1 Part 2, Section 2.4.1.2
我还可以在测试之后确认转义空间,因为XML实体代码 
也不起作用,至少在lxml(基于libxml2和libxslt)中。