CodeGym /Java Course /모듈 2: 자바 코어 /XML 데이터 형식

XML 데이터 형식

모듈 2: 자바 코어
레벨 16 , 레슨 2
사용 가능

텍스트 형식이 필요한 이유는 무엇입니까?

텍스트 형식은 프로그램과 사람이 모두 만들고 처리할 수 있기 때문에 정보를 저장하는 데 편리합니다.

텍스트 파일(텍스트 형식의 파일)은 다양한 텍스트 편집기에서 열고 읽고 편집할 수 있습니다.

많은 프로그램은 형식에 숫자와 이진(예/아니오) 값이 포함된 경우에도 텍스트 기반 구성 파일을 사용합니다.

이로 인해 텍스트에서 내부 형식으로 또는 그 반대로 변환해야 하기 때문에 프로그램이 다소 복잡해지지만 프로그램 자체에서 구성 도구를 사용하지 않고 수동으로 구성을 편집할 수 있습니다.

XML은 현재 어디에 사용됩니까?

XML은 다양한 IT 분야에서 사용됩니다. 구성 파일(프로그램 설정 포함) 또는 프로그램 간에 데이터를 전송하는 데 사용되는 파일일 수 있습니다. Java에서 가장 일반적인 사용 사례 중 하나는 빌드 자동화 도구인 Maven을 구성하는 것입니다.

XML 문서의 구조

XML 문서의 물리적 및 논리적 구조는 별도로 유지됩니다. 물리적 구조의 관점에서 문서는 다른 엔터티를 참조할 수 있는 엔터티로 구성됩니다.

유일한 루트 요소는 문서 엔터티입니다. 엔터티는 문서에서 가장 작은 부분입니다. 모든 엔터티에는 이름이 있고 문자가 포함되어 있습니다.

차례로 문자는 문자 데이터 또는 마크업의 두 범주 중 하나에 속합니다.

마크업에는 다음이 포함됩니다.

  • 요소 경계를 나타내는 태그;
  • 속성을 포함한 선언 및 처리 지침
  • 엔티티 참조;
  • 코멘트;
  • CDATA 섹션을 래핑하는 문자 시퀀스.

논리적으로 문서는 요소, 주석, 선언, 엔터티 참조 및 처리 지침으로 구성됩니다. 마크업은 문서에서 이 모든 구조를 생성하는 데 사용됩니다.

문서의 모든 구성 부분은 프롤로그와 루트 요소로 나뉩니다. 루트 요소는 XML 문서의 필수적이고 필수적인 부분인 반면 프롤로그는 전혀 존재하지 않을 수 있습니다. 루트 요소는 중첩 요소, 문자 데이터 및 주석으로 구성될 수 있습니다. 문서의 요소는 올바르게 중첩되어야 합니다. 다른 요소 내에서 시작하는 모든 요소는 해당 요소 내에서도 끝나야 합니다.

마크업 기호

마크업은 항상 < 로 시작해서 > 로 끝납니다 .

< 및 > (꺾쇠 괄호) 및 & (앰퍼샌드) 기호 특별한 역할을 합니다. 꺾쇠 괄호는 요소, 처리 명령 및 기타 시퀀스의 경계를 나타냅니다. 그리고 앰퍼샌드는 텍스트를 엔터티로 바꾸는 데 도움이 됩니다.

XML 선언

XML 선언은 문서 작성에 사용되는 언어 버전을 지정합니다. XML 사양은 문서 내용의 적절한 해석이 언어 버전에 따라 다르기 때문에 XML 선언으로 문서를 시작한다고 말합니다.

언어의 첫 번째 버전(1.0)에서는 이 선언이 선택 사항이었지만 이후 버전에서는 필수입니다. 누락된 선언은 버전 1.0을 의미하는 것으로 간주됩니다. 선언에는 문서 인코딩에 대한 정보도 포함될 수 있습니다.

예:

<?XML 버전="1.1" 인코딩="UTF-8" ?>

태그

태그는 요소의 이름을 포함하는 마크업 구성입니다. 시작 태그와 종료 태그가 있습니다. 시작 요소와 끝 요소를 결합하는 빈 요소 태그도 있습니다.

