当前位置: 首页 > 知识库问答 >
问题:

XML验证器如何知道在哪里找到XML文档中声明的模式实例,以便解析和使用XSD?

拓拔飞飙
2023-03-14

我不明白xml验证器(w3c所称的“模式感知处理器”)是如何知道在xml文档内对xsd的典型外部引用中从何处找到模式实例的。

下面是一个典型的声明:

<root xmlns="www.example.org"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="www.example.org" "http://example.org/schemas/schema1.xsd">
  <foo>some data</foo>
</root>

>

  • 我们将根元素及其所有子元素的默认命名空间声明为“www.example.org”

    我们将名称/前缀“xsi”绑定到名称空间“http://www.w3.org/2001/xmlschema-instance”。

    如果我的理解是正确的(显然不是这样的!),那么正是xsi名称空间引用的实际资源中的信息允许验证器知道schemaLocation(在下面一行中)是xsi(“http://www.w3.org/2001/XMLSchema-instance”)名称空间本身的合法属性。

    但是名称空间不是位置(URI),那么解析器如何知道该去哪里确定schemaLocation实际上是否是“http://www.w3.org/2001/XMLSchema-instance”名称空间中定义的属性呢?

  • 共有1个答案

    姚雅珺
    2023-03-14

    验证器内置了该命名空间的架构。XML Schema definition spec第2.7节验证文档中与Schema相关的标记表示:

    XML模式定义语言:Structures定义了几个属性,以便在任何XML文档中直接使用。这些属性在上面的模式实例命名空间(xsi)(§1.3.1.2)中描述的模式实例命名空间(http://www.w3.org/2001/xmlschema-instance)中。所有模式处理器都必须为这些属性内置适当的属性声明,参见“type”属性的属性声明(§3.2.7.1)、“nil”属性的属性声明(§3.2.7.2)、“schema location”属性的属性声明(§3.2.7.3)和“no namespaceschemalocation”属性的属性声明(§3.2.7.4)。

     类似资料:
    • 问题内容: 我想使用RELAX NG模式来验证XML文档,并且我想使用JAXP验证API。 从谷歌搜索开始,看来我可以使用Jing和ISO RELAX JARV到JAXP Bridge了 。不幸的是,将它们都添加到我的类路径后,我无法使其正常工作。试图实例化工厂时,它只是抛出一个—我在内部查看,显然返回的是空结果。 因此,我希望能回答以下两个问题: 我该如何与Jing和这座桥一起工作? 我应该尝试

    • 我正在使用来自动处理肥皂请求,我想使用XML Schema(XSD)验证XML格式的响应。 我需要模式。java调用它的代码和函数。功能文件。我尝试使用RESTAPI和空手道演示来验证json模式,并找到了正确的结果,但soap(xml、xsd)没有得到。我正在尝试这个模式。用于XSD验证的java。

    • 如何使用1.1 XML模式定义? 这是我的开始:

    • 问题内容: 给出如下结果 但是我需要从输出中删除xml声明,我该怎么做 问题答案: 您是否看到了Transformer使用的OutputKeys?特别是OMIT_XML_DECLARATION。 请注意,删除标头在XML 1.0中有效,但是会丢失字符编码数据(尤其如此),这可能非常重要。

    • 我有一个REST服务,它是用expertion记录的。我的endpoint都不提供应用程序/xml输出。我仍然得到了与这里类似的文档:http://exponenote . code Haus . org/wanna backol/step 4/El _ persona _ persona . html(示例XML)和这里:http://exponenote . code Haus . org/w

    • 使用DOM4J的步骤 以下是使用DOM4J Parser解析文档时使用的步骤。 导入与XML相关的包。 创建一个SAXReader。 从文件或流创建文档。 通过调用document.selectNodes()获取使用XPath Expression获取所需的节点 提取根元素。 迭代节点列表。 检查属性。 检查子元素。 Import XML-related packages import java.