f(invalid XML, target XSD) = valid XML
으로 묘사 된 내용은 사소한 XML/XSD를 제외하고 일반적인 방식으로 빌드하는 것은 사실상 불가능합니다. 그 이유는 (적어도) 필자가 할 수있는 주류 도구를 알지 못하는 이유 일 수 있습니다 그런 것 ... (단지 당신에게 당신의 질문에 대한 나의 짧은 대답을주었습니다).
같은 XML이 XSD에서 설명 될 수있는 여러 가지 방법과 잠재적으로 잘못된 XML을 준수 할 수있는 여러 가지 방법이있을 수 있습니다 (엄격히 말하자면 수정할 수없는 시나리오가 있음) ... 패턴을 알아내는 것이 더 실용적입니다 (XML의 문제가 일관성이 있다는 가정하에) XML을 수정하고 사용자 정의 스크립트를 통해 수정 사항을 적용해야합니다 (XSLT는 하나 일 수도 있지만 필자도 보았습니다. 사용 가능한 도구 및/또는 기술에 따라 "diffgram"기반 접근법).
여기에 답글을 쓰겠습니다 ... 실제로 테스트 프레임 워크 (Windows 만 실행 중입니다)는 일반적으로 다양한 데이터 소스에서 테스트 데이터를 수집하고 유효한 XML을 생성 할 수 있습니다 지정된 XSD 및 일종의 매핑 메타 데이터를 기반으로합니다. "매핑 메타 데이터"에는 패턴이 필요합니다. 위를 참조했습니다 ...
XML/XSD의 복잡성에 따라 이러한 프레임 워크 구성에는 시간이 걸릴 수 있지만 ... 여기에 요점은 , 사소한 일이라도 테스트 프레임 워크에서 진행되는 "자동화"가별로 없습니다.
(업데이트 재 : 귀하의 코멘트에 조롱/프레임 워크 측면)
당신은 뭔가 다른 (즉 조롱을) 수정했는데 뭔가를 해결하기 위해 노력 것으로 보인다. mocking이 필요한 경우, 조롱에 대한 나의 접근 방식은 (XQuery 또는 XML 데이터베이스와 같은 것들이 발명되기 전에) 수년 전에 같은 문제가 발생했기 때문에 조롱하는 방식이 약간 다릅니다. 가장 간단한 설정에서 데이터는 스프레드 시트에 있습니다. 독점적 인 XML 빌더 shapes
은 (임의의) XSD로 설명 된 컨텐츠 모델을 통해 걷는 방식으로 계층 적 세트로 데이터를 변환합니다. 데이터는 Excel에서 가져 오거나, 외부 데이터 소스에서 조회하거나, 기본값으로 설정 될 수 있습니다. 결과는 XSLT 또는 COBOL 카피 북을 사용하여 변환되고 파일로 저장되거나 또는 XML 문서의 일부로 스트리밍되는 하나 이상의 XML 조각 일 수 있습니다. TCP/IP 기반 조롱 프레임 워크 (웹 서비스, IMS 트랜잭션 등)
내가 묘사 한이 조롱 방법 ...동일한 데이터/테스트 사례를 사용하여 웹 서비스, IMS 트랜잭션, 드라이브 UI 자동화 테스트 또는 엔터프라이즈 환경에서 실행되는 모든 것을 테스트 할 수 있다는 것을 알고 있기 때문에 "데이터를 먼저 배치"합니다. 특정 사양 (XSD, COBOL 카피 북, CSV 등)을 준수하기위한 "쉐이핑 (Shaping)"데이터는 "프리젠 테이션"... 따라서 우려의 분리입니다. 누락 된 것으로 보이는 필드를 "삽입"하여 새 XML을 얻는 것이 얼마나 쉬운 지 상상해보십시오.
[XML 스키마를 사용하여 Java에서 XML 수정하기] 가능한 복제본 (http://stackoverflow.com/questions/8968701/using-a-xml-schema-to-fix-an-xml-in-java)) – Stephan