xml - 'anyURI'的xsd类型可以包含空格吗?

标签 xml xsd saml-2.0

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).

第三方正在为此受众群体设置非转义空格,例如“网站一”。但这看起来很奇怪,请有人确认我没有发疯:)

更新

我应该提到我指的是 SAML2 断言模式中的受众元素,它只是将其声明为 anyUri,但如果它同样可以是一个字符串(“一二三”)为什么它甚至被设置为 anyUri。

最佳答案

第一点:xs:anyURI数据类型的whiteSpace facet被定义为“collapse”,意思是忽略前导和尾随的空白字符,内部的空白序列相当于一个空格字符。

第二点:如@forty-two所述,如果您可以通过应用百分比编码获得合法的URI,那么它就是xs:anyURI的合法(XSD 1.0)实例:具体来说, "website one" 是相对 URI "website%20one" 的合法表示。

(我喜欢使用术语“wannabe URI”来描述不是 URI,但在应用转义后变成 URI 的字符串。XSD 1.0 允许 wannabe URI。这里的主要困难之一是您不不知道 URI 是否已经转义;如果你应用转义两次,你会得到 "website%2520one",这会让你陷入困惑。)

最后,在 XSD 1.1 中,所有的赌注都被取消了:“anyURI 的值空间是一组有限长度的零个或多个字符序列(如 [XML] 中所定义),它们与来自 [XML] 的 Char 生产相匹配]."。从本质上讲,考虑到 URI/IRI/LEIRI 规范的多样性,关于究竟什么是合法的,什么不是合法的争论太多了,以至于模式组决定,就有效性而言,任何事情都可以。

关于xml - 'anyURI'的xsd类型可以包含空格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33826104/

相关文章:

java - 当 XML 中有多个命名空间时,如何 getChildText() 具有命名空间的节点?

python - Odoo 10 - 创建销售订单或发票时的电子邮件通知

Java - Spring Ws - 在 XSD 文件中加载相对包含 (Tomcat 8)

java - jaxb base64二进制编码/解码

xml - 我如何指定一个元素具有一个属性,该属性说明它在 XML 模式中包含多少个子元素?

java - 自定义 `RelyingPartyRegistrationRepository` 实现

javascript - SAML2 以表单形式提交 XML SAMLRequest 值

java - 在 Weblogic 12c 上部署 Spring Security SAML 扩展时出现问题

java - Android AdMob 现在显示在我的手机上

Android:ListView 中的页脚