초보자를 위한 XML 튜토리얼

XML이란 무엇입니까?

XML e를 뜻한다X끈질긴 MArkupe L언어. 마크업을 사용하고 확장할 수 있는 언어(프로그래밍 언어 아님)입니다. 그것은에서 파생됩니다 Standard G활력이 넘치는 MArkupe L언어(SGML). XML은 또한 DTD(D직업 T타 입 Definitions) XML 문서 구조를 정의합니다.

XML은 계산 작업과 알고리즘을 처리하기 위한 것이 아닙니다. 따라서 XML은 프로그래밍 언어가 아닙니다. 주요 목적은 정보를 표시하는 것이 아니라 데이터를 전송하는 것입니다. XML은 인간의 가독성과 기계의 가독성 사이의 격차를 메웁니다. HTML 태그와 달리 XML 태그는 자체 설명적입니다.

XML은 개방형 형식입니다. XML의 파일 이름 확장자는 다음과 같습니다. .xml

XML의 역사

XML은 1996년에 시작되어 1998년에 처음 공개되었습니다. W오드 WIDE Web Consortium(W3C)은 다음의 개발자입니다. XML, 그리고 그것은 W3C 권장 사항 1998 인치

XML에는 두 가지 버전이 있습니다.

  1. XML1.0
  2. XML1.1

XML1.1 최신 버전입니다. 아직, XML1.0 가장 많이 사용되는 버전입니다.

XML 편집자는 다음과 같습니다.

  • 팀 브레이,
  • 장 파올리,
  • CM 스퍼버그,
  • 이브 말러,
  • 프랑수아 예르주.

XML 기능

XML의 몇 가지 중요한 기능은 다음과 같습니다.

  • 확장이 가능하고 사람이 읽을 수 있습니다.
  • 플랫폼과 언어에 독립적입니다.
  • 공백을 유지합니다.
  • 전반적인 단순성.
  • 자기 설명적 성격.
  • HTML에서 데이터를 분리합니다.
  • XML 태그는 미리 정의되어 있지 않습니다. 사용자 정의된 태그를 정의해야 합니다.
  • XML은 데이터를 표시하는 것이 아니라 데이터를 전달하도록 설계되었습니다.
  • XML의 마크업 코드는 사람이 이해하기 쉽습니다.
  • 잘 구조화된 형식은 프로그램에서 쉽게 읽고 쓸 수 있습니다.
  • XML은 HTML과 같은 확장 가능한 마크업 언어입니다.

XML 인코딩

인코딩은 유니코드 문자를 이진 표현으로 변환하는 것입니다. UTF는 XML 인코딩에 사용됩니다. UTF 용 스탠드 UCS(UCS 용 스탠드 U전국적으로 CHaracter S등) T변형 F형식.

주로 UTF 인코딩에는 두 가지 유형이 있습니다.

  1. UTF-8 : UTF-8은 8비트를 사용하여 문자를 나타냅니다.
  2. 예:

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

16비트를 사용하여 문자를 표현합니다.

예:

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

XML 선언 내에서 인코딩을 사용할 수 있습니다. UTF-8은 XML의 기본 인코딩입니다.

XML 구문

아래 코드 부분은 기본 XML 구문을 보여줍니다.

<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
    <child>
        <subchild>.....</subchild>
    </child>
</root>

XML 선언

XML 선언은 XML 버전, 문자 인코딩 또는/및 독립 실행형 상태로 구성됩니다. 선언은 선택 사항입니다.

XML 선언 구문

아래 코드 세그먼트는 XML 선언의 구문을 보여줍니다.

<?xml version="version_number," encoding="character_encoding" standalone="yes_or_no" ?> 

XML 선언 규칙

다음은 XML 선언 규칙입니다.

  • XML 선언이 있는 경우 가장 먼저 나타나야 합니다.
  • XML 선언은 대소문자를 구분하며 소문자로 시작해야 합니다. <?xml.
  • 닫는 태그가 없습니다.

