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

如何创建有效的内联XML模式?

都建树
2023-03-14

我需要编写一个嵌入的XML模式,即模式在与数据相同的XML中定义。

我正在试图理解如何正确地执行它,但到目前为止,我无法获得一个简单的示例来通过验证。以下是我尝试使用的一个简单示例XML with inline schema:
(注意:XML结构(例如根/项)已经过时,因此我无法在数据元素上使用命名空间。)

<?xml version="1.0"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="#mySchema">
  <xs:schema id="mySchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item" type="xs:string"
                      maxOccurs="unbounded" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
   </xs:element>
 </xs:schema>
 <item>String 1</item>
 <item>String 2</item>
 <item>String 3</item>
</root>

但是当我通过w3运行XML时。org XML Schema Validator,XML验证失败,并显示以下错误消息,表示它不希望看到<代码>

每个cvc复杂类型无效。1.2.4:元件{http://www.w3.org/2001/XMLSchema}:此处不允许架构(1)位于元素{None}:根中,应为[{None}:项,$]:

Q: 您能给我举一个简单的XML文档示例,其中包含通过验证的内联模式定义吗?

共有1个答案

景唯
2023-03-14

如果您的root子元素具有xs: Schema元素作为子元素,则模式需要允许它具有这样的子元素。允许它的最简单方法是使用通配符:

<xs:sequence>
  <xs:any processContents="skip" namespace="http://www.w3.org/2001/XMLSchema"
          minOccurs="0" maxOccurs="1"/>
  <xs:element name="item" type="xs:string"
          maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
 类似资料:
  • 问题内容: 用Javascript将是: 但是Python中相同的语法会创建一个字典,那不是我想要的 问题答案: 有两种功能用途。

  • 假设我在前面有一个表单,它有常用的字段和下拉列表。在这些下拉列表中,用户可以选择一个选项,并且每个选项都链接到Spring data JPA中的一个实体; 下拉列表包含一些标签和对应实体的链接作为值。然后,这个值在POST-request中传递给我们希望创建的实体的PagingAndSorting存储库。 假设它是一个具有username的用户,并且他必须与其中一个办公室(也是一个实体)关联: 我

  • 如何在Eclipse中为自己的XML DOM创建GUI?(如)

  • 内联样式表(inline style),就是在HTML元素中,通过 style 属性定义的样式。可以为包含在 body 内部的任何元素定义 style 属性,属性的值为一条或多条声明,多条声明间用逗号隔开。如: <!DOCTYPE HTML><html><head><meta charset="utf-8"><title>内联样式</title></head><body><p style = "c

  • 问题内容: 我已将此帖子标记为WordPress,但我不能完全确定它是特定于WordPress的,因此我将其发布在StackOverflow而不是WPSE上。 该解决方案不必特定于WordPress,只需使用PHP即可 。 方案 I我经营一个养鱼网站,上面有许多热带鱼和鱼类。 我们的网站围绕我们的个人资料。就像您可能会说的那样,它们是网站的基础。 我希望实现的是,在每个提到另一个物种或词汇表条目的

  • 我一直在尝试新的Log4j2。从有关迁移的文档来看,XML模式/DTD规范似乎已被废除。 这似乎是倒退了一步。当然,应该可以将XML Schema或DTD与我的相关联,以帮助编写它并进行验证。我在留档中找不到任何有用的东西,也没有找到XML Schema或DTD本身。 那么:在Log4j2中,我应该如何将XML模式与Log4j2.XML相关联?