예:

  • 시작 태그: <tag1>

  • 종료 태그: </tag1>

  • 빈 요소 태그: <empty_tag1 />

속성

XML 요소의 또 다른 부분은 특성입니다. 요소는 여러 고유 특성을 가질 수 있습니다. 속성을 사용하면 요소에 대한 자세한 정보를 지정할 수 있습니다. 더 정확하게는 속성은 요소의 속성을 정의합니다.

속성은 항상 이름-값 쌍입니다.

이름 = "값"

태그의 속성 예:

<tag1 이름 = "값">요소</tag1>

속성 값은 큰따옴표( " ) 또는 작은따옴표( ' )로 묶어야 합니다. 속성은 시작 태그와 빈 요소 태그에서만 사용됩니다.

5개의 특수 문자 이스케이프(<, >, ', ”, &)

분명히 < , >& 기호는 문자 데이터 및 속성 값에서 그대로 사용할 수 없습니다. 이를 나타내려면 특별한 이스케이프 시퀀스가 ​​필요합니다. 속성 값 안에 아포스트로피와 따옴표를 쓸 때도 특수 시퀀스가 ​​사용됩니다.

상징 대사
< <
> >
& &
' '
" "

또한 \ 문자를 쓰려면 \\ 를 사용해야 합니다 .

CDATA 섹션

CDATA 섹션은 텍스트의 논리적 단위가 아닙니다. 이러한 유형의 섹션은 XML 구문을 사용하여 문서에 문자 데이터를 배치할 수 있는 경우에 발생할 수 있습니다.

섹션은 <![CDATA[ 로 시작 하고 ]]> 로 끝납니다 . 문자 데이터는 이러한 마크업 비트 사이에 배치되며 < , >& 기호는 직접 형식으로 사용할 수 있습니다.

코멘트

주석은 문자 데이터로 간주되지 않습니다. 주석은 <!-- 로 시작하여 --> 로 끝납니다 . 문자 시퀀스 --는 주석 내에서 사용할 수 없습니다. 또한 주석 내부에서 앰퍼샌드 문자는 마크업을 나타내지 않습니다.

예:

<!-- 댓글입니다 -->

이름

XML에서 모든 이름은 유니코드 문자 테이블의 문자, 아라비아 숫자, 마침표, 콜론, 하이픈 및 밑줄만 포함할 수 있습니다. 이름은 문자, 콜론 또는 밑줄로 시작할 수 있습니다. 이름은 XML 문자열로 시작할 수 없습니다 .

Java 클래스와 해당 클래스의 개체를 살펴보겠습니다. 그런 다음 개체를 XML 형식으로 직렬화하려고 합니다. 수업 코드:


public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

객체 생성:


Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

다음은 4개의 필드를 포함하는 Java 객체의 유효한 XML 표현의 예이며 그 중 하나는 컬렉션입니다(위의 Java 코드 참조).

<Book>
  <title>내가 가장 좋아하는 책</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Chapter 1</chapters>
    <chapters>Chapter 2</chapters>
    <chapters>3장</chapters>
    <chapters>4장</chapters>
    <chapters>5장</chapters>
    <chapters>6장</chapters>
 </chapters>
</Book>

XML 스키마

XML 스키마는 XML 문서의 구조에 대한 설명입니다. 해당 사양(XML 스키마 정의 또는 XSD)은 W3C 권장 사항입니다.

XSD는 XML 문서가 따라야 하는 규칙을 표현하도록 설계되었습니다. 그러나 우리에게 가장 흥미로운 점은 XSD가 XML 문서를 처리하는 소프트웨어를 개발할 때 사용하도록 설계되었다는 것입니다. 프로그래밍 방식으로 XML 문서의 정확성을 확인할 수 있습니다.

XML 스키마를 포함하는 파일의 확장자는 .xsd입니다. XML 스키마를 설계하는 것은 이 단원의 범위를 벗어나므로 지금은 가능성이 있다는 점만 알아두십시오.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION