XSV的安装和使用问题

XSV的安装和使用问题XSV 是用于 XML 验证的一个开源程序 可以在 unix 和 windows 系统上面运行

大家好,欢迎来到IT知识分享网。XSV是用于XML验证的一个开源程序,可以在unix和windows系统上面运行。今天使用时很不顺手。我的系统是fedora 6,而在网上的RPM包根本无法安装。于是下载了源文件编译。注意,XSV只是一些python脚本,它依赖于PyLTXML,而后者又依赖于ltxml。首先编译ltxml,顺利通过。但是执行python setup.py install来安装PyLTXML时总是提示头文件nsllib.h找不到 。原来,ltxml默认的把头文件放在/usr/local/include目录下面——这也是很正常的,但是setup.py里面却指定到/group/ltg/projects/lcontrib9/去找,当然找不到了。不知道PyLTXML的原作者是怎么搞的,为什么不用默认的路径。

安装好了以后,觉得XSV里面的那个commandLine.py特别冗长,带了很多我用不到的参数。于是自己重写了一个validator.py,并且把它放在/bin目录,以便以后使用。其内容如下

 1 #!/usr/bin/env Python
2 """Drive XSV from command line"""
3
4 import sys
5 import XSV.driver
6
7 debug = 1
8
9 class SchemaValidationError(Exception):
10 def __init__(self,arg):
11 Exception.__init__(self,arg)
12
13 def parseAndRun(argl):
14 runitAndShow=XSV.driver.runitAndShow
15 res=XSV.driver.runitAndShow(sys.argv[1])
16 if res is not None:
17 raise SchemaValidationError,res
18
19 if __name__=='__main__':
20 try:
21 parseAndRun(sys.argv[1:])
22 except SchemaValidationError, ex:
23 if debug:
24 sys.stderr.write(ex.args[0])
25 sys.exit(1)
26 sys.exit(0)
27

这样,我只要使用validator.py my.xml就可以了。当然,my.xml已经指定了对应的xsd。我用PHP的system函数来调用它验证客户上传的xml文件。

但是使用中我很奇怪的发现,验证的结果,不管是否有错误,都不能在浏览器里面显示。摸索了半天,原来问题在于XSV的driver.py,它把所有的输出都定向到stderr去了。把它改成stdout就没有问题了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/158677.html

(0)
上一篇 2025-01-18 19:25
下一篇 2025-01-18 19:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信