0
Xerces-C++ (Linux의 경우 버전 2.8)에서 XML 문서를로드하고 문서에서 참조하지 않은 DTD 스키마를 사용하여 유효성을 검사합니다. 나는 다음을 시도했다 :Xerces C++의 문서 유효성 확인
XercesDOMParser parser;
parser.loadGrammar("grammar.dtd", Grammar::DTDGrammarType);
parser.setValidationScheme(XercesDOMParser::Val_Always);
parser.parse("xmlfile.xml");
그러나 문서가 유효하지 않은 경우 오류를 나타내지 않는다. 내가 뭘 놓치고 있니? 당신은 아무것도를보고 싶다면
에서 파생 된 클래스가
. 이제 오류보고가 작동합니다. 그러나, 내 DTD 파일을 구문 분석 할 때 오류가 발생합니다. !!! 여기 내 DTD 파일입니다 오류 메시지 : 치명적인 오류 : grammar.dtd : 2,3 : 마크 업 선언이 필요합니다 –
petersohn
@petersohn : DTD는 attr1이 [value | REQUIRED | IMPLIED | FIXED]의 어떤 속성을 지정하지 않고 끝이없는 것 같습니다>> 어쨌든 , 당신은 당신의 gra를 삽입하려고 할 수 있습니다. mmar.dtd를 xmlfile.xml에 복사하고 XMLNotepad 또는 이와 유사한 XML을 엽니 다. –
DTD에 결말이 있습니다. 여기에 복사하여 붙여 넣는 것을 잊었습니다. 어쨌든, attr1에 #REQUIRED를 추가해도 도움이되지 않는다면 같은 오류 메시지가 나타납니다. XML 파일에 DTD를 포함하지 않는 특별한 이유가 있습니다. DTD를 프로그래밍 방식으로 XML에 연결할 수 있습니까? – petersohn