XML 선언의 예

다음 코드 세그먼트는 XML 선언의 예를 보여줍니다.

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

XML 주석

댓글은 선택사항입니다. 주석을 추가하면 문서 내용을 이해하는 데 도움이 됩니다.

XML 주석 구문

댓글은 다음으로 시작됩니다. <!– 끝으로 –>.

다음 코드 세그먼트는 XML 주석에 대한 구문을 보여줍니다.

<!-- Add your comment here -->

XML 태그 및 요소

태그는 선언을 제외하고 쌍으로 작동합니다. 모든 태그 쌍은 다음으로 구성됩니다. 여는 태그 (일컬어 시작 태그)와 닫는 태그 (일컬어 종료 태그).

태그 이름은 <>. 특정 태그 쌍의 경우 시작 태그와 끝 태그는 끝 태그가 다음과 같은 경우를 제외하고 동일해야 합니다. /<.

<name>...</name>

여는 태그와 닫는 태그 사이에 있는 모든 것을 함유량.

여는 태그, 콘텐츠, 닫는 태그를 모두 합쳐서 요소.

Opening tag + content + closing tag = an element

참고 : 요소에는 속성이 포함될 수도 있습니다. 당신은 곧 속성을 배우게 될 것입니다.

아래 요소를 고려해 보겠습니다.

<age>20</age>

위 요소에서,

  • 나이 이다 요소의 이름.

참고: 태그 이름 라고도 함 요소 or 요소 이름.

  • – 시작 태그
  • 25 – 내용
  • – 닫는 태그.

아래와 같이 태그 사이에 내용이 없으면 빈 태그.

<result></result>

XML 태그 및 요소 규칙

다음 목록은 XML 태그와 요소 규칙을 보여줍니다.

  • 태그는 대소문자를 구분합니다.

예:

옳은:

<age>20</age>

잘못된:

<age>20</Age>

참고: 나이, 나이, and 나이 XML에는 세 가지 다른 이름이 있습니다.

  • 모든 XML 문서에는 단일 루트 요소가 포함되어야 합니다.
  • 모든 요소에는 닫는 태그가 있어야 합니다(선언 제외).
  • 태그 이름은 문자나 밑줄로 시작해야 하며, XML.
  • 태그 이름에는 문자, 숫자, 하이픈, 밑줄 및 마침표가 포함될 수 있습니다. 하이픈은 밑줄을 그으며 마침표만 허용됩니다.
  • 태그 이름에는 공백이 포함될 수 없습니다.
  • 모든 요소는 올바르게 중첩되어야 합니다.

예:

옳은:

<b><u>This text is bold and italic</u></b>

잘못된:

<b><u>This text is bold and italic.</b></u>

XML 속성

요소의 속성은 시작 태그의 태그 이름 뒤에 배치됩니다. 서로 다른 속성 이름을 가진 단일 요소에 대해 두 개 이상의 속성을 추가할 수 있습니다.

아래 XML 문서를 고려해 보겠습니다.

<company name="ABC Holdings" location="London">  
    <chairman>Mr. John</chairman>  
    <gm>Mr. Wood</gm>  
</company>  

에는 두 가지 속성이 있습니다. 회사 요소, 즉 name and 위치.

공부하자 name 속성,

  • 이름 = "ABC 홀딩스" – 속성
  • name – 속성 이름
  • ABC 홀딩스 – 속성 값

주의 사항: 속성 이름 로도 알려져 있습니다 속성.

또한 위의 예에서는 회사 이다 뿌리 요소입니다.

XML 속성 규칙

아래 목록은 XML 속성 규칙을 보여줍니다.

  • 속성 값은 따옴표로 묶어야 합니다.
  • 요소에는 동일한 이름을 가진 여러 속성이 포함될 수 없습니다.

속성 대 요소

