• 使用 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 文件的存放位置。

       

       

       

    转载注明原作者 /by Jeffery
  • 相关阅读:
    html_Dom
    html_javascript
    html_之css
    协程
    进程和线程的总结
    html_基础标签
    html_头部<meta>设置
    Python_queue单项队列
    Python_paramiko模块
    Python_多进程multiprocessing
  • 原文地址:https://www.cnblogs.com/odoouse/p/5505938.html
Copyright © 2020-2023  润新知