欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(原)用nXML-mode编辑xml

程序员文章站 2022-06-29 16:11:01
...
最近想用emacs打造一个小型的Java开发环境,Java开发的mode肯定是选jde了,在IBM的网站上有一篇文章介绍了jde的使用文章《使用emacs-jde进行Java开发》需要注意的是ede、eieio、semantic、speedbar都在cedet这个包中,elib还需要单独下载,这里就不再缀述。
做为Java开发环境,一个称手的xml编辑器少不了。网上很多介绍使用psgml-mode来编辑xml的,但我发现psgml的使用比较麻烦,似乎还不支持xsd校验,只支持dtd校验。于是找到了nXML-mode,经过测试,nXML-mode再配合RNC schema可以实现对xml文件格式的校验和代码自动完成。
nXML-mode安装配置过程如下:
  1. 下载nXML-mode及相关的工具软件
    • nXML-mode
    • 自动生成RNC schema的工具Trang
      nXML使用RNC schema来实现对xml的校验,而不是直接使用dtd或xsd,在nXML-mode的包中带了一些常用格式的RNC文件,如DocBook、XHTML、XSLT、DTD等。
      Trang这个工具可以根据DTD生成对应的RNC文件。
    • 将 W3C XML Schema 转换为 RELAX NG格式的工具rngconv
      这个工具能是将xsd转换成RNG格式,然后可以用Trang将RNG转换为RNC。
  2. 修改.emacs,以加载nXML-mode
    配置无法贴出,贴出后出现排版错误,可以参见nXML-mode的README
  3.  添加对Hibernate hbm文件的支持
    根据Hibernate 3 的DTD生成RNC文件
    命令
    1. java -jar trang.jar http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd hibernate-mapping-3.0.rnc 
    将生成的hibernate-mapping-3.0.rnc复制到emacs的nXML-mode安装目录。
    修改nXML-mode安装目录下的schema/schema.xml。在文件中增加一种新的文件类型对质,在文件中加入:
    xml 代码
    1. <typeId id="Hibernate HBM" uri="hibernate-mapping-3.0.rnc"/>  
    在schema.xml文件中加入hbm的一种识别方式,这里将根据文件名以hbm.xml结尾,来识别这是一个Hibernate HBM类型的文件:
    xml 代码
     
    1. <uri pattern="*.hbm.xml" typeId="Hibernate HBM"/>  
    这样在打开hbm.xml结尾的文件时,将自动加载前面生成的rnc文件。
  4. 添加对Maven2 pom文件的支持
    根据Maven2的xsd生成rng文件
    命令
    1. java -jar rngconv.jar http://maven.apache.org/maven-v4_0_0.xsd >> maven2.rng  
    根据rng生成rnc
    命令
    1. java -jar trang.jar maven2.rng maven2.rnc  
    将maven2.rnc复制到nXML-mode安装目录中。修改schema.xml增加一种新的类型

    xml 代码
    1. <typeId id="Maven2" uri="maven2.rnc"/>  
    修改schema.xml,加入自动识别pom文件的功能,这里不通过文件名来识别,而是使用namespace来识别
    xml 代码
    1. <namespace ns="http://maven.apache.org/POM/4.0.0" typeId="Maven2" />  
    这样在打开pom时,将自动加载maven2.rnc文件。
  5. 现在可以编辑hbm或者pom文件进行测试。nXML-mode是即时进行校验的,按Ctrl+return可以自动完成标签或属性。