是否有任何命令行工具可以针对XSD版本 1.1 验证XML?
Xmllint不验证版本1.1。
答案 0 :(得分:2)
我在Xerces-J周围发现了一个方便的包装:https://www.dropbox.com/s/939jv39ihnluem0/xsd11-validator.jar
java -jar xsd11-validator.jar -sf my.xsd -if my.xml
您可以通过解压缩jar来更新Xerces-J lib,将新的Xerces-J放入其中,然后将其重新压缩到jar
编辑:更新了下载链接
答案 1 :(得分:1)
XSD 1.1目前由Saxon和Xerces J.支持。两者都应该在Linux下运行。
答案 2 :(得分:0)
以下是该程序可用于克服xmllint限制:
基于Oxygen Editor反向生成器(基于已有的XML文件)实现验证XML Schema 1.1版。 it could be downloaded from here with the 1 month license free
xmllint不接受生成的XSD 1.1文件,并显示以下错误消息:
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
pass
def start_server():
server = ThreadedHTTPServer((HOST, PORT), handler.Handler)
server_thread = threading.Thread(name='server', target=server.serve_forever)
server_thread.setDaemon(True)
server_thread.start()
server_thread.join()
server.shutdown()
server.server_close()
if __name__ == "__main__":
start_server()
然而,在RNGConv工具的帮助下,xml架构可以转换为relaxng架构,该工具是Kohsuke Kawaguchi的MSV项目的一部分 应用以下转换命令:
xmllint --schema user.xsd --noout user.xml
user.xsd:565: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': Invalid value for maxOccurs (must be 0 or 1).
user.xsd:741: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': Invalid value for maxOccurs (must be 0 or 1).
WXS schema user.xsd failed to compile
生成的relaxng模式文件可以与xmllint一起使用:
java -jar rngconv-20060319/rngconv.jar user.xsd > user.rng
答案 3 :(得分:0)
我回答了这个问题over here at AskUbuntu。
它包括指向Xerces-J包装器xsd11-validator.jar
的工作链接以及一个易于使用的舒适bash脚本。