XML 튜토리얼

XML 홈 XML 소개 XML 사용 방법 XML 트리 XML 구문 XML 요소 XML 속성 XML 네임스페이스 XML 표시 XML HttpRequest XML 파서 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 유효성 검사기 XML DTD XML 스키마 XML 서버 XML 예제 XML 퀴즈 XML 인증서

XML AJAX

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

XML DOM

DOM 소개 DOM 노드 DOM 액세스 DOM 노드 정보 DOM 노드 목록 DOM 순회 DOM 탐색 DOM 값 가져오기 DOM 변경 노드 DOM 제거 노드 DOM 교체 노드 DOM 생성 노드 DOM 추가 노드 DOM 복제 노드 DOM 예제

XPath 튜토리얼

XPath 소개 XPath 노드 XPath 구문 XPath 축 XPath 연산자 XPath 예제

XSLT 튜토리얼

XSLT 소개 XSL 언어 XSLT 변환 XSLT <템플릿> XSLT <값> XSLT <각각> XSLT <정렬> XSLT <만약> XSLT <선택> XSLT 적용 클라이언트의 XSLT 서버의 XSLT XSLT XML 편집 XSLT 예

XQuery 튜토리얼

XQuery 소개 XQuery 예제 XQuery FLWOR 엑스쿼리 HTML XQuery 용어 XQuery 구문 XQuery 추가 XQuery 선택 XQuery 함수

XML DTD

DTD 소개 DTD 빌딩 블록 DTD 요소 DTD 속성 DTD 요소 대 속성 DTD 엔터티 DTD 예

XSD 스키마

XSD 소개 XSD 방법 XSD <스키마> XSD 요소 XSD 속성 XSD 제한 사항

XSD 컴플렉스

XSD 요소 XSD 비어 있음 XSD 요소만 XSD 텍스트만 XSD 혼합 XSD 지표 XSD <모든> XSD <모든 속성> XSD 대체 XSD 예

XSD 데이터

XSD 문자열 XSD 날짜 XSD 숫자 XSD 기타 XSD 참조

서비스

XML 서비스 XML WSDL XML SOAP XML RDF XML RSS

참고문헌

DOM 노드 유형 DOM 노드 DOM 노드 목록 DOM NamedNodeMap DOM 문서 DOM 요소 DOM 속성 DOM 텍스트 DOM CDATA DOM 주석 DOM XMLHttpRequest DOM 파서 XSLT 요소 XSLT/XPath 함수

XML 네임스페이스


XML 네임스페이스는 요소 이름 충돌을 방지하는 방법을 제공합니다.


이름 충돌

XML에서 요소 이름은 개발자가 정의합니다. 다른 XML 응용 프로그램의 XML 문서를 혼합하려고 할 때 종종 충돌이 발생합니다.

이 XML은 HTML 테이블 정보를 전달합니다.

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

이 XML은 테이블(가구)에 대한 정보를 전달합니다.

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

이러한 XML 조각이 함께 추가되면 이름 충돌이 발생합니다. 둘 다 <table> 요소를 포함하지만 요소의 내용과 의미가 다릅니다.

사용자나 XML 응용 프로그램은 이러한 차이점을 처리하는 방법을 모릅니다.


접두사를 사용하여 이름 충돌 해결

XML의 이름 충돌은 이름 접두사를 사용하여 쉽게 피할 수 있습니다.

이 XML은 HTML 테이블과 가구에 대한 정보를 전달합니다.

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

위의 예에서는 두 개의 <table> 요소의 이름이 다르기 때문에 충돌이 없습니다.



XML 네임스페이스 - xmlns 속성

XML에서 접두사를 사용할 때 접두사에 대한 네임스페이스 를 정의해야 합니다.

네임스페이스는 요소의 시작 태그에 있는 xmlns 속성 으로 정의할 수 있습니다 .

네임스페이스 선언의 구문은 다음과 같습니다. xmlns: 접두사 =" URI ".

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="https://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

위의 예에서:

첫 번째 <table> 요소의 xmlns 속성은 h: 접두사에 한정된 네임스페이스를 제공합니다.

두 번째 <table> 요소의 xmlns 속성은 f: 접두사에 한정된 네임스페이스를 제공합니다.

요소에 대해 네임스페이스가 정의되면 동일한 접두사를 가진 모든 자식 요소가 동일한 네임스페이스와 연결됩니다.

네임스페이스는 XML 루트 요소에서도 선언할 수 있습니다.

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.com/furniture">

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

참고: 네임스페이스 URI는 구문 분석기가 정보를 조회하는 데 사용하지 않습니다.

URI를 사용하는 목적은 네임스페이스에 고유한 이름을 부여하는 것입니다.

그러나 회사에서는 종종 네임스페이스를 네임스페이스 정보가 포함된 웹 페이지에 대한 포인터로 사용합니다.


URI(Uniform Resource Identifier)

URI ( Uniform Resource Identifier )는 인터넷 리소스를 식별하는 문자열입니다.

가장 일반적인 URI는 인터넷 도메인 주소를 식별하는 URL( Uniform Resource Locator )입니다. 흔하지 않은 또 다른 유형의 URI는 URN( Uniform Resource Name )입니다.


기본 네임스페이스

요소에 대한 기본 네임스페이스를 정의하면 모든 자식 요소에서 접두사를 사용하지 않아도 됩니다. 다음 구문이 있습니다.

xmlns="namespaceURI"

이 XML은 HTML 테이블 정보를 전달합니다.

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

이 XML은 가구에 대한 정보를 전달합니다.

<table xmlns="https://www.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

실제 사용되는 네임스페이스

XSLT는 XML 문서를 다른 형식으로 변환하는 데 사용할 수 있는 언어입니다.

아래의 XML 문서는 XML을 HTML로 변환하는 데 사용되는 문서입니다.

네임스페이스 "http://www.w3.org/1999/XSL/Transform"은 HTML 문서 내의 XSLT 요소를 식별합니다.

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

XSLT에 대해 더 알고 싶다면 XSLT 튜토리얼 을 읽어보세요 .