假设您必须编写一种基于xml(无选择)的语言,最终将成为某种“标准”格式,被全球数十亿应用程序使用,或者至少您希望它 该语言将类似于互联网的HTML,但在另一个特定的域中。一些非常简单和描述性的东西,将由工具和其他应用程序解释。
现在假设您对XML的工作原理有基本的了解(您知道标签的工作原理,它们可能具有属性以及元素中可能存在元素......)。 你真的很了解这个领域,但你以前从未编写过基于语言或xml的格式规范(除了公司内部工具的一些基本xml格式之外)。
你还需要知道做什么工作吗?也许某些XML语言特定的功能?也许使用XSD文件作为规范文件?
总结:在为这种语言设计和编写规范时有哪些最佳做法?
答案 0 :(得分:3)
首先,您需要了解您的问题域真的,真的,以确保您的标记能够涵盖这些数十亿应用程序的所有要求。其他一切都是次要的。这不是技术或工具问题。
答案 1 :(得分:3)
博文Using and Abusing XML提供了一些很好的建议,其中包括:
另一种流行的XML滥用涉及到 使用XML精简包装任意数据 标签......如下所示:
<key>Name</key><string>Audiobooks</string>
<key>Playlist ID</key><integer>94</integer>
在更好的,量身定制的XML文件格式中,我们希望这对像
<name id="94">Audiobooks</name>
答案 2 :(得分:2)
首先,如果确实没有其他任何可以替代使用的东西,那么只能自己做点什么。
保持元素名称简短但/且具有描述性。
如果可能的话,有一个非常严格的架构,不允许多种方式做同样的事情。这样可以防止对可能的内容或如何解释标记产生混淆。
在允许可扩展性时要非常小心,因为这可能会导致严格模式试图阻止的问题。
确保您对架构进行了版本设置并始终尽量避免破坏更改,但/并允许向后兼容新版本。
确保您拥有验证器和其他工具,以便尽可能轻松地使用您的新语言。
答案 3 :(得分:2)
答案 4 :(得分:1)
当然,您希望在某个时刻学习XPath。这是(我认为)选择XML的最佳方式。
答案 5 :(得分:1)
绝对使用架构,无论是XSD还是RELAX NG。
答案 6 :(得分:1)
IBM在Principles of XML Design上做了一系列讲述了很多事实。最好的建议是,除此之外,从来没有一种正确的方法:
在您的设计选择中要简明扼要,如果您选择路线A,请随处选择。即:
如果你使用包装元素<books>
来保存<book>
,那么在任何地方都可以使用包装元素进行收集。
尽可能简洁,以避免混乱。我们认为XML可供人类阅读。
答案 7 :(得分:1)
首先,我同意特雷弗,你必须知道你所覆盖的区域,没有什么比修补后的标准更糟糕了。
第二,你需要至少了解一下xsd和xslt。还有更多关于xpath / xquery的信息,因为您的标准用户可能会使用这些来处理他们的内容。
第三,我建议你尽可能深入地挖掘其他基于XML的标准,看看它们是如何构建的。 XHTML标准非常适合研究,因为它是最古老的XML标准,它的演变是在很长一段时间内通过实际使用来推动的。另外,你可能想要考虑研究原子和rss,xsd(这次是作为一个标准,而不是一种技术)和微格式答案 8 :(得分:1)