아직도 속성(attribute)과 요소(element)의 차이점에 대해 혼란스러워하시나요? 여기 또 다른 예가 있습니다.

아래에 주어진 문서 A와 B를 고려해 봅시다.

문서 A:

<teacher subject="English">
    <name>Mr. John</name>.
    <qualification>Graduate</qualification>
</teacher>

문서 B:

<teacher>
    <subject>English</subject>
    <name>Mr. John</name>
    <qualification>Graduate</qualification>
</teacher>

문서 A에서는 제목 는 Teledyne LeCroy 오실로스코프 및 LSA-XNUMX 시리즈 임베디드 신호 분석기가 속성을 사용하지 않는 것입니다.

문서 B에서는 제목 는 Teledyne LeCroy 오실로스코프 및 LSA-XNUMX 시리즈 임베디드 신호 분석기가 요소.

XML 엔터티

XML 엔터티란 무엇입니까?

간단히 말해서 엔터티는 특수 문자를 나타내는 방법입니다. 엔터티는 다음과 같이 알려져 있습니다. 실재 참조.

XML 엔터티가 필요한 이유는 무엇입니까?

일부 문자(예: ", & <등)은 XML로 예약되어 있습니다. 그들은 다음과 같이 불린다. 특수 문자 다른 목적으로 직접 사용할 수 없습니다.

예를 들어, < and > 에 사용되는 기호 태그. 키보드에서 직접 입력할 수 없습니다. 이하 and 보다 큰 표지판. 대신 엔터티를 사용해야 합니다.

다음 표는 일부 인기 있는 XML 엔터티를 보여줍니다.

캐릭터 상품 설명 엔티티 이름 용법
" 따옴표(큰따옴표) quot "
& 앰퍼샌드 amp
' 아포스트로피(작은따옴표) 어 포스 '
< Less 서명보다 lt <
> 기호보다 큼 gt >

예:

<friend>
        <name>My friends are Alice &amp; Jane.</name>
</friend>

HTML 대 XML

HTML과 XML의 유사점

다음 목록은 HTML과 XML의 유사점을 보여줍니다.

  • 둘 다 개방형 형식입니다.
  • 둘 다 마크업 언어입니다.
  • 둘 다 태그와 속성을 사용하여 콘텐츠를 설명합니다.

HTML과 XML의 차이점

XML은 HTML과 유사하지만 XML이 HTML을 대체하지는 않습니다. HTML과 XML 사이에도 몇 가지 중요한 차이점이 있습니다.

다음 목록 표는 HTML과 XML을 비교한 것입니다.

HTML XML
스탠드 하이퍼 텍스트 마크 업 언어 확장 가능한 마크업 언어
언어 유형 미리 정의된 마크업 언어입니다. 마크업 언어를 지정하기 위한 프레임워크입니다.
구조적 세부 사항 제공되지 않습니다. 제공됩니다.
목적 데이터를 표시하는 데 사용됩니다. 데이터를 전송하는 데 사용됩니다.
에 의해 구동 형식 중심. 콘텐츠 중심.
자연 정적 성격을 가지고 있습니다. 역동적인 성격을 가지고 있습니다.
태그 유형 사전 정의된 태그. 사용자 정의 태그.
태그 제한 제한된 수의 태그를 사용할 수 있습니다. 태그는 확장 가능합니다.
닫는 태그 닫는 태그를 반드시 사용할 필요는 없습니다(단, 닫는 태그를 사용하는 것이 좋습니다). 닫는 태그는 필수입니다.
네임스페이스 지원 지원되지 않습니다. 지원됩니다.
대소 문자 구분 태그는 대소문자를 구분하지 않습니다. 태그는 대소문자를 구분합니다.
여백 공백은 보존할 수 없습니다(공백은 무시할 수 있음). 공백이 보존됩니다(공백을 무시할 수 없음).
파싱 ​​중 Java스크립트 추가 응용 프로그램이 필요하지 않습니다. DOM 구현이 필요합니다.
코드 중첩 반드시 필요한 것은 아닙니다. 필요합니다.
오류 작은 오류는 무시할 수 있습니다. 오류는 허용되지 않습니다.
파일 이름 확장자 .html 중에서 or .HTM . XML
크기 비교적 크다. 비교적 작습니다.
인용 부호 속성 값에는 따옴표가 필요하지 않습니다. XML 속성 값에 필요합니다.
객체 지원 기본 개체 지원을 제공합니다. 객체는 규칙에 따라 표현되어야 합니다.
널 지원 null 값을 기본적으로 인식합니다. 요소에 xsi:nil을 사용해야 합니다.
서식 지정 결정 애플리케이션 데이터에 대한 직접 매핑을 제공합니다. 더 많은 노력이 필요합니다.
학습 곡선 Less XML에 비해 학습 곡선이 가파르다. 가파른 학습 곡선.
웹 사이트 https://html.spec.whatwg.org/ https://www.w3.org/TR/xml11/

기본 HTML 구문

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
     
</body>
</html>

기본 XML 구문

<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
    <child>
        <subchild>.....</subchild>
    </child>
</root>

HTML과 XML의 동일한 예

HTML 사용

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
         <p>Book</p>
    <p>Name: Anna Karenina</p>
    <p>Author: Leo Tolstoy</p>
    <p>Publisher: The Russian Messenger</p>
</body>
</html>

XML 사용

<?xml version = "1.0" encoding = "UTF-8" ?>
<book>
        <name>Anna Karenina</name> 
        <author>Leo Tolstoy</author> 
      <publisher>The Russian Messenger</publisher>
</book>

JSON 대 XML

JSON과 XML의 유사점

아래 목록은 JSON과 XML의 유사점을 보여줍니다.

  • 둘 다 개방형 형식입니다.
  • 둘 다 자기 설명입니다.
  • 둘 다 계층적 구조를 가지고 있습니다.
  • 둘 다 여러 프로그래밍 언어로 구문 분석하고 사용할 수 있습니다.

JSON과 XML의 차이점

XML과 JSON 간에도 몇 가지 차이점이 있습니다.

아래 표는 JSON과 XML을 비교한 것입니다.

JSON XML
스탠드 Java스크립트 객체 표기법 확장 가능한 마크업 언어
다음에서 확장됨 JavaScript SGML
데이터 저장고 키-값 쌍으로 저장된 데이터입니다. 트리 구조로 저장된 데이터입니다.
네임 스페이스 네임스페이스를 지원하지 않습니다. 네임스페이스를 지원합니다.
코멘트 댓글 추가는 지원되지 않습니다. 댓글을 추가할 수 있습니다.
데이터 접근성 JSON 개체로 쉽게 액세스할 수 있습니다. 데이터를 구문 분석해야 합니다.
메타 데이터 메타데이터 추가는 지원되지 않습니다. 메타데이터를 쓸 수 있습니다.
유형 JSON 유형: 문자열, 숫자, 배열, 부울. 모든 XML 데이터는 문자열.
지원 데이터 유형 지원 본문 and 번호 데이터 유형만. 다양한 데이터 유형 지원(텍스트, 숫자, 이미지 등)
어레이의 지원 XML에 비해 배열에 대한 지원이 더 많습니다. 어레이에 대한 지원이 없거나 적습니다.
객체의 지원 객체에 대한 기본 지원. 객체는 규칙에 따라 표현되어야 합니다.
AJAX 툴킷 지원 지원됩니다. 완전히 지원되지 않습니다.
값 검색 진정해. 어려운.
역직렬화/직렬화 완전 자동화. 개발자는 글을 써야 한다 Java스크립트 코드.
브라우저 지원 대부분의 브라우저에서 지원됩니다. 브라우저 간 XML 구문 분석은 까다로울 수 있습니다.
부호화 UTF-8 인코딩만 지원합니다. 다양한 인코딩을 지원합니다.
디스플레이 기능 디스플레이 기능이 없습니다. 디스플레이 기능을 제공합니다.
문서 크기 XML보다 작습니다. JSON보다 큽니다.
파일 이름 확장자 .json . XML
보안 Less 확보. JSON보다 더 안전합니다.
읽기 쉬운 비교적 쉽습니다. 상대적으로 어렵습니다.
학습 곡선 배우기 쉽습니다. 가파른 학습 곡선.
웹 사이트 https://www.json.org/json-en.html https://www.w3.org/TR/xml11/

기본 JSON 구문

{string:value, .......}

JSON과 XML의 동일한 예

JSON 사용

{"books":[
   {"name":"Anna Karenina", "author":"Leo Tolstoy"},
   {"name":"One Hundred Years of Solitude", "author":"Gabriel Garcia Marquez"},
   {"name":"The Great Gatsby", "author":"Scott Fitzgerald"},
   {"name":"Invisible Man", "author":"Ralph Ellison"}
]}

XML 사용

<?xml version = "1.0" encoding = "UTF-8" ?>
<books>
    <book>
        <name>Anna Karenina</name> 
        <author>Leo Tolstoy</author> 
    </book>
    <book>
        <name>One Hundred Years of Solitude</name> 
        <author>Gabriel Garcia Marquez</author> 
    </book>
    <book>
        <name>The Great Gatsby</name> 
        <author>Scott Fitzgerald</author> 
    </book>
    <book>
        <name>Invisible Man</name> 
        <author>Ralph Ellison</author>
    </book>
</books>

XML DTD

DTD란 무엇입니까?

DTD는 약자 D직업 T타 입 D정의. 이는 일부 법적 요소를 사용하여 XML 문서의 구조를 정의합니다. XML DTD는 선택 사항입니다.

DTD 규칙

다음 목록은 DTD 규칙을 보여줍니다.

  • DTD가 있는 경우 문서 시작 부분에 나타나야 합니다. XML 선언만 DTD 위에 나타날 수 있습니다.
  • 요소 선언은 다음으로 시작해야 합니다. ! 표.
  • 루트 요소의 DTD 이름과 요소 유형은 동일해야 합니다.

DTD의 예

내부 DTD의 예:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE student [
<!ELEMENT student (firstname,lastname,school)>  
<!ELEMENT firstname (#PCDATA)>  
<!ELEMENT lastname (#PCDATA)>  
<!ELEMENT school (#PCDATA)> 
]>
<student>  
    <firstname>Mark</firstname>  
    <lastname>Wood</lastname>  
    <school>Hills College</school>  
</student>

위의 예에서

  • !DOCTYPE 학생 DTD 선언의 시작을 나타냅니다. 그리고 학생 XML 문서의 루트 요소입니다.
  • !ELEMENT 학생 를 나타냅니다 학생 요소에는 다음이 포함되어야 합니다. 이름, 성 and 학교 집단.
  • !ELEMENT 이름 를 나타냅니다 FIRSTNAME 요소는 유형입니다. #PCDATA (P성난 CHaracter Data).
  • !ELEMENT 성 를 나타냅니다 LASTNAME 요소는 유형입니다. #PCDATA.
  • !초등학교 를 나타냅니다 학교 요소는 유형입니다. #PCDATA.

외부 DTD의 예:

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE student SYSTEM "student.dtd">  
<student>  
    <firstname>Mark</firstname>  
    <lastname>Wood</lastname>  
    <school>Hills College</school>  
</student>  

DTD 파일 내용(student.dtd)은 다음과 같습니다.

<!ELEMENT student (firstname,lastname,school)>  
<!ELEMENT firstname (#PCDATA)>  
<!ELEMENT lastname (#PCDATA)>  
<!ELEMENT school (#PCDATA)>

XML DOM

DOM이란 무엇입니까?

DOM은 D직업 OBject Model. XML 문서에 접근하고 조작하는 표준 방식을 정의합니다. DOM은 (계층적) 트리 구조를 가지고 있습니다.

DOM의 예

아래 XML 문서를 고려해 보겠습니다.

<?xml version="1.0" encoding="UTF-8" ?>  
<school>
    <student>  
        <name>
            <first_name>Alex</first_name>  
            <last_name>Clarke</last_name>  
        </name>
        <age>14</age>  
        <address>No. 35, Flower Road, Leeds</address>  
    </student> 
</school>

위 XML 파일의 트리 구조는 다음 이미지와 같습니다.

XML DOM
XML DOM 예

XML 유효성 검사

올바른 형식의 XML 문서란 무엇입니까?

잘 구성된 XML 문서는 올바른 구문을 가진 XML 문서입니다.

유효한 XML 문서란 무엇입니까?

유효한 XML 문서는 올바른 형식을 갖추고 있으며 DTD 규칙도 준수합니다.

XML 네임스페이스

왜 네임스페이스인가?

네임스페이스는 요소 이름 충돌을 방지하는 데 도움이 됩니다.

네임스페이스 선언

다음은 네임스페이스 선언에 대한 구문을 보여줍니다.

<element xmlns:name="URL">

위 선언에서,

  • The xmlns 키워드는 네임스페이스의 시작을 나타냅니다.
  • The name 네임스페이스의 접두사입니다.
  • The URL 네임스페이스 식별자입니다.

네임스페이스의 예

다음 코드 세그먼트는 네임스페이스의 예를 보여줍니다.

<?xml version="1.0" encoding="UTF-8" ?>  
<abt:about xmlns:abt="https://www.guru99.com/about-us.html">  
    <abt:founder>Krishna</abt:founder>  
    <abt:vision>Fun and Free Education for ALL</abt:vision>  
</abt:about>   

XML 편집기

여러 가지 XML 편집기를 사용할 수 있습니다. 메모장 등의 모든 텍스트 편집기를 XML 편집기로 사용할 수 있습니다.

다음 목록은 2021년에 인기 있는 XML 편집기 중 일부를 보여줍니다.

1) XML 메모장

XML 메모장은 XML용 오픈 소스 편집기입니다. 왼쪽 창에는 트리 보기와 XSL 출력이 있고 오른쪽에는 노드 텍스트가 있습니다. 하단에는 오류 디버깅 창이 있습니다.

주요 통계 :

  • 유형 – XML 편집기
  • 개발자 – Microsoft
  • 지원되는 운영 체제 – Microsoft Windows.
  • 가격 – 무료

링크 : http://microsoft.github.io/XmlNotepad/


2) 스타일러스 스튜디오

Stylus Studio는 다음 언어로 작성된 IDE입니다. C++ 확장 가능한 마크업 언어(XML)를 위한 것입니다. 사용자가 XML 문서, 전자 데이터 교환(EDI), CSV 및 관계형 데이터와 같은 데이터를 편집하고 변환할 수 있도록 합니다.

주요 통계 :

  • 유형 – XML용 통합 개발 환경(IDE)
  • 개발자 – Progress Software Corporation
  • 지원되는 운영 체제 – Microsoft Windows.
  • 가격 – 유료(최신 가격은 아래 웹사이트를 참조하세요), 무료 평가판이 제공됩니다.

링크 : http://www.stylusstudio.com/


3) Altova XMLSpy

XMLSpy는 주로 JSON 및 XML 편집기로 판매됩니다. 내장된 스키마 디자이너와 편집기가 있습니다. Visual Studio 및 Eclipse 완성.

주요 통계 :

  • 유형 – XML 편집기
  • 개발자 – Altova
  • 지원되는 운영 체제 – Microsoft Windows.
  • 가격 – 유료(최신 가격은 아래 웹사이트를 참조하세요), 무료 평가판이 제공됩니다.

링크 :https://www.altova.com/xmlspy-xml-editor


4) 산소 XML 편집기

Oxygen XML은 다음에서 개발된 크로스 플랫폼 편집기입니다. JavaDTD, W3C XML 스키마, RELAX NG, Schematron, NRL 및 NVDL 스키마와 같은 스키마를 검증하는 데 도움이 됩니다.

주요 통계 :

  • 유형 – XML 편집기
  • 개발자 – SyncRO소프트(주)
  • 지원되는 운영 체제 – Windows, Linux 및 Mac OS X
  • 가격 – 유료 (최신 가격은 아래 홈페이지를 참고해주세요)

링크 :https://www.oxygenxml.com/


5) 확장

Xmplify XML Editor는 DTD 및 XML 스키마 기반 자동, 자동 문서 유효성 검사 등을 통해 완전한 XML 인식 편집 환경을 제공합니다.

주요 통계 :

  • 유형 – XML 편집기
  • 개발자 – MOSO 주식회사
  • 지원되는 운영 체제 – Mac OS.
  • 가격 – 유료 (최신 가격은 아래 홈페이지를 참고해주세요)

링크 : http://xmplifyapp.com/

XML 파서

XML 파서는 XML 문서 작업을 위한 인터페이스를 제공하는 소프트웨어 라이브러리입니다. XML 문서의 형식이 올바른지 확인합니다. 일부 파서는 XML 문서의 유효성을 검사할 수도 있습니다. 최신 브라우저에는 XML 파서가 함께 제공됩니다.

SAX

SAX 용 스탠드 S단순한 API XML. 이것은 a응용 p그램 i인터페이스(API) XML 문서를 구문 분석하는 데 사용됩니다. 이는 이벤트 핸들러와 유사하게 동작합니다. Java.

DOM과 달리 SAX는 이벤트 기반 XML 파서의 예입니다.

다음은 SAX와 DOM 간의 몇 가지 중요한 차이점입니다.

SAX DOM
스탠드 XML을 위한 간단한 API 문서 객체 모델
파서 유형 이벤트 기반 객체 기반
XML 읽기 및 쓰기 읽기 전용 읽기와 쓰기 모두
노드 삽입/업데이트/삭제 노드를 삽입/업데이트/삭제할 수 없습니다. 노드를 삽입/업데이트/삭제할 수 있습니다.
메모리 효율성 좋은 메모리 효율성 개인마다 다름
속도 DOM 파서보다 느림 SAX 파서보다 빠릅니다.
적합한 사용자 작은 크기의 파일 대용량 파일

XML 데이터 바인딩

XML 데이터 바인딩은 XML 문서의 데이터를 컴퓨터 메모리의 비즈니스 개체로 표현하는 것입니다.

XML 데이터 바인딩에는 세 가지 접근 방식이 있습니다.

  • XML 스키마 기반 데이터 바인딩: 해당 XML 클래스는 스키마를 기반으로 생성됩니다.
  • 클래스 기반 데이터 바인딩: 해당 XML 스키마는 클래스를 기반으로 생성됩니다.
  • 매핑 기반 데이터 바인딩: 이는 기존 XML 스키마가 클래스 집합에 매핑되는 방식(또는 그 반대로)을 설명합니다.

XML 데이터 바인딩 프레임워크도 있습니다.

예 :

프레임워크를 사용하면 XML 데이터 바인딩이 쉽습니다. 데이터 바인딩 프레임워크는 대량의 코드를 생성합니다. DTD 또는 XML 스키마를 입력해야 합니다.

XML 스키마

XML 개요 (로도 알려져 XML 스키마 정의 or XSD) XML 문서 구조를 설명하는 데 사용됩니다. 이는 DTD의 대안입니다.

스키마가 중요한 이유는 무엇입니까?

DTD는 확장성과 유연성이 충분하지 않기 때문에 스키마만큼 강력하지 않습니다. 따라서 일부 상황에는 적합하지 않을 수 있습니다. 그러한 상황에서는 스키마가 중요합니다. XML 스키마를 사용하는 주요 목적은 XML 문서의 요소와 속성을 정의하는 것입니다.

XML 스키마는 DTD와 어떻게 다릅니까?

다음 비교는 XSD(XML 스키마)가 DTD와 어떻게 다른지 보여줍니다.

DTD XSD
스탠드 문서 유형 정의 XML 스키마 정의
확장 성 확장 불가능 확장
XML 구조 제어 Less 제어 더 많은 제어
지원 데이터 유형 지원되지 않음 지원
네임스페이스 지원 지원되지 않음 지원

다음 코드 세그먼트는 XML 스키마의 예를 보여줍니다.

xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
    <xs:element name = "employee">
        <xs:complexType>
            <xs:sequence>
                <xs:element name = "firstname" type = "xs:string" />
                <xs:element name = "lastname" type = "xs:string" />
                <xs:element name = "phone" type = "xs:int" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

XML의 장점

XML의 장점/이점은 다음과 같습니다.

  • 데이터 전송 및 공유가 쉬워졌습니다.
  • XML은 다양한 플랫폼 간의 데이터 교환을 향상시킵니다.
  • 텍스트 문서에 배치된 문자 및/또는 기호의 집합인 마크업 언어입니다.
  • XML은 XML 문서가 표시된 후 어떻게 보여야 하는지를 나타냅니다.
  • 플랫폼 변경 프로세스를 단순화합니다.
  • 데이터 가용성이 향상됩니다.
  • 다국어 문서와 유니코드를 지원합니다.
  • 비교적 쉽게 배우고 코딩할 수 있도록 제공합니다.
  • 텍스트 문서에 배치된 문자 및/또는 기호의 집합인 마크업 언어입니다.
  • DTD 및 스키마를 사용하여 유효성 검사를 수행합니다.
  • 시스템과 애플리케이션 전반에 걸쳐 문서를 전송할 수 있도록 합니다. XML을 사용하면 서로 다른 플랫폼 간에 데이터를 빠르게 교환할 수 있습니다.
  • XML은 데이터를 HTML에서 분리합니다.

XML의 단점

XML 사용의 단점/단점은 다음과 같습니다.

  • XML에는 처리 응용 프로그램이 필요합니다.
  • XML 구문은 때로는 혼란스러울 수 있는 다른 대체 '텍스트 기반' 데이터 전송 형식과 비슷합니다.
  • 내장 데이터 유형 지원 없음
  • XML 구문은 중복됩니다.
  • 사용자가 자신의 태그를 생성하는 것을 허용하지 않습니다.

요약

  • XML은 eXtensible Markup Language를 의미합니다. XML은 마크업을 사용하고 확장할 수 있는 언어(프로그래밍 언어가 아님)입니다.
  • 주요 목표는 데이터를 표시하는 것이 아니라 데이터를 전송하는 것입니다.
  • XML 1.1이 최신 버전입니다. 그러나 XML 1.0이 가장 많이 사용되는 버전입니다.
  • 태그는 선언을 제외하고 쌍으로 작동합니다.
  • 여는 태그 + 내용 + 닫는 태그 = 요소
  • 엔터티는 특수 문자를 나타내는 방법입니다.
  • DTD는 문서 유형 정의를 나타냅니다. 이는 일부 법적 요소를 사용하여 XML 문서의 구조를 정의합니다. XML DTD는 선택 사항입니다.
  • DOM은 문서 개체 모델을 나타냅니다. 이는 XML 문서에 액세스하고 조작하는 표준 방식을 정의합니다.
  • 올바른 형식의 XML 문서는 올바른 구문을 가진 XML 문서입니다.
  • 유효한 XML 문서는 올바른 형식을 갖추고 있으며 DTD 규칙도 준수합니다.
  • 네임스페이스는 요소 이름 충돌을 방지하는 데 도움이 됩니다.