XML を編集しますが、XML 構造の変更は禁止しますか?

XML を編集しますが、XML 構造の変更は禁止しますか?

ユーザーがファイル内の XML 構造を変更できないようにし、データの入力/変更のみを許可することは可能ですか?

何もないXSD 制限/ファセットこれを指定します。

私は見たこのSOの答え読み取り専用ノードを指定する方法についてですが、

  1. 私はその逆を望んでいます。つまり、ノードの内容は編集可能で、ノードの構造は編集できないということです。
  2. 自分で何かをコーディングする必要があるのか​​、それとももしこれが可能ならばXML エディターはこれをサポートしていますか?

これをソフトウェアのリクエストにしたくありませんが、これを実現するためにどのような方向を取ればよいのか全くわかりません。

注: これは「管理された」環境です。つまり、同僚がデータを入力する必要がありますが、私は彼らにデータを入力させたくないのです。偶然に構造を変更します。

答え1

xmlstarletがあります指示 これは、XML ドキュメントを XPath 式のリストとして記述します。要素名とオプションの属性名と値で構成され、要素とオプションの属性の内容は無視されます。したがって、このコマンドの出力を にパイプした後、md5sumXML ドキュメントを編集する前と編集した後で比較して、編集が許容可能かどうかを判断します。

xmlstarlet利用できない場合は、 XSLT プロセッサを使用して同様の出力を生成することは複雑ではありません。

関連情報