anyuri类型的xml元素是否包含空格?
这个模式说是的,但是说它非常气馁。
http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#anyURI

NOTE: Spaces are, in principle, allowed in the ·lexical space· of anyURI, however, their use is highly discouraged (unless they are encoded by %20).

第三方正在使用非转义空格设置此观众,例如“网站1”。但这看起来很奇怪,有人能确认我不会生气吗:)
更新
我应该提到,我指的是saml2断言模式中的audition元素,它只是将其声明为anyuri,但是如果它同样可以是一个字符串(“一二三”),为什么它甚至设置为anyuri。

最佳答案

第一点:xs:anyuri数据类型的空白方面被定义为“collapse”,这意味着前导和尾随的空白字符被忽略,并且空白的内部序列相当于一个空格字符。
第二点:如@四十二所述,如果您可以通过应用百分比编码来获得合法的uri,那么它是xs:anyURI的合法(xsd 1.0)实例:具体来说,"website one"是相对uri"website%20one"的合法表示。
(我喜欢使用术语“wannabe uri”来描述一个不是uri的字符串,但在应用转义之后成为uri。xsd 1.0允许使用想要的uri。这里的一个关键困难是,您不知道uri是否已经转义;如果您应用转义两次,就会得到"website%2520one",这会让您陷入混乱。)
最后,在xsd 1.1中,所有匹配都被关闭:“anyuri的值空间是由零个或多个字符(定义见[xml])组成的有限长度序列的集合,这些字符与[xml]生成的字符匹配。”从本质上说,鉴于uri/iri/leiri规范的多样性,关于什么是合法的,什么是不合法的争论太多了,以至于模式组决定,就有效性而言,任何事情都会发生。

07-24 13:50