XML 서식 정리

XML을 붙여 넣으면 스스로 정리됩니다. 텍스트와 속성은 그대로.

사용 방법

  1. 상자에 XML을 붙여 넣으세요. 입력하는 대로 정리되며 누를 버튼은 없습니다.
  2. 서식 정리나 압축을 고르고 들여쓰기를 2칸이나 4칸으로 정하세요. 결과는 즉시 갱신됩니다.
  3. 구조가 깨졌다면 메시지가 줄, 열, 요소를 알려 줍니다. 결과를 복사하거나 .xml 파일로 내려받으세요.

예시

입력

<?xml version="1.0" encoding="UTF-8"?><order id="A-1042"><customer><name>김민준</name><email>minjun@example.com</email></customer><items><item sku="X-1" qty="2">기어 부품</item><item sku="X-2" qty="1">천공 카드 세트</item></items></order>

정리 후

<?xml version="1.0" encoding="UTF-8"?>
<order id="A-1042">
  <customer>
    <name>김민준</name>
    <email>minjun@example.com</email>
  </customer>
  <items>
    <item sku="X-1" qty="2">기어 부품</item>
    <item sku="X-2" qty="1">천공 카드 세트</item>
  </items>
</order>

기본 규칙만 쓴 예시입니다. 요소마다 한 줄, 단계마다 두 칸입니다. 속성 순서, 따옴표, 값은 그대로이고 <name> 안의 텍스트도 그대로입니다.

규칙, 한계, 알려진 문제

  • 구조 검사만 합니다. 태그 짝, 속성 따옴표·중복·구분, 요소와 속성 이름, 엔티티 문법을 봅니다. DTD나 XSD 검증, 엔티티 확장, 네임스페이스 접두사 연결 검사는 하지 않습니다.
  • 구조 공백만 다시 씁니다. 속성 사이 공백과 텍스트가 없는 요소를 이루는 공백입니다. 속성 순서, 따옴표 스타일, 값, 엔티티, 주석, CDATA, DOCTYPE 내부 서브셋은 글자 하나까지 그대로 복사합니다.
  • 혼합 콘텐츠는 다시 들여쓰지 않습니다. <p>안녕 <b>거기</b>!</p>에서 공백은 입력한 그대로입니다. 줄바꿈을 넣으면 텍스트가 바뀌기 때문입니다. xml:space="preserve"도 마찬가지로 그대로 복사합니다.
  • 빈 요소는 입력한 형태를 유지합니다. <a></a>를 <a/>로 줄이지 않고 <a/>를 펼치지도 않습니다. 속성을 정렬하거나 따옴표를 통일하지 않습니다.
  • 압축은 구조 공백만 지웁니다. 텍스트 공백, 주석, CDATA, DOCTYPE은 유지하며 콘텐츠에서 아무것도 지우지 않습니다.
  • 입력 맨 끝에서 닫히지 않은 태그, 주석, CDATA, DOCTYPE은 오류가 아니라 경고입니다. 결과는 그대로 나옵니다. 실제 실수(태그 불일치, 따옴표 없는 속성 값, 떠도는 "&")는 줄과 열을 붙인 오류입니다.
  • 프래그먼트(최상위 요소 여러 개나 루트 밖 텍스트)는 정리하고 프래그먼트라고 알려 줍니다. 요소가 하나도 없는 입력은 오류입니다.
  • 줄과 열은 유니코드 코드 포인트로 셉니다. 그래서 이모지도 한 열입니다. 공백, 탭, 줄바꿈, 캐리지 리턴만 공백이며 텍스트 안의 U+3000이나 U+00A0은 콘텐츠라 지우지 않습니다.
  • HTML은 아닙니다. </li>나 <br>처럼 생략된 닫는 태그는 닫히지 않은 것으로 보고합니다. 파일 업로드, URL 매개변수, 기록, 트리 보기, XML→JSON은 없습니다. 모든 처리가 브라우저에서 이루어지며 아무것도 업로드하거나 저장하지 않습니다.
  • 20만 자를 넘으면 입력을 멈추고 약 0.6초 뒤 결과가 갱신되며 텍스트를 잘라 내지 않습니다. 출력은 LF를 쓰고 끝에 줄바꿈이 없으며 여러 번 정리해도 결과가 같습니다.

구조를 읽기 좋게 만든 뒤 흔히 이어서 쓰는 도구입니다.