編輯 XML 但阻止更改 XML 結構?

編輯 XML 但阻止更改 XML 結構?

是否有可能阻止使用者更改文件中的 XML 結構,而僅輸入/修改資料?

裡面什麼也沒有XSD 限制/方面指定了這一點。

我見過這個答案關於指定唯讀節點,但是:

  1. 我想要相反的:節點內容應該是可編輯的,節點結構不是。
  2. 我是否必須自己編寫一些程式碼,或者如果可能的話XML 編輯器支援這個嗎?

我不想將此作為軟體請求,但我不知道我必須採取什麼方向才能完成此任務?

注意:這是在「受控」環境中,即同事必須輸入數據,但我不希望他們這樣做偶然改變結構。

答案1

xmlstarlet有一個命令 它將 XML 文件描述為 XPath 表達式的清單:元素名稱和可選的屬性名稱和值,忽略元素和可選的屬性內容。因此,在編輯 XML 文件之前和之後比較該命令的輸出(透過管道傳輸後),md5sum以確定編輯是否可接受。

如果xmlstarlet不可用,那麼使用 XSLT 處理器產生類似的輸出並不複雜。

相關內容