首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模式验证器如何知道在何处找到与xmlns中的命名空间相关联的xsd?

模式验证器如何知道在何处找到与xmlns中的命名空间相关联的xsd?
EN

Stack Overflow用户
提问于 2011-11-29 18:50:41
回答 1查看 206关注 0票数 1

我正在调用一个外部(第三方) web服务,该服务返回包含如下名称空间的xml:

代码语言:javascript
复制
...
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:wrs="http://www.opengis.net/cat/wrs/1.0"
  xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
...

我对以urn开头的最后一个名称空间感兴趣:oasis

如果没有指定的位置,验证器如何知道如何验证文件?

我知道第一个名称空间也没有指定位置,因为它们只是一个名称空间。

请你详细说明用这篇文章所作的下列声明

如果您的组织有管理和解析合适的URN类的方法,则使用URN。

这些验证器在没有位置的情况下如何工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-29 20:15:16

要指定用于验证目的的架构位置,您有不同的方法:

带有XML的 :

  1. 您可以告诉解析器要用于验证的模式(我知道的所有实现都提出了这样的机制)。在此过程中,模式将根据实例中的命名空间进行解析。这里不需要更改XML文件。
  2. 在XML文件中添加有关架构位置的信息。

对于第二种情况,您必须使用以下名称空间:xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"。在这个命名空间中,您有两个专用于验证的属性:schemaLocationnoNamespaceSchemaLocation

  1. 如果您没有任何名称空间,请使用第二个名称空间(这不是您的情况)。
  2. 如果您有名称空间,则使用schemaLocation,语法如下:xsi:schemaLocation="namespaceURI1 linkToTheSchema1 namespaceURI2 linkToTheSchema2..."。每个模式声明由两个部分组成,两个部分用空格字符分隔:名称空间和指向文件的URI。

与其他模式语言(Relax,)

  1. 您可以始终使用上面的第一点:用您想要使用的模式告诉您的实现。
  2. 在XML文件中: W3C发布了一个已经在某些XML中实现的注释,它允许添加名为xml-model的processiog指令来访问shcemas。看这里:http://www.w3.org/TR/xml-model/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8316095

复制
相关文章

相似问题

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