사용자가 파일의 XML 구조를 변경하는 것을 방지하고 데이터만 입력/수정하는 것이 가능합니까?
아무것도 없습니다XSD 제한사항/패싯이를 지정하는 것입니다.
나는 보았다이 SO 답변읽기 전용 노드를 지정하는 방법은 다음과 같습니다.
- 나는 그 반대를 원합니다. 노드 내용은 편집 가능해야 하고 노드 구조는 편집 가능해야 합니다.
- 내가 직접 코딩해야 합니까, 아니면이것이 가능하다면XML 편집기가 이것을 지원합니까?
이것을 소프트웨어 요청으로 만들고 싶지 않지만 이를 달성하기 위해 어떤 방향을 취해야 할지 모르겠습니다.
참고: 이것은 '통제된' 환경에 있습니다. 즉, 동료가 데이터를 입력해야 하지만 나는 그들이 그렇게 하고 싶지 않습니다.우연히구조를 바꾸세요.
답변1
xmlstarlet
가지고있다명령
이는 XML 문서를 XPath 표현식 목록(요소 이름 및 선택적으로 속성 이름 및 값)으로 설명하며 요소 및 선택적으로 속성 내용은 무시합니다. 따라서 md5sum
XML 문서를 편집하기 전과 후에 파이프라인을 통해 이 명령의 출력을 비교하여 편집이 허용되는지 여부를 결정합니다.
xmlstarlet
사용할 수 없는 경우 XSLT 프로세서를 사용하여 유사한 출력을 생성하는 것은 복잡하지 않습니다.