首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSD中的mixed="true“

XSD中的mixed="true“
EN

Stack Overflow用户
提问于 2014-03-09 04:39:56
回答 1查看 1.1K关注 0票数 1

我正在使用以下XSD:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="root">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element name="value" minOccurs="1" maxOccurs="5" type="new_type"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="new_type" mixed="true">
    <xs:choice>
      <xs:element name="function"/>
      <xs:element name="something_else"/>
    </xs:choice>
  </xs:complexType>
</xs:schema>

以下XML文件在网上失败: abc

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:noNamespaceSchemaLocation="test.xsd" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">  
    <value><function/></value>
    <value><function/></value>
    <value>abc</value>
    abc
</root>

尽管XML第11行中的mixed=为complexType new_type“true”,但这个XML文件的验证失败了,因为它需要在xs:new_type中指定一个元素。

除了元素之外,我还需要指定一个值。

如何更改XSD文件?

谢谢,

鲍里斯

EN

回答 1

Stack Overflow用户

发布于 2014-03-09 11:28:14

如果将minOccurs="0"添加到<xsd:choice>中,它将验证:

代码语言:javascript
复制
  <xs:complexType name="new_type" mixed="true">
    <xs:choice minOccurs="0">
      <xs:element name="function"/>
      <xs:element name="something_else"/>
    </xs:choice>
  </xs:complexType>

否则,除了可能包含的任何字符数据之外,还需要有一个元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22278463

复制
相关文章

相似问题

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