XML Schema 1.1中xs:QName无前缀文本值的命名空间解析问询
关于XML Schema 1.1中xs:QName类型无前缀文本值的解析规则
第一个实例的解析结果
对应实例文档:
<?xml version="1.0" encoding="UTF-8"?> <bad-attribute xmlns="foo:uri">foo</bad-attribute>
词法值foo会被映射为值空间的{foo:uri, foo}。
规范依据
XML Schema 1.1 第2部分(数据类型)3.2.17节《QName》明确规定:
若QName无前缀,则命名空间名称为承载该QName值的元素或属性作用域内的默认命名空间。若作用域内无默认命名空间,则命名空间名称为null。
此实例中,承载QName值的<bad-attribute>元素处于默认命名空间foo:uri(由xmlns="foo:uri"声明),因此无前缀的foo关联该默认命名空间,解析为{foo:uri, foo}。
第二个实例的解析结果
对应实例文档:
<?xml version="1.0" encoding="UTF-8"?> <foo:bad-attribute xmlns:foo="foo:uri">foo</foo:bad-attribute>
词法值foo会被映射为值空间的{null, foo}。
规范依据
依据上述XML Schema 1.1 3.2.17节的规则:
该实例中,承载QName值的<foo:bad-attribute>元素的作用域内仅声明了前缀foo对应的命名空间,未声明默认命名空间,因此无前缀的foo对应的命名空间名称为null,解析为{null, foo}。
内容的提问来源于stack exchange,提问作者predi
相关产品推荐
相关产品推荐

