具有属性和 anyType 子元素的 XML 模式元素

标签 xml xsd xsd-validation

我不太熟悉 XML 模式,但我希望有一个模式允许元素具有任何类型的子元素的名称属性。 例如,元素 myType:

<myType name="type1">
    <value>my value</value>
    <country>US</country>
</myType>

我尝试过(这显然不起作用):

<xsd:element name="myType" minOccurs="1" maxOccurs="unbounded" type="xsd:anyType">
    <xsd:complexType>
        <xsd:attribute name="name" type="xsd:string" use="required"/>
    </xsd:complexType>
</xsd:element>

最佳答案

此 XML:

<?xml version="1.0" encoding="UTF-8"?>
<myType name="type1">
    <value>my value</value>
    <country>US</country>
</myType>

根据此 XSD 有效:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="myType">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:any processContents="lax" maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string" use="required"/>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

说明:

  • xsd:any item 允许任何元素成为 myType 的子元素。
  • xsd:any/@processContents="lax"设置“指示 XML 处理器在可行的基础上验证元素内容:它 将验证可以为其获取架构的元素和属性 信息,但对于无法获取的信息,它不会发出错误信号 任何架构信息。”

关于具有属性和 anyType 子元素的 XML 模式元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20464948/

相关文章:

xml - 使用 Powershell 编辑子文件夹中的 zip 文件内容

python - 我如何使用 urllib3 发布 XML

XML 验证 - 如果那么

xml - 错误: The element has a type attribute as well as an anonymous child type

xml - 加速将数据导入 Neo4j 图形数据库

xml - <xsl:when test =“//…”>语法

xsd - 在没有新元素的 XSD 复杂类型中包含元素

c# - 如何从类创建 XSD 模式?

visual-studio-2010 - 使用VS2010服务引用时的自定义工具警告

XML 发现以元素开头的无效内容。预计为 '{}' 之一