2014-01-23 74 views
0

我有一個7K行,500KB的XML文件。雖然這聽起來荒謬調用這樣的文件大,這是由手和在這種情況下編輯的配置文件的大小是一個問題:將大型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中工作的驗證?

回答

2

聽起來像實體的情況。使每個小文件成爲一個單獨的XML外部實體,它們可以自行編輯,並用一個非常小的文件替換主文件,該文件通過實體引用(&one;等)簡單鏈接到這些實體。當你在主文件上運行驗證時,它會自動拉入實體。

相關問題