代码之家  ›  专栏  ›  技术社区  ›  starhusker

大型架构文件的XML架构验证

xsd
  •  3
  • starhusker  · 技术社区  · 14 年前

    我正在尝试使用xmlint来验证模式,我相信它使用下面的libxml2库。

    问题是我在大约10MB的内存中有一个异常大的模式文件。当我这样做的时候:

    xmllint --schema j9.xsd --noout jsample.xml
    

    我有以下错误:

    j9.xsd:65535: element annotation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}complexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))).
    j9.xsd:65535: element annotation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}complexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))).
    

    … 这种情况不断发生。显然,如果存在错误,则错误的行号不应为65535。我想知道是否还有另一个库没有这个限制,或者是否有人知道如何修复这个bug。谢谢!

    1 回复  |  直到 14 年前
        1
  •  2
  •   Chaim Geretz    14 年前

    libxml2的wntfix错误。 https://bugzilla.gnome.org/show_bug.cgi?id=325533 。非官方补丁附在BugReport上,还没有尝试过…