我刚学会了here,关于nxml-mode,根据自述文件,它是
GNU Emacs的主要模式 编辑XML文档。它支持 编辑格式良好的XML文档和 还提供了架构敏感的编辑 使用RELAX NG的XML文档 紧凑语法。
对于W3C XML Schema,是否存在相同的模式?
如果我找不到这样的东西,那么无论如何nxml-mode对我有用,假设我严格处理W3C XML Schema而不是Relax-NG?
答案 0 :(得分:7)
只需使用XSD到RNG转换器,例如this
答案 1 :(得分:7)
我尝试使用相当简单的XSD架构 - 一个定义了4种不同类型的元素。在nxml-mode中使用这个模式需要我运行3次XSL转换:
[在此之前,我没有意识到有两种类型的RNG。 ]
结果是一个相当紧凑的RNC文件,甚至可以理解。
我也尝试过与XSLT XSD相同的东西,得到了类似的积极结果:一个好的.rnc文件用于nxml-mode。事实证明这是不必要的,因为nxml-mode附带了一个用于XSLT的RNC。但它让我相信更复杂的.XSD文件可以转换为.RNC。
获得.RNC后,您可以使用它来指导编辑XML文档。打开doc(可能是一个新的空文档),如果没有自动为你完成,请确保运行nxml-mode。然后使用C-c C-s C-f将模式以nxml模式与该文档相关联。这仅在第一次编辑文档时才有必要 - 此后模式可以自动与文档关联。
架构与文档关联后,您将获得架构敏感完成(即智能感知)和验证。 nxml-mode商店使用.rnc架构,用于XSLT,Docbook,以及有趣的RNG Xml语法等。
需要一点设置,但它有效。
答案 2 :(得分:1)
即使没有架构,它也非常有用。您可以自动完成结束标记,按标记导航以及许多其他很棒的铃声和口哨声。所有这一切,Alex Ott都是对的。
答案 3 :(得分:0)
使用Sun RNG Converter将XSD转换为RNG / XML,然后使用Trang将RNG转换为RNG紧凑语法。您可以从msv.java.net下载Sun转换器。