XML 검증하는 방법
- XML을 붙여넣거나, 파일을 열거나, URL에서 불러옵니다. 입력하는 동안 문서가 자동으로 검사됩니다.
- 오류 메시지를 확인합니다. 메시지에는 문제의 내용과 줄·열 위치가 표시됩니다. 검증을 클릭하면 해당 위치로 바로 이동합니다.
- 해당 줄을 수정합니다. 결과에 올바른 형식의 XML 메시지가 표시되면 문서를 정렬, 압축, 복사하거나 다운로드할 수 있습니다.
자주 발생하는 XML 오류와 해결 방법
| 오류 | 잘못된 예 | 올바른 예 |
|---|---|---|
| 닫는 태그가 일치하지 않음 | <b><i>text</b></i> | <b><i>text</i></b> |
| 요소가 닫히지 않음 | <item>Pen | <item>Pen</item> |
| 이름의 대소문자가 다름 | <Item>…</item> | <Item>…</Item> |
| 이스케이프되지 않은 앰퍼샌드(&) | Tom & Jerry | Tom & Jerry |
| 이스케이프되지 않은 부등호(<) | a < b | a < b |
| 따옴표 없는 속성 값 | <p id=5> | <p id="5"> |
| 중복 속성 | <p id="1" id="2"> | <p id="1"> |
| 루트 요소가 둘 이상 | <a/><b/> | <root><a/><b/></root> |
| HTML 엔티티 | |   |
| 선언이 맨 앞에 없음 | <?xml …?> 앞에 빈 줄이 있음 | <?xml …?> 선언이 문서의 맨 처음에 위치 |
| 주석 안의 이중 하이픈 | <!-- a -- b --> | <!-- a - b --> |
Well-formed와 Valid XML의 차이
Well-formed(올바른 형식의) 문서는 XML 1.0 사양의 문법 규칙을 따릅니다: 루트 요소가 하나이고, 태그가 올바르게 중첩되어 닫혀 있으며, 속성 값은 따옴표로 감싸고 특수 문자는 이스케이프되어 있습니다. 모든 XML 파서는 well-formed가 아닌 문서를 거부합니다.
Valid(유효한) 문서는 well-formed이면서 스키마, 즉 허용되는 요소와 속성을 정의한 DTD나 XSD와도 일치하는 문서입니다. 이 페이지는 well-formed 여부를 검사합니다. 스키마로 검증하려면 xmllint --noout --schema schema.xsd file.xml처럼 스키마를 지원하는 도구를 사용하세요.
자주 묻는 질문
XSD나 DTD 스키마로도 검증하나요?
아니요. 모든 XML 파서가 요구하는 문법, 즉 well-formed 여부를 검사합니다. 문서에 DOCTYPE이 있어도 되지만, XML을 DTD나 XSD 스키마와 비교하지는 않습니다.
왜 오류가 하나만 표시되나요?
XML 사양은 모든 well-formed 오류를 치명적 오류로 취급합니다. 또한 닫는 태그 누락 같은 실수 하나가 그 아래에서 엉뚱한 오류를 연달아 일으키는 경우가 많습니다. 첫 번째 오류를 고치면 문서의 나머지 부분이 바로 검사됩니다.
사이트맵, RSS 피드, SVG 파일도 검사할 수 있나요?
네. XML 기반 형식이라면 모두 well-formed 여부를 검사할 수 있습니다. 사이트맵은 사이트맵 검사 도구에서 사이트맵 프로토콜 규칙까지 추가로 확인할 수 있습니다.
XML이 업로드되나요?
아니요. 검증은 브라우저에서 실행됩니다. URL에서 불러오는 경우에만 서버를 거쳐 파일을 가져옵니다.