XML을 편집하지만 XML 구조 변경을 방지하시겠습니까?

XML을 편집하지만 XML 구조 변경을 방지하시겠습니까?

사용자가 파일의 XML 구조를 변경하는 것을 방지하고 데이터만 입력/수정하는 것이 가능합니까?

아무것도 없습니다XSD 제한사항/패싯이를 지정하는 것입니다.

나는 보았다이 SO 답변읽기 전용 노드를 지정하는 방법은 다음과 같습니다.

  1. 나는 그 반대를 원합니다. 노드 내용은 편집 가능해야 하고 노드 구조는 편집 가능해야 합니다.
  2. 내가 직접 코딩해야 합니까, 아니면이것이 가능하다면XML 편집기가 이것을 지원합니까?

이것을 소프트웨어 요청으로 만들고 싶지 않지만 이를 달성하기 위해 어떤 방향을 취해야 할지 모르겠습니다.

참고: 이것은 '통제된' 환경에 있습니다. 즉, 동료가 데이터를 입력해야 하지만 나는 그들이 그렇게 하고 싶지 않습니다.우연히구조를 바꾸세요.

답변1

xmlstarlet가지고있다명령 이는 XML 문서를 XPath 표현식 목록(요소 이름 및 선택적으로 속성 이름 및 값)으로 설명하며 요소 및 선택적으로 속성 내용은 무시합니다. 따라서 md5sumXML 문서를 편집하기 전과 후에 파이프라인을 통해 이 명령의 출력을 비교하여 편집이 허용되는지 여부를 결정합니다.

xmlstarlet사용할 수 없는 경우 XSLT 프로세서를 사용하여 유사한 출력을 생성하는 것은 복잡하지 않습니다.

관련 정보