본문 바로가기
전공공부/XML

XML 문서의 종류

by 으노으뇨 2022. 4. 24.
728x90
반응형
SMALL

1. 잘 짜여진 문서 (Well-formed XML document)

잘 짜여진 문서 XML 1.0 권고안에 언급되어 있는 문법 (spec)을 잘 지켜서 작성된 문서

예> 마지막에서 2번째 줄 </book123>태그때문에 유효하지 않은 문서가 되었다.

<?xml version="1.0" encoding="UTF-8"?>
<booklist>
	<book kind='computer'>
		<title>
			Java XML
		</title>
		<author>
			Mr.hong
		</author>
		<publisher>preshell</publisher>
		<price>23,000</price>
	</book123>
</booklist>

이클립스로 XML을 하나 만들고 오류가 있는 라인에 마우스를 올려놓아 보았다.

The end-tag for element type "book" must end with a '>' delimiter.

설명을 볼수 있다.

해당 오류를 수정해보자

오류가 귀신같이 사라졌다.

2. 유효한 문서 (Valid XML document)

유효한 문서 잘 짜여진 문서이면서, XML로 개발된 특정 마크업 언어에 맞게 작성된 문서
DTD나 schema에서 작성한 규칙을 따르는 문서

애라와 같은 문서규정을 만들고 이에 맞추어 xml문서를 만든다고 가정해보자.

ex2-2.dtd 문서를 작성해보았다.

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

<!ELEMENT booklist (book)*>
<!ELEMENT book (title, author, publisher, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT price (#PCDATA)>

그리고 ex2-2.dtd 와 같은 문서규정을 만들고 이에 맞추어 ex2-2.xml 문서를 만든다고 가정해보겠습니다.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE booklist SYSTEM "ex2-2.dtd">
<booklist>
	<book>
		<title>Java XML</title>
		<author>Mr.hong</author>
		<publisher>preshell</publisher>
		<price>23,000</price>
	</book>
</booklist>

최초작성했을때는 문제가없다고합니다.

하지만 dtd의 순서대로 입력하지않고 제멋대로 한번 수정해보겠습니다.

The content of element type "book" must match "(title,author,publisher,price)".

author와 publisher의 순서가 바뀐경우 에러가 발생했다. ex2-2.xml은 well-formed XML문서이나, valid XML문서가 아니다.

728x90
반응형
LIST

'전공공부 > XML' 카테고리의 다른 글

DTD 개요, 문법  (0) 2022.05.02
XML 엘리먼트와 속성, 주석, 프로세싱 지시자  (0) 2022.04.27
표기법과 XML문서의 구조  (0) 2022.04.24
XML 이란?  (0) 2022.04.24

댓글