Dan*_*olf 5 xml xsd complextype
我正在为相当复杂的 XML 文件格式编写 XSD。在许多情况下,XML 可以包含实际的文字值或生成该值的脚本。(想想 Excel:42与=21+21)
例如,要指定大小,写入以下任一内容应该是有效的:
<size>42</size>
<size><script>2*21</script></size>
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是在元素<choice>中允许使用 int 或脚本size。但是,然后我必须给字符串元素一个名称,从而导致像<size><value>42</value></size>. 由于文字的使用频率远远高于脚本,因此我不想让它们的语法变得臃肿。
关于如何在 XSD 中表达初始语法有什么想法吗?
我认为有两个不错的选择。
<size>。相反,您可以在 size 元素上设置“type”属性,向消费者指示它是文字还是脚本。 要在这些选项之间进行选择,您需要将自己置于消费者应用程序的立场上,并决定它最有可能希望如何获取这些数据。一般来说,如果主要消费者是一位将 XML 解析为一次性集成任务的开发人员,我认为选项一是最好的(因为输出和 XSD 都更简洁,并且在我看来更具可读性);如果您看到 XML 工具正在消耗您的架构,那么选项二可能会更好,因此如果有具体的元素需要解析,则可能会更轻松地执行一些特殊操作。最终,虽然我只是猜测你的用例是什么......