XML 파서
XML(Extensible Markup Language)은 구조화된 데이터를 인코딩하기 위한 마크업 언어입니다. JSON이 많은 웹 API에서 XML을 대체했지만, XML은 엔터프라이즈 시스템, SOAP 웹 서비스, 구성 파일에서 여전히 필수적입니다. 이 도구는 XML을 파싱하고 적절한 들여쓰기로 정렬하여 출력합니다.
사양
주요 사용 사례
- SOAP API 요청 및 응답 서식 지정
- Maven pom.xml 파일 읽기 및 검증
- RSS 및 Atom 피드 콘텐츠 파싱
- Android 레이아웃 XML 파일 디버그
- SVG 그래픽 파일 처리
- .NET 구성 파일 검사 (web.config, app.config)
기능
- 적절한 들여쓰기로 정렬 출력
- 네임스페이스와 접두사 보존
- CDATA 섹션과 처리 명령 처리
- 요소와 함께 속성 표시
- 프로그래밍 처리를 위해 JSON으로 변환
- 올바른 형식의 XML 구조 검증
예제
Maven POM
사용해 보기 →의존성을 정의하는 Maven 프로젝트 객체 모델.
<?xml version="1.0" encoding="UTF-8"?>
<project>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
</dependencies>
</project>팁
- XML은 대소문자를 구분합니다. <User>와 <user>는 서로 다른 요소입니다.
- 모든 요소는 올바르게 닫아야 합니다. 자체 닫기 태그에는 <br/>를 사용하세요.
- 속성 값은 반드시 따옴표로 묶어야 합니다(작은따옴표 또는 큰따옴표).
- < 또는 & 문자를 포함하는 콘텐츠에는 CDATA 섹션을 사용하세요.
이해하기 XML 파서
XML(Extensible Markup Language)은 사람이 읽을 수 있고 기계가 파싱할 수 있는 형식으로 구조화된 데이터를 인코딩하기 위한 W3C 표준입니다. 고정된 태그 세트를 가진 HTML과 달리 XML은 자체 요소와 속성을 정의할 수 있어 도메인별 마크업 언어를 만들기 위한 메타 언어입니다. 1.0 사양은 1998년에 발표되었으며 여전히 널리 사용되고 있습니다.
XML의 핵심 특징은 엄격한 구문입니다. 모든 여는 태그에는 닫는 태그가 있어야 합니다(또는 자체 닫기여야 합니다). 속성은 따옴표로 묶어야 합니다. 요소는 올바르게 중첩되어야 합니다. 이러한 규칙을 따르는 문서는 "올바른 형식(well-formed)"입니다. 추가로 스키마(DTD, XML Schema 또는 RELAX NG)를 준수하는 문서는 "유효(valid)"합니다. 이러한 엄격함은 서로 다른 기술로 구축된 시스템 간의 데이터 교환에서 XML을 신뢰할 수 있게 합니다.
네임스페이스는 XML에서 요소 이름 충돌을 방지하는 메커니즘입니다. 네임스페이스는 접두사와 연결된 URI(xmlns:soap="...")로, <soap:Envelope>와 <html:body>가 동일 문서에서 모호함 없이 공존할 수 있도록 보장합니다. 네임스페이스는 SOAP 웹 서비스, SAML 어설션, SVG 그래픽 및 여러 어휘를 결합하는 모든 문서에서 필수적입니다.
JSON이 더 가벼운 구문으로 인해 대부분의 웹 API에서 XML을 대체했지만, XML은 엔터프라이즈 통합(SOAP, EDI), 문서 형식(DOCX, XLSX, ODF), 구성(Maven pom.xml, .NET web.config, Android 레이아웃), 신디케이션(RSS, Atom), 벡터 그래픽(SVG)에서 여전히 지배적입니다. XML 이해는 레거시 시스템, 엔터프라이즈 소프트웨어, 문서 처리 파이프라인 작업에 필수적입니다.
올바른 형식의 XML은 기본 구문 규칙을 따릅니다: 올바른 중첩, 닫힌 태그, 따옴표가 있는 속성, 단일 루트 요소. 모든 XML 파서가 올바른 형식의 XML을 읽을 수 있습니다. 유효한 XML은 더 나아가 허용되는 요소와 속성, 순서, 데이터 타입을 정의하는 스키마(DTD, XML Schema 또는 RELAX NG)를 준수합니다. 검증은 선택 사항이지만 양쪽이 문서 구조에 합의해야 하는 데이터 교환에서 중요합니다.
네임스페이스는 요소를 URI와 연결하여 요소 이름 충돌을 방지합니다. 네임스페이스는 xmlns:prefix="URI"로 선언되고 요소의 접두사로 사용됩니다(<prefix:element>). 기본 네임스페이스(접두사 없는 xmlns="URI")는 해당 요소와 한정되지 않은 하위 요소에 적용됩니다. URI는 실제 리소스를 가리킬 필요가 없으며 고유 식별자로만 기능합니다. CDATA 섹션(<![CDATA[ ... ]]>)은 < 및 & 같은 문자를 포함하는 콘텐츠를 < 및 &로 이스케이프하지 않고 포함하는 방법을 제공합니다. 이는 XML 요소 내에 JavaScript, SQL 쿼리 또는 HTML 조각을 포함할 때 유용합니다.
XML은 JSON에 없는 여러 기능을 제공합니다: 어휘를 결합하기 위한 네임스페이스, 공식 검증을 위한 스키마, 요소 콘텐츠 옆에 메타데이터를 위한 속성, 처리 명령, 혼합 콘텐츠(텍스트와 요소가 혼재), 선언적 변환을 위한 XSLT. XML은 문서 지향 데이터, 복잡한 엔터프라이즈 통합, 시스템 간 공식 계약이 필요한 시나리오에 더 적합합니다. JSON은 가벼운 구문과 범용 도구 지원이 XML의 구조적 풍부함보다 중요한 웹 애플리케이션에서의 단순 데이터 교환에 더 적합합니다.