首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xsd模式引用和类型属性值的命名空间是如何别名/绑定的?

xsd模式引用和类型属性值的命名空间是如何别名/绑定的?
EN

Stack Overflow用户
提问于 2017-06-08 09:12:00
回答 1查看 697关注 0票数 1

给出了几个示例XSD定义:

http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd

https://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd

两个XSD文档都定义了自引用同一文档中其他定义的元素、属性、attributeGroups和/或类型。在第一种情况下,这些类型似乎使用saml命名空间别名/绑定来命名空间。示例:

代码语言:javascript
复制
<attributeGroup ref="saml:IDNameQualifiers"/>

在第二个例子中,它们使用ds命名空间别名/绑定来命名空间。示例:

代码语言:javascript
复制
<element ref="ds:SignedInfo"/>

但是,在Firefox中查看这两个文档时,我都看不到这些名称空间别名或绑定是在哪个文档中定义的。

第一个文档的根元素提供了一个targetNamespace属性:

代码语言:javascript
复制
targetNamespace="urn:oasis:names:tc:SAML:2.0:assertion"

第二种情况是:

代码语言:javascript
复制
targetNamespace="http://www.w3.org/2000/09/xmldsig#"

但是,第一个化名为saml,第二个别名命名为ds,这仅仅是惯例吗?如果是这样的话,在哪里可以找到这些惯例呢?如果没有,那么解决这些命名空间的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-08 11:39:40

命名空间绑定是在带有xmlns:属性的模式的根元素中定义的(这是最佳实践):

saml-schema-assertion-2.0.xsd

代码语言:javascript
复制
<schema
  xmlns="http://www.w3.org/2001/XMLSchema" 
  xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
  [...]
  targetNamespace="urn:oasis:names:tc:SAML:2.0:assertion"
  [...]>

xmldsig-core-schema.xsd

代码语言:javascript
复制
<schema
  xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  targetNamespace="http://www.w3.org/2000/09/xmldsig#"
  [...]>

这些绑定不仅适用于元素和属性名称(在模式中,这也是一个XML文档,它们主要位于XML命名空间中或不存在名称空间中),而且还适用于在关联模式中声明为QNames (在本例中为XML模式模式)的QNames属性值。

这是reftype属性的情况(引用上述链接的模式模式):

代码语言:javascript
复制
<xs:attribute name="ref" type="xs:QName"/>
<xs:attribute name="type" type="xs:QName"/>
<!-- observe how the declaration for the type attribute uses itself! -->

这就是为什么在引用自己的元素/属性/类型声明并具有目标命名空间的任何架构中,需要将目标命名空间绑定到前缀(或默认设置),以便在reftype属性值中使用。

简而言之,理解这里所涉及的机制的关键思想是暂时忘记这两个.xsd文档是模式,而是将它们视为对XML有效的任何其他XML文档。更多: XML也是一个XML文档,它对.它本身。这就是XML引导自身的方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44431414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档