Odoo 源码包含了2个 relax ng 文件,也是odoo sa用来验证xml的正确性的。

openerp/import_xml.rng

openerp/addons/base/rng/view.rng

阅读源码,发现odoo 在装载xml 文件以及加载 view到数据库的时候,会使用 lxml 调用 relax ng 来验证 XML文件,以及view 定义的正确性。

源码 addons/base/ir/ir_ui_view.py 里面的 _check_xml 方法

源码 tools/convert.py 里面的 convert_xml_import 方法

如果开发者在开发时,就能验证 XML 的正确性,就不用等到安装模块时才发现XML 撰写错误。

下面就如何在 sublime text 平台使用 relax ng 验证XML

其他 IDE 自行套用。

Sublime text 使用 sublimelinter - xmllint 插件

前提是要安装好 xmllint, xmllint 在 libxml2-utils 包分发

安装 sublimelinter 和 sublimelinter - xmllint.

使用 package control 管理 sublime text 的插件,将 sublimelnter 和 sublimelinter -xmllint 加入到 package control 用户配置里,这样, Package control 将会自动安装添到 installed pakcages 里面的插件

我的用户配置如下

{

"bootstrapped": true,

"git_binary":

[

"c:\\cygwin\\bin\\git.exe"

],

"in_process_packages":

[

],

"installed_packages":

[

"All Autocomplete",

"Anaconda",

"GitGutter",

"HTML-CSS-JS Prettify",

"Markdown Extended",

"Markdown Preview",

"MarkdownEditing",

"Package Control",

"SideBarEnhancements",

"SnippetMaker",

"sublime-odoo-snippets",

"SublimeGoogle",

"SublimeLinter",

"SublimeLinter-jshint",

"SublimeLinter-json",

"SublimeLinter-xmllint",

"SublimeREPL",

"Vintageous"

],

"repositories":

[

"https://github.com/sotogarcia/sublime-odoo-snippets"

]

}

从上面可以看出,我用cygwin来运行 linux tools… 所以我的 xmllint 也是在cygwin 下运行的。如果你是其他的平台,按照OS选择安装合适的 xmllint

安装 sublimelinter -xmllint 之后,最重要的事情,就是配置 sublimelinter…

进入 sublimelinter 用户配置

对 xmllint 小节修改配置

增加 xmllint 参数。。。

"args": [

"--relaxng",

"e:\\view.rng",

"--relaxng",

"e:\\import_xml.rng",

],

其中 view.rng 和 import_xml.rng 是 relax ng 文件的存放位置。

使用 xmllint 验证 odoo xml文件的更多相关文章

  1. 1.在配置XML文件时出现reference file contains errors (http://www.springframework.org/schema/beans/...解决方案

    解决方案: 第一步:将 Preferences > XML > XML Files > Validation中"Honour all XML schema location ...

  2. Eclipse关闭XML文件验证的方法

    XML的编写是否符合规范,可以通过XML Schema或DTD进行验证,但有时候电脑本来就很卡,而且XML的某些错误并未导致程序无法运行的情况下,暂时关闭XML的验证也算不错的选择. 如web.xml ...

  3. mybatis,Spring等工具对xml文件正确性的验证

    我们知道mybatis或者spring都是使用xml文件作为配置文件,配置文件的格式都是定义在叫做.dtd或者.xsd文件中的,当工具在解析用户自己定义的xml文件的时候,如何才能知道用户自定义的文件 ...

  4. Eclipse关闭XML文件验证的方法,解决xml警告

    XML的编写是否符合规范,可以通过XML Schema或DTD进行验证,但有时候电脑本来就很卡,而且XML的某些错误并未导致程序无法运行的情况下,暂时关闭XML的验证也算不错的选择. 如web.xml ...

  5. java struts2入门学习--基于xml文件的声明式验证

    一.知识点总结 后台验证有两种实现方式: 1 手工验证顺序:validateXxx(针对Action中某个业务方法验证)--> validate(针对Action中所有的业务方法验证) 2 声明 ...

  6. Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)

    ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...

  7. 史上最全的maven的pom.xml文件详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. Java Web的web.xml文件作用及基本配置(转)

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

  9. WebAPI使用多个xml文件生成帮助文档

    一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet.WebApi.HelpPage)可以根据注释生成帮助文档,查看代码实现会发现是基于解析项目生成的xm ...

随机推荐

  1. MySQL5.7从入门到精通 (视频教学版) 刘增杰 编著

    第1章 初识MySQL MySQL是一个开放源代码的数据库管理系统(DBMS),它是由MySQL AB公司开发.发布和支持的.MySQL是一个跨平台(Windows.Linux.UNIX.MacOS) ...

  2. javascript学习笔记 - 引用类型 基本包装类型

    六 基本包装类型 Boolean,Number,String 这三个引用类型亦称为基本包装类型,与基本的数据类型boolean,number,string相关联.为了方便操作这些基本类型的数据. 引用 ...

  3. http.server()的理解

    http.server()相当于实例化一个server,等价于http.createServer(). 以下为个人理解 http.server()为创建一个http服务,http.server()可以 ...

  4. scikit-learn使用方法

    1.支持向量机 #_*_ coding:utf-8 _*_ from sklearn import datasets from sklearn import svm #装载内部测试数据集 digits ...

  5. python调用C/C++动态链接库和jython

    总结(非原创) Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可. 1. C语言文件:pycall.c #include <stdio.h> ...

  6. CS231n笔记 Lecture 3 Loss Functions and Optimization

    这一讲总体上就是引入Loss Function的概念,以及让大家对优化有一个初步的认识,和其他课程里面说的内容大同小异. Loss function Multiclass svm loss multi ...

  7. C# Settings.settings的用处

    1.定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: 2.读取配置值 t ...

  8. ACM程序设计选修课——Problem F:(ds:图)旅游规划(优先队列+SPFA)

    问题 F: (ds:图)旅游规划 时间限制: 1 Sec  内存限制: 128 MB 提交: 14  解决: 4 题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路 ...

  9. HDU-1529 Cashier Employment

    据网上说这是到差分约束四星题... 可我觉得难吗? 比推DP方程容易... 两种约束方式,当然实现到程序就变成六种了... #include <cstdio> #include <c ...

  10. BZOJ 4820 [Sdoi2017]硬币游戏 ——期望DP 高斯消元

    做法太神了,理解不了. 自己想到的是建出AC自动机然后建出矩阵然后求逆计算,感觉可以过$40%$ 用一个状态$N$表示任意一个位置没有匹配成功的概率和. 每种匹配不成功的情况都是等价的. 然后我们强制 ...