SOAP / API 디버깅
네트워크 로그에서 가져온 raw SOAP 응답을 붙여넣고 포맷하면, 봉투 내부의 실제 fault가 한눈에 보입니다. 오류 줄 + 열을 통해 잘못된 namespace prefix나 이스케이프되지 않은 &로 즉시 이동할 수 있습니다.
어떤 XML이든 보기 좋게 정리하고, 압축하고, 검증하세요 — REST 응답, SOAP 봉투, RSS 피드, sitemap, Maven, AndroidManifest. 구문 강조된 출력, 줄 + 열 단위 오류 보고. 모두 브라우저에서.
well-formed는 기본적인 구조 규칙입니다: 태그는 올바르게 중첩되고 닫혀야 하며, 속성은 따옴표로 감싸야 하고, 단일 root 요소가 있어야 하며, 특수 문자는 이스케이프되어야 합니다(<, & 등). 이 도구는 브라우저 내장 DOMParser를 사용해 well-formed 여부를 검사합니다.
Validity는 schema(DTD, XSD, RelaxNG)에 대한 더 엄격한 검사입니다 — "이 문서가 이 문법을 따르는가". 브라우저 DOMParser는 schema 검증을 수행하지 않습니다. XSD 검증이 필요하다면 xmllint --schema 같은 서버 측 도구가 필요합니다.
예. CDATA 섹션(<![CDATA[…]]>)은 작성된 그대로 유지됩니다 — 내부의 특수 문자는 다시 이스케이프되지 않습니다. 주석(<!-- … -->)과 processing instruction(<?xml-stylesheet … ?>)은 원래 위치에 다시 배치됩니다. XML declaration과 doctype 줄은 첫 줄로 그대로 보존됩니다.
SOAP 봉투, RSS 피드, sitemap, Maven `pom.xml`, AndroidManifest — 포맷, 압축, 검증 전반에서 정확하게 처리됩니다.
2칸, 4칸, Tab 들여쓰기를 설정할 수 있습니다. 자체 닫힘 태그는 그대로 자체 닫힘 상태로 유지됩니다. CDATA 섹션, 주석, processing instruction, XML declaration 모두 포맷 왕복 후에도 그대로 유지됩니다.
요소 사이의 의미 없는 공백을 제거하고 전체 문서를 한 줄로 줄여줍니다. XML을 JSON 문자열 필드에 임베드하거나 좁은 회선으로 보낼 때 유용합니다.
브라우저 내장 DOMParser를 사용한 well-formed 검사를 수행합니다. 오류가 발생하면 잘못된 마크업의 줄과 열이 인라인으로 표시되어 문제 위치로 바로 이동할 수 있습니다.
태그 이름, 속성, 속성 값, 텍스트, 주석, CDATA, processing instruction이 모두 색으로 구분되어 구조를 즉시 알아볼 수 있습니다.
모든 바이트가 브라우저 안에 머무릅니다. 파싱, 포맷, 검증, 다운로드 모두 본인의 컴퓨터에서 JavaScript로 실행됩니다. DevTools → Network를 열어 외부 요청이 0인지 직접 확인하세요.
순수 JavaScript, 프레임워크 런타임 없음. 콜드 로드는 gzip 기준 25 KB 미만입니다. 200 KB XML 문서를 포맷하고 구문 강조까지 다시 렌더링하는 데 80 ms 미만이 걸립니다.
지저분한 XML을 깔끔하고 검증된 출력으로 만드는 4단계.
어떤 XML payload든 드롭하거나 붙여넣으세요 — REST API 응답, SOAP 봉투, RSS / Atom 피드, sitemap, 설정 파일. 입력하는 동안 자동으로 포맷됩니다(350ms 디바운스).
2칸은 현대의 기본값입니다(Prettier 및 대부분의 스타일 가이드와 일치). 4칸은 더 오래된 관행입니다(Java와.NET). Tab은 에디터의 tab 너비와 일치합니다 — 문서를 손으로 편집할 때 유용합니다.
검증은 well-formed 오류를 줄 + 열과 함께 보고합니다. 압축은 문서를 한 줄로 줄입니다 — XML을 JSON 문자열, 데이터베이스 컬럼, shell 변수에 임베드할 때 유용합니다.
복사 아이콘을 클릭하면 정리된 XML이 클립보드로 전송되거나, formatted.xml로 다운로드할 수 있습니다. 출력은 CDATA, 주석, processing instruction, XML declaration을 모두 보존합니다.
프라이버시 우선 브라우저 포매터가 IDE를 여는 것보다 나은 4가지 일반적인 XML 워크플로우.
네트워크 로그에서 가져온 raw SOAP 응답을 붙여넣고 포맷하면, 봉투 내부의 실제 fault가 한눈에 보입니다. 오류 줄 + 열을 통해 잘못된 namespace prefix나 이스케이프되지 않은 &로 즉시 이동할 수 있습니다.
직접 작성한 `sitemap.xml`이나 RSS 피드를 붙여넣고, Search Console / aggregator에 제출하기 전에 well-formed 여부를 검증하세요. 자동화 스크립트에 임베드하기 위해 한 줄로 압축할 수도 있습니다.
Maven pom.xml, Spring beans, NHibernate 매핑, Android AndroidManifest.xml — 모두 수동 편집 후 다시 포맷하면 도움이 됩니다. 커밋 전에 검증하면 빌드에서 발견될 오타를 미리 잡을 수 있습니다.
.docx, .xlsx, .pptx, .epub는 모두 XML로 구성된 ZIP입니다. 내부 XML을 추출해 여기에 붙여넣고 포맷하면, 다시 압축하기 전에 구조를 깔끔하게 읽거나 편집할 수 있습니다.
XML payload는 절대 기기를 떠나지 않습니다. DevTools → Network를 열어 보면 포맷, 검증, 복사, 다운로드 중 외부 요청이 전혀 없음을 확인할 수 있습니다.
DOMParser를 사용하며, 포맷과 압축은 결과 DOM 트리를 단순히 순회하는 JavaScript입니다.
XML, SOAP 디버깅, 설정 파일 워크플로우에 대한 엄선된 글.
Where XML still beats JSON (SOAP, RSS, Office docs, EPUB, sitemaps, configs) and where JSON wins. Worked examples and migration patterns.
Reading XML namespace prefixes, finding the actual fault inside a SOAP envelope, and using a browser-based formatter to spot the issue without firing up SoapUI.
well-formed는 기본적인 구조 규칙입니다: 태그는 올바르게 중첩되고 닫혀야 하며, 속성은 따옴표로 감싸야 하고, 단일 root 요소가 있어야 하며, 특수 문자는 이스케이프되어야 합니다(<, & 등). 이 도구는 브라우저 내장 DOMParser를 사용해 well-formed 여부를 검사합니다.
Validity는 schema(DTD, XSD, RelaxNG)에 대한 더 엄격한 검사입니다 — "이 문서가 이 문법을 따르는가". 브라우저 DOMParser는 schema 검증을 수행하지 않습니다. XSD 검증이 필요하다면 xmllint --schema 같은 서버 측 도구가 필요합니다.
예. CDATA 섹션(<![CDATA[…]]>)은 작성된 그대로 유지됩니다 — 내부의 특수 문자는 다시 이스케이프되지 않습니다. 주석(<!-- … -->)과 processing instruction(<?xml-stylesheet … ?>)은 원래 위치에 다시 배치됩니다. XML declaration과 doctype 줄은 첫 줄로 그대로 보존됩니다.
예, well-formed인 것이라면 무엇이든 동작합니다 — namespace prefix(soap:Envelope, soap:Body)가 있는 SOAP 봉투, RSS / Atom 피드, sitemap, SVG, plist, Maven pom.xml, Spring 설정, EPUB container.xml, Android AndroidManifest.xml까지 모두 가능합니다. namespace prefix는 보존됩니다 — xmlns: 속성을 제거하지 않습니다.
가장 흔한 원인은 다음과 같습니다: (1) 텍스트나 속성 값 안의 이스케이프되지 않은 & — 반드시 &여야 합니다; (2) 두 개의 root 요소(XML은 정확히 하나만 허용); (3) 여는 태그와 닫는 태그의 이름이 다른 경우(예: <Item>…</item> — XML은 대소문자를 구분합니다); (4) 따옴표로 감싸지 않은 속성 값; (5) 텍스트 내용 안에 짝이 없는 <. 오류 메시지에 표시되는 줄 + 열이 실패한 위치를 가리킵니다.
아니요. 파싱, 포맷, 압축, 검증, 구문 강조, 다운로드 모두 브라우저에서 JavaScript로 실행됩니다. DevTools → Network를 열어 보면 사용 중에 외부 요청이 전혀 없음을 확인할 수 있습니다. cookie는 cookie 동의 상태용 하나와 언어 설정용 하나, 그게 전부입니다.