0

我有一个 7K 行、500kb 的 XML 文件。虽然将这样的文件称为大文件听起来很荒谬,但它是一个手动编辑的配置文件,在这种情况下,大小是一个问题:

  • 语法高亮非常慢(至少在 IntelliJ 中是这样)
  • 在这么大的文件中搜索内容很痛苦

因此,我想将文件拆分为多个小文件。XInclude实际上听起来很棒,但是存在一个复杂的 XSD,它极大地有助于防止错误,包括对整个文件中必须唯一的外键和索引的引用。如果我将 XML 文件拆分为多个小文件,则验证需要跨越多个文件并检查交叉引用。

--> 我需要验证器先执行XInclude,然后再执行验证。虽然谷歌建议这是可能的,但我无法做到这一点:我试图让它与xmllint --xinclude --schema mySchema.xsd myXMLWithPlentyOfXIncludes.xml.如果我将 xmlns 属性添加到它抱怨的包含文件的根标记The attribute '{http://www.w3.org/XML/1998/namespace}base' is not allowed

那么我应该如何设置才能跨文件获取命名空间呢?如何完成验证?还有什么我应该注意的警告吗?

奖励:如何让验证在 IntelliJ 中工作?

4

1 回答 1

2

听起来像是实体的案例。使每个小文件成为一个单独的 XML 外部实体,可以自行编辑,并将主文件替换为一个非常小的文件,该文件只需使用实体引用(&one; 等)链接到这些实体。当您在主文件上运行验证时,它会自动拉入实体。

于 2014-01-23T16:29:14.643 回答