XML 정렬·오류 검사

XML을 보기 좋게 정렬하고 형식 오류가 있는 위치를 찾습니다.

들여쓰기
속성
주석
입력1줄
결과
<?xml version="1.0" encoding="UTF-8"?>
<!-- Product feed -->
<catalog xmlns="urn:example:catalog" updated="2026-10-22">
  <book id="bk101" lang="en">
    <title>XML Developer's Guide</title>
    <author>Gambardella, Matthew</author>
    <price currency="USD">44.95</price>
    <notes><![CDATA[Ships in <b>2 days</b> & free returns]]></notes>
  </book>
  <book id="bk102" lang="en">
    <title>Midnight Rain</title>
    <author>Ralls, Kim</author>
    <price currency="USD">5.95</price>
    <available/>
  </book>
</catalog>
형식 오류 없음 · 16줄

XML 보기 좋게 정렬하는 방법

한 줄로 붙어 있는 XML을 입력 칸에 붙여 넣으면 결과 칸에 요소마다 줄을 바꾸고 들여쓴 XML이 나옵니다.

  1. XML을 붙여 넣거나 파일을 엽니다. 사이트맵, RSS, SVG, Maven pom.xml, 안드로이드 레이아웃, SOAP 응답, 공공데이터 API 응답 모두 열 수 있습니다.
  2. 들여쓰기를 2칸·4칸·탭 중에서 고르고, 속성을 한 줄에 하나씩 둘지, 주석을 지울지 정합니다.
  3. 형식이 틀린 문서라면 상태 줄에 첫 오류가 몇 번째 줄 몇 번째 칸인지 나오고, 입력 칸의 그 줄에 표시가 생깁니다.
  4. 트리로 바꾸면 요소를 접었다 펼 수 있습니다. 결과는 복사하거나 .xml 파일로 내려받습니다.

XML 오류 검사: 자주 나오는 오류와 해결

오류 문구는 브라우저의 XML 파서가 내는 영어 원문 그대로 보여 줍니다. 자주 보는 문구와 고치는 법은 다음과 같습니다.

오류 문구원인해결
Opening and ending tag mismatch태그를 닫는 순서가 틀렸거나 이름에 오타가 있음가장 안쪽 요소부터 닫습니다. 이름은 대소문자를 구분합니다
EntityRef: expecting ';'텍스트에 &를 그대로 씀(URL에서 흔함)&amp;로 씁니다
StartTag: invalid element name텍스트에 <를 그대로 씀&lt;로 쓰거나 CDATA로 감쌉니다
Extra content at the end of the document루트 요소가 둘 이상전체를 루트 요소 하나로 감쌉니다
Attribute redefined한 요소에 같은 속성이 두 번하나만 남깁니다
AttValue: " or ' expected속성 값을 따옴표로 감싸지 않음id="7"처럼 감쌉니다

Maven pom.xml 오류처럼 IDE가 빨간 줄을 그었는데 이유가 잘 안 보일 때도 파일 내용을 붙여 넣으면 형식 오류인지 먼저 가릴 수 있습니다. 형식에 문제가 없다면 의존성 버전이나 스키마 쪽 문제입니다.

형식이 맞는 XML과 유효한 XML의 차이

XML 1.0 명세(5판, 2008년 11월 26일 W3C 권고안)는 두 단계를 나눕니다. 문법 제약을 지킨 문서는 형식이 맞는(well-formed) 문서이고, XML 파서는 형식이 틀린 문서를 거부해야 합니다. 형식이 맞으면서 DTD나 XSD 같은 스키마까지 지키면 유효한(valid) 문서입니다. 실제로 파일이 깨지는 경우는 대부분 앞 단계라서 이 도구는 형식을 검사합니다.

