xml - 如何将子 XML 元素与 XSD 中的文本混合

标签 xml xsd

考虑以下 XML:

<name stamped-on-monument="unknown" remarks="name 2001/12/20">
  0011953U556K
  <aka stamped-on-monument="unknown" remarks="">
    00153U556K
  </aka>
</name>

元素中有“内部文本”值和子元素是否可以接受?

如何在 XML 模式文档中定义它?

最佳答案

是的,您正在描述 mixed content ,可以通过 xs:complexType 上的 mixed="true" 指定:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="name">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element name="aka">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attributeGroup ref="commonAttrs"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attributeGroup ref="commonAttrs"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="commonAttrs">
    <xs:attribute name="stamped-on-monument"/>
    <xs:attribute name="remarks"/>
  </xs:attributeGroup>
</xs:schema>

关于xml - 如何将子 XML 元素与 XSD 中的文本混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656067/

相关文章:

xml - XSL - 如何从源 xml 中删除未使用的 namespace ?

c# - .NET,为什么我必须使用 *Specified 属性来强制序列化?有没有办法不这样做?

java - 使用 Catalog.xml 文件进行实体解析的 XMLSchema 验证

xml - TSQL 2005,XML DML - 一次更新两个值?

javascript - 为什么我通过 AJAX 传递到 MVC Controller 的 XML 无法到达那里?

regex - Bash 正则表达式无法匹配 xml?

c# - XmlSchemaSet 在没有键约束的情况下加载模式

xml - 解码错误 : unexpected element (uri :"", 本地 :"user")。预期元素是(无)

java - 在 JAXB 生成中创建对象

Python 和 lxml : get sub-sub-element from given element