使用 xmllint 验证 odoo xml文件
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.在配置XML文件时出现reference file contains errors (http://www.springframework.org/schema/beans/...解决方案
解决方案: 第一步:将 Preferences > XML > XML Files > Validation中"Honour all XML schema location ...
- Eclipse关闭XML文件验证的方法
XML的编写是否符合规范,可以通过XML Schema或DTD进行验证,但有时候电脑本来就很卡,而且XML的某些错误并未导致程序无法运行的情况下,暂时关闭XML的验证也算不错的选择. 如web.xml ...
- mybatis,Spring等工具对xml文件正确性的验证
我们知道mybatis或者spring都是使用xml文件作为配置文件,配置文件的格式都是定义在叫做.dtd或者.xsd文件中的,当工具在解析用户自己定义的xml文件的时候,如何才能知道用户自定义的文件 ...
- Eclipse关闭XML文件验证的方法,解决xml警告
XML的编写是否符合规范,可以通过XML Schema或DTD进行验证,但有时候电脑本来就很卡,而且XML的某些错误并未导致程序无法运行的情况下,暂时关闭XML的验证也算不错的选择. 如web.xml ...
- java struts2入门学习--基于xml文件的声明式验证
一.知识点总结 后台验证有两种实现方式: 1 手工验证顺序:validateXxx(针对Action中某个业务方法验证)--> validate(针对Action中所有的业务方法验证) 2 声明 ...
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...
- 史上最全的maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Java Web的web.xml文件作用及基本配置(转)
其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...
- WebAPI使用多个xml文件生成帮助文档
一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet.WebApi.HelpPage)可以根据注释生成帮助文档,查看代码实现会发现是基于解析项目生成的xm ...
随机推荐
- PDO PDO_MYSQL MYSQLI MYSQL 的区别
MYSQL,MYSQLI 这两个扩展本身就是访问MYSQL数据库的驱动 PDO则是一个抽象层接口 向程序员提供可调用的API是由,MYSQL驱动.MYSQLI驱动,以及PDO来提供. PDO_MYSQ ...
- equal(),hashcode(),toString()方法的作用
equal(),hashcode(),toString()方法的作用 这三个方法都是java.lang.Object的方法. equal();判断两对象是否相等hashcode();为对象在容器中添加 ...
- 九度oj 题目1376:最近零子序列
题目描述: 给定一个整数序列,你会求最大子串和吗?几乎所有的数据结构与算法都会描述求最大子串和的算法.今天让大家来算算最近0子串和,即整数序列中最接近0的连续子串和.例如,整数序列6, -4, 5, ...
- koa2源码解读
最近在复习node的基础知识,于是看了看koa2的源码,写此文分享一下包括了Koa2的使用.中间件及上下文对象的大致实现原理. koa的github地址:https://github.com/koaj ...
- 【Luogu】P3177树上染色(树形DP)
题目链接 题没想出来很烦+一堆细节要注意很烦. 当然更可能是我智商被osu吃了. 考虑一条边会有什么贡献?它一边的黑点数*另一边的黑点数*边权. +它一边的白点数*另一边的白点数*边权. 这样一来就成 ...
- ACM程序设计选修课——1040: Alex and Asd fight for two pieces of cake(YY+GCD)
1040: Alex and Asd fight for two pieces of cake Time Limit: 1 Sec Memory Limit: 128 MB Submit: 27 ...
- 【python自动化】python 常用时间获取方法
代码如下: import datetime import time DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" DATE_FORMAT = &quo ...
- linux 程序自动运行总结
1.开机启动时自动运行程序Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc ...
- Android 中图可以用到的图片处理类 BitmapUtils
Android在实际开发中很多时候都要对图片进行一定的处理,这里总结的BitmapUtils 类包括一下几个功能: 1.Android图片倒影, 2.Android图片模糊处理, 3.Android图 ...
- spring+jpa+HiKariCP+P6spy SSH HiKariCP P6spy
=============p6spy准备https://www.cnblogs.com/qgc88===================== 1.简单介绍p6spy,p6spy是一个开源项目,通常使用 ...