加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – XSD:可以具有简单内容或元素上下文的复杂类型

发布时间:2020-12-16 23:06:25 所属栏目:百科 来源:网络整理
导读:我正在为一个相当复杂的 XML文件格式编写XSD.在许多方面,XML可以包含实际的文字值或产生值的脚本. (想想Excel:42 vs. = 21 21) 例如,要指定大小,写入以下任一项应该是有效的: size42/sizesizescript2*21/script/size 我的第一个想法是使用 choice允许在siz
我正在为一个相当复杂的 XML文件格式编写XSD.在许多方面,XML可以包含实际的文字值或产生值的脚本. (想想Excel:42 vs. = 21 21)

例如,要指定大小,写入以下任一项应该是有效的:

<size>42</size>
<size><script>2*21</script></size>

我的第一个想法是使用< choice>允许在size元素中使用int或script.但是,我必须给字符串元素一个名称,导致一个笨拙的语法,如< size>< value> 42< / value>< / size>.由于文字的使用频率远远超过脚本,因此我不想夸大它们的语法.

有关如何在XSD中表达初始语法的任何想法?

解决方法

我认为有两个不错的选择.

>不要在里面放任何子元素< size>在任一情况下.相反,您可以在size元素上设置’type’属性,向消费者指示它是文字还是脚本.
>使用此处描述的两种技术之一(两者都基于在complexContent:XML Schema: Element that can contain elements or text?上使用’mixed = true’属性

要在这些选项之间进行选择,您可以将自己置于消费者应用程序的角度,并决定最有可能获得此数据的方式.一般来说,我认为如果主要消费者是将XML解析为一次性集成任务的开发人员,那么选项一是最好的(因为输出和XSD都更简洁,在我看来更具可读性);如果你看到一个使用你的模式的XML工具,那么选项二可能会更好,因此如果要解析具体元素,它可能更容易做一些特殊的事情.最终,虽然我只是猜测你的用例是什么……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读