미리 정의된 엔티티는 &lt;(<), &gt;(>), &amp;(&), &apos;('), &quot;(") 다섯 개입니다(명세 4.6절).

XML 정렬 단축키: VS Code·Notepad++·IntelliJ·이클립스

편집기정렬 방법
VS CodeRed Hat의 XML 같은 XML 확장을 설치한 뒤 문서 서식: Windows Shift+Alt+F, macOS Shift+Option+F, Linux Ctrl+Shift+I
Notepad++플러그인 > 플러그인 관리에서 XML Tools를 설치하고 플러그인 > XML Tools > Pretty print
IntelliJ IDEAReformat Code: Windows·Linux Ctrl+Alt+L
이클립스Source > Format (Ctrl+Shift+F)

크롬에서 XML 파일 열기와 세금계산서 XML 보기

크롬이나 엣지 창에 .xml 파일을 끌어다 놓으면 태그 구조를 그대로 보여 주지만, 줄이 길거나 오류가 있으면 읽기 어렵습니다. 이 페이지에서 파일을 열면 정렬된 코드와 접을 수 있는 트리로 볼 수 있고, 오류가 있으면 위치를 알려 줍니다. 전자세금계산서 XML 파일도 열어 태그와 값을 확인할 수 있습니다. 다만 세금계산서 양식 모양으로 보여 주지는 않습니다.

명령줄과 파이썬으로 XML 정렬

리눅스와 macOS에서는 libxml2의 xmllint로 정렬하고 오류를 확인합니다.

xmllint --format input.xml > pretty.xml

파이썬 3.9 이상에서는 표준 라이브러리만으로 들여쓸 수 있습니다.

import xml.etree.ElementTree as ET
tree = ET.parse("input.xml")
ET.indent(tree, space="  ")
tree.write("pretty.xml", encoding="utf-8", xml_declaration=True)

XML 압축

압축(Minify)은 요소 사이의 공백만 있는 텍스트를 지우고 태그 안의 공백을 정리해 한 줄로 만듭니다. API로 보내는 데이터나 설정 파일 크기를 줄일 때 씁니다. 텍스트 내용과 CDATA는 그대로 두고, 주석은 삭제를 고를 때만 지웁니다.

출처: W3C Extensible Markup Language (XML) 1.0 (Fifth Edition) 2.1·2.8·2.10·4.6절, 파이썬 문서 xml.etree.ElementTree.indent(3.9부터), libxml2 xmllint 매뉴얼, JetBrains Reformat code. 2026년 10월 확인.

자주 묻는 질문

XML 파일이 서버에 올라가나요?

아니요. 정렬, 압축, 오류 검사는 모두 브라우저 안에서 처리됩니다. 파일 열기로 고른 파일도 내 컴퓨터에서만 읽습니다.

형식이 맞는 XML과 유효한 XML은 어떻게 다른가요?

형식이 맞는(well-formed) XML은 XML 1.0 문법을 지킨 문서입니다. 루트 요소가 하나이고, 모든 태그가 닫혀 있고 올바르게 중첩되며, 속성 값은 따옴표로 감싸고 특수 문자는 이스케이프합니다. 유효한(valid) XML은 여기에 더해 DTD나 XML 스키마(XSD) 규칙까지 맞는 문서입니다. 이 도구는 형식을 검사합니다.

XSD 스키마로 검증할 수 있나요?

아니요. 스키마 검증에는 XSD 파일과 검증 파서가 필요합니다. 명령줄에서 xmllint --schema schema.xsd file.xml을 쓰거나 IDE의 검증 기능을 쓰세요. 이 페이지는 문서 자체의 형식이 맞는지와 첫 오류 위치를 알려 줍니다.

정렬하면 데이터가 바뀌나요?

요소 사이에 줄바꿈과 들여쓰기를 넣고, 텍스트 앞뒤의 공백을 정리합니다. xml:space="preserve"처럼 요소 안의 공백이 의미를 갖는 문서라면 결과를 확인하거나 원본을 쓰세요. 주석, CDATA, 처리 명령, 속성 값은 그대로 둡니다.

"Opening and ending tag mismatch" 오류는 어떻게 고치나요?

닫는 태그가 가장 최근에 연 태그와 맞지 않는다는 뜻입니다. 오류에 나온 줄로 가서 위쪽에 열고 닫지 않은 요소가 있는지, 태그 이름에 오타가 있는지 봅니다. XML 태그 이름은 대소문자를 구분하므로 <Item>과 </item>은 짝이 맞지 않습니다.

XML 안에 &나 <를 쓰려면 어떻게 하나요?

&amp;와 &lt;로 바꿔 씁니다. 미리 정의된 엔티티는 &lt; &gt; &amp; &apos; &quot; 다섯 개입니다. 태그처럼 보이는 긴 글은 CDATA 구역으로 감쌉니다.