schema的写法,如果xml中一个元素的出现次数受另一个元素的限制?

taozimeimei 2009-02-25 12:25:37
假设有 这样一个xml文件结构:
fileamount(代表文件个数)
fileinfo(代表文件信息)
filename(代表文件名称)
filesize(代表文件大小)

约束条件:fileamount非零时有下面三项内容,有几个文件就有几个fileinfo、filename和filesize;fileamount为零时没有下面三项内容。

例子xml:
<fileamount>2</fileamount>
<fileinfo>
<filename>a</filename>
<filesize>1.5</filesize>
</fileinfo>
<fileinfo>
<filename>b</filename>
<filesize>1.5</filesize>
</fileinfo>


如何写对应的schema啊?谢谢大家了。

...全文
256 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
taozimeimei 2009-02-27
  • 打赏
  • 举报
回复
原来如此,谢谢楼上xd
kinzey34 2009-02-25
  • 打赏
  • 举报
回复 1
W3C对XML Schema中的ELEMENT元素定义说明如下:
<element
abstract = boolean : false
block = (#all | List of (extension | restriction | substitution))
default = string
final = (#all | List of (extension | restriction))
fixed = string
form = (qualified | unqualified)
id = ID
maxOccurs = (nonNegativeInteger | unbounded) : 1
minOccurs = nonNegativeInteger : 1
name = NCName
nillable = boolean : false
ref = QName
substitutionGroup = List of QName
targetNamespace = anyURI
type = QName
{any attributes with non-schema namespace . . .}>
Content: (annotation?, ((simpleType | complexType)?, alternative*, (unique | key | keyref)*))
</element>


可以看到,minOccurs 只能是默认为1的非负整数, maxOccurs 只能是默认为1的非负整数或者‘unbounded’不限制出现次数,也就是不支持动态的根据某变量取值,那么就无法通过fileamount元素的值去动态的设定fileinfo元素及其子元素的出现次数

8,907

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