'XML'에 해당되는 글 10건

  1. 2018.06.19 처리 명령 (PI)
  2. 2018.06.19 노테이션 (표기법)
  3. 2018.06.19 엔티티
  4. 2018.06.19 애트리뷰트
  5. 2018.06.18 엘리먼트
  6. 2018.06.17 DTD 란?
  7. 2018.06.16 XML의 응용들
  8. 2018.06.15 HTML과 XML의 차이점
  9. 2018.06.15 Markup의 설명과 XML의 탄생 배경(역사)
  10. 2018.06.13 XML 개요

처리 명령 (PI)

XML 2018. 6. 19. 20:57

 - 처리 명령 (Processing Instructions : PI) 이란?

 

DTD 부분과 XML 문서 내용 부분에서 모두 사용할 수 있고,

SGML 구문에서 물려받은 것으로 XML 문서에서 특별한 처리를 요구하는 부분을 다룰 때 사용함.

 

즉 ,문서를 프로세싱 할 때 어떻게 해야 하는지 응용프로그램에 지시하는 것이며,

한 파서 이상에 의해서 처리될 XML 문서에 유용하다.

 

 

 

 - 처리 명령 선언 방법

<? 응용프로그램이름  응용프로그램명령어 ?>

 

 

 

 - 처리 명령 목표(Processing Instruction target)란?

문서를 프로세싱 할 응용 프로그램을 지정하는 코드.

 

문서 작성자가 마음대로 정할 수 있지만 응용 프로그램이 인식할 수 있어야 하기 때문에

문서 작성자와 응용 프로그램 개발자 사이에 미리 약속이 되어있어야 한다.

 

특별한 형식은 없지만 보통 엘리먼트의 속성 형식처럼 사용한다.

 

 

 

 

참고 문헌 및 링크

 ADD-ON XML

 클릭하세요 XML

 자바 개발자를 위한 XML

 

 

'XML' 카테고리의 다른 글

노테이션 (표기법)  (0) 2018.06.19
엔티티  (0) 2018.06.19
애트리뷰트  (0) 2018.06.19
엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
Posted by Resian
,

노테이션 (표기법)

XML 2018. 6. 19. 20:40

 - 노테이션 (Notation : 표기법) 이란?

 

문서에 외부의 XML이 아닌 소스로부터 오는 데이터가 필요하다는 선언이며,
파서가 아닌 다른 응용 프로그램에게 처리를 넘겨주는데 필요함.

 

데이터가 어떤 형식으로 작성되어 있는 가를 표시,

주로 XML을 처리하는 프로그램에게 외부 파일(그림, 동영상, 음악 등)의 형식을 알려주기 위해 사용된다.

 

노테이션은 구문 분석되지 않은 엔터티의 형식, 노테이션 특성이 포함된 요소의 형식

또는 처리 명령이 실행되는 응용 프로그램을 이름으로 식별한다.

 

 

 

 - 노테이션 선언 방법

<!NOTATION 표기법이름 SYSTEM "응용프로그램URL">

 - 표기법 이름의 쓰임새
 1. 처리 명령 목표
 2. 바이너리티 엔티티에서 NDATA 다음에 나오는 이름으로 사용
 3. NOTATION 타입을 가지는 속성의 속성값

 

 

 

 

참고 문헌 및 링크

 ADD-ON XML

 

노테이션 정의 참고 링크

http://blog.naver.com/PostView.nhn?blogId=javaking75&logNo=140161755193

 

 

'XML' 카테고리의 다른 글

처리 명령 (PI)  (0) 2018.06.19
엔티티  (0) 2018.06.19
애트리뷰트  (0) 2018.06.19
엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
Posted by Resian
,

엔티티

XML 2018. 6. 19. 17:35

 - 엔티티(Entity) 란?
특수 문자 또는 자주 사용되는 정보들을 선언해 놓고 XML 문서나 DTD에서 참조하여 사용하는 것을 말함.

 

엔티티를 참조하게 되면 파싱을 할 때 그 엔티티 참조는 선언해 놓은 값으로써 대체되어 지며,
XML에서 엔티티는 문서의 단위이고 한 글자에서부터 문서 전체에 이르기까지
혹은 또 다른 문서에 대한 참조까지를 의미한다.

 

 - 엔티티의 분류

 1.사용 용도에 따른 엔티티
   - 일반 엔티티
   - 파라미터 엔티티 : DTD안에서만 사용하는 엔티티

      % 기호를 사용함으로써 일반 엔티티와 구별할 수 있다.
 
 2. 엔티티 값이 텍스트인지 이진 데이터인지에 따른 엔티티
   - 텍스트 엔티티 : 텍스트로 이루어져 있는 것.
   - 바이너리(Binary) 엔티티 : 텍스트가 아닌 그림 파일 같은 바이너리 데이터로 된 것.

 

 3. 선언된 장소에 따른 엔티티
   - 내부 엔티티 : 일반적으로 DTD 내에 정의함
   - 외부 엔티티 : 포함시킬 내용이 외부에 존재하는 것을 참조한 형태 

 

 


 - 엔티티 참조란?
파서에게 포함시키기를 원하는 문서의 위치를 알려주고 파서가 가져오는 것.

 

 


 - 내부 엔티티 선언 방법과 참조하는 방법.
 HTML 문서에서 '<'를 표시할때 &lt; 를 사용하는데 이것이 바로 엔티티를 참조하는 것이다.
예를 들어 수학 기호로 "A는 B보다 작다"라는 것을 표현하기 원한다면 "A<B"와 같이 쓰는 것이라 볼 수 있다.

 

 

<!ENTITY 엔티티이름 "값">   = 엔티티를 선언하는 방법

&엔티티이름;  = 엔티티를 참조하는 방법

 

예)
<!ENTITY myName "아무개"> 이라 선언했을 때
&myName;  으로 참조할 수 있다. 

 


! 엔티티 이름은 반드시 문자나 밑줄로써 시작하고 문자, 숫자, 점 (.), 하이픈 (-)을 포함할 수 있다. !

 

 

 

 - XML의 내장 엔티티들

마크업에 사용되는 문자를 표시하기 위해 내장됨.

 

엔티티 

표현 문자  

 &amp

 &

 &lt

 <

 &gt

 >

 &apos

 '

 &quote

 "

 

 

 

 - 외부 엔티티 선언 방법

위에서 언급된 myName이라는 것은 내부 엔티티이고,

외부 엔티티는 엔티티의 값이 엔티티를 선언하는 곳에서 존재하는 것이 아닌

외부의 파일로 존재하는 엔티티를 의미한다.

 

외부 엔티티를 사용하면 문서나 DTD 외부에 있는 자료를 불러들여 사용할 수 있다.

 

<!ENTITY myName SYSTEM "myname.txt"> 

 

엔티티 이름까지는 내부 엔티티와 동일하고 이 후 SYSTEM 키워드를 사용한다.

즉, 이름 다음에 나타나는 것은 엔티티가 존재하는 곳의 위치를 나타내는 URL이다.

 

필요에 의해 PUBLIC 식별자도 사용할 수 있다.

 

 

 

 - 바이너리 엔티티 선언 방법

위의 예시의 엔티티들은 텍스트 엔티티이다.

 

바이너리 엔티티는 외부 엔티티이며,

XML이나 DTD의 외부에 다른 파일로 존재하는 그림 파일 같은 바이너리 데이터를 말하는 것이다.

 

<!ENTITY 엔티티이름 SYSTEM "엔티티URL" NDATA 표기법이름> 

 

만약 그림 파일이라면 엔티티URL의 자리에 그림 파일의 경로명이나 URL을 쓰면 된다.

 

 

 

 - 파라미터 엔티티 선언 방법

DTD 안에서만 사용하는 엔티티로 외부 DTD에서만 정의할 수 있다.

DTD에서 여러 엘리먼트에 공통적으로 존재하는 속성을 한번만 선언하고 사용한다던가

다른 외부 DTD를 포함시키고 싶을 때 사용한다.

 

<!ENTITY % 엔티티이름 "값"> 

 

주의점 :  % 기호 다음에 반드시 한 칸 띄우고 엔티티 이름을 써야한다.

 

 

 - 파라미터 엔티티를 참조할 때  =  %엔티티이름;

 

 

예)

<!ENTITY name (#PCDATA)>

<!ENTITY % e_name "name">

이라 선언 되었을 때

 

<!ENTITY person ( %e_name;, phone, address )>

<!ELEMENT company ( %e_name; )>

로 참조할 수 있다. 

 

 

 

 - 파라미터 엔티티로 외부 엔티티 사용 선언 방법

DTD 에서 다른 외부 DTD를 포함시켜 사용하고자 할 때 사용한다.

 

<!ENTITY % small_dtd SYSTEM "small.dtd">

%small_dtd; 

 

small.dtd는 예를 들어 가정한 외부 DTD이다.

 

 

 

 - 파라미터 엔티티의 장점과 단점.

 개발자가 옛 DTD를 쉽게 재사용 할 수 있고, 기존 DTD를 쉽게 확장할 수 있다.

 

하지만 파라미터 엔티티는 본래 DTD를 조직적으로 구성하기 위해 만들어진 것임으로

잘못 사용하면 파라미터 엔티티를 사용한 DTD를 다른 사람이 읽어볼 때 읽기 어려워 진다.

 

 

 

참고 문헌 및 링크

 ADD-ON XML

 클릭하세요 XML

 자바 개발자를 위한 XML

 

'XML' 카테고리의 다른 글

처리 명령 (PI)  (0) 2018.06.19
노테이션 (표기법)  (0) 2018.06.19
애트리뷰트  (0) 2018.06.19
엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
Posted by Resian
,

애트리뷰트

XML 2018. 6. 19. 16:23

 - 애트리뷰트 (Attributes : 속성)란?
엘리먼트의 특성을 표현하기 위해서 쓰여지는 정보를 의미함.


즉, XML 문서의 속성을 선언하기 위해 사용되는 원소이며, 

엘리먼트의 부가적인 정보를 제공하는 것으로 특히 사람에게 보여주기보다는
프로그램 내부에서 처리되기 위한 정보들을 저장하는데 매우 유용하다.

 


 - 형태
<애트리뷰트 이름 = "애트리뷰트 값">


 

<!ATTLIST 엘리먼트 이름
               속성이름 타입 기본 값
                (속성이름 타입 기본 값 ...)> 

 


ATTLIST 다음에 소석을 정의하기 원하는 엘리먼트의 이름, 속성 이름, 속성 타입, 기본값의 순서로 정의됨.
여러개의 속성을 정의할 경우 새로운 속성의 이름, 속성 타입, 기본값을 계속 추가하면 됨.

 

속성의 이름에 대한 규칙은 엘리먼트 이름에 대한 규칙과 동일하다.

 

 

 - 속성의 타입

 

타입 

설명 

 CDATA

 문자 데이터 마크업은 이 속성값 안에서 쓸 수 있다.

 ID

 속성값이 엘리먼트를 식별하는 식별자로 사용된다.

 한 문서에서 ID 타입의 속성은 각각 유일해야 한다.

 IDREF

 위의 ID 값에 대한 참조를 하는 속성값이다.

 ENTITIY, ENTITIES

 이 타입의 속성값은 DTD안에서 선언된 바이너리 외부 엔티티에 대한 이름이다.

 ENTITIES 타입은 공백으로 분리된 엔티티 이름들이다.

 NOTATION

 이 타입의 속성값은 DTD 안에서 선언된 표기법 이름이다.

 열거형

 속성값이 괄호 안에 or( | ) 기호로 나열된 값들 중 하나여야 한다.

 예를 들면 (left | center | right)와 같다.

 NOTATION(열거형)

 속성값이 나열된 표기법 이름들 중 하나여야 한다.

 나열된 표기법들은 NOTATION 선언이 있어야 한다.

 NOTATION (audio | video)

 

 보통 가장 많이 사용하는 속성의 타입은 CDATA와 열거형이다.

 

 

 - CDATA?

전혀 파싱되지 않은 문자 데이터

 

 

 - 속성의 기본값

 

값 

 설명

 "기본값"

 속성을 위한 기본값이다.

 만약 문서의 엘리먼트에서 이 속성을 지정하지 않으면

 그 속성값은 이 기본값으로 인식된다.

 #REQUIRED

 엘리먼트에서 속성을 쓸 때 반드시 값을 지정해야 한다.

 그렇지 않으면 파싱할 때 에러가 난다.

 #IMPLIED

 속성에 값이 지정되어 있지 않으면 무시한다.

 이 속성에 대한 처리는 파서가 아닌 응용 프로그램이 하게 된다.

 #FIXED "값"

 속성에 대한 값으로 "값"만을 지정해야 한다.

 다른 값은 허용되지 않는다.

 

 속성 리스트에 대한 선언은 엘리먼트 이름이 나오기 때문에 기술적으로는 그럴 필요가 없다 하더라도

참조하는 엘리먼트 바로 밑에 있어야 한다.

 

 

 - 엘리먼트와 애트리뷰트에서 use 속성들을 사용한 예시

속성을 선언할 때 속성 값을 항상 기술해야 하는지 혹은 생략할 수 있는지 여부는

use 속성을 이용해서 기술할 수 있다.

 

 

 - use 속성 값

"optional"

"required"  =  속성의 디폴트 값을 지정하기 위해 사용

"fixed"       = 고정된 속성 값을 기술하기 위해 사용

 

 

엘리먼트(원소) 

애트리뷰트(속성) 

  의미 

(minOccurs, maxOccurs)fixed, default

use, fixed, default

 (1,1)-,-

 required, -, - 

 원소와 속성 모두 하나씩 존재하여야 한다.

 (1,1)37,-

 required, 37, -

 원소와 속성이 모두 하나씩 존재하고,

 값은 37이어야 한다.

 (2, unbounded)37,-

 N/A

 원소는 2번 이상 존재하여야 하고,

 값은 37이어야 한다.

 (0,1)-,-

 optional, -, -

 원소와 속성이 한 번 올 수 있다.

 (0,1)37,-

 optional, 37 ,-

 원소와 속성이 한 번 올 수 있고,

 존재한다면 항상 37 값을 가져야 한다.

 (0,1)-,37

 optional, - ,37

 원소와 속성이 한 번 올 수 있고,

 존재하지 않는다면 디폴트로 37 값을 갖는다.

 (0,2)-,37

 N/A

 원소는 0~2번까지 올 수 있으며,

 존재하지 않는 경우 디폴트로 37 값을 갖는다.

 (0,0)-,-

 prohibited, -, -

 원소와 속성이 존재해서는 안된다.

 

 

 

참고 문헌 및 링크

 ADD-ON XML

 클릭하세요 XML

 자바 개발자를 위한 XML

 

'XML' 카테고리의 다른 글

노테이션 (표기법)  (0) 2018.06.19
엔티티  (0) 2018.06.19
엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
XML의 응용들  (0) 2018.06.16
Posted by Resian
,

엘리먼트

XML 2018. 6. 18. 18:11

 - 엘리먼트(Element)란?
다른 이름으로 원소 선언이라고도 한다.

 

XML 문서의 가장 기초를 구성하는 틀.
[정보와 구조적 정의를 포함한다.]

엘리먼트들을 사용하여 문서의 논리적인 구조를 정의하는 것으로 가장 중요하다.

 

 책을 예로 들자면 한 권의 책은 장들로 구성되고 장들은 절로, 절 안에는 마찬가지로 논리적인 구조를 가지게 되는데
엘리먼트는 XML 문서 안에서의 논리적인 계층을 형성하게 만들어 주는 도구이다.

 

<책>  
  <장>  
    <절> 
      ......
    </절>
  </장>
</책> 

 

각 엘리먼트들은 부모 엘리먼트의 밑에 각각 부모 - 자식의 관계를 형성하고 있다.
<책> 이라는 루트 엘리먼트는 그 아래 <장> 이라는 엘리먼트가 있고
여기서 <책> 엘리먼트를 부모 엘리먼트, <장> 엘리먼트를 자식 엘리먼트가 되는 것이다.


XML에는 문서 객체가 있어서, 그것으로부터 마크업 트리 구조가 시작할 수 있는 뿌리를 제공하기도 한다.
만일 Book이 문서의 루트 엘리먼트라면 이것이 문서 객체의 자식이 된다.

 

 


 - 엘리먼트 선언 방법
<!ELEMENT  엘리먼트 이름  내용모델>

<!ELEMENT 다음에 엘리먼트의 이름을 쓰고 다음에는 내용 모델이 나온다.

 

항상 <!ELEment 로 시작하며 대소문자를 구별한다.

 

 

 (옳은 예시)

<ADDRESS> 110 main street </ADDRESS>

<address> 110 main street </address>

 

 (틀린 예시)

<ADDRESS> 110 main street </address>

 

 

태그 

의미 

 <fist_tag> 

 시작 태그로 적합함. 

 </first_tag> 

 끝 태그로 적합함.

 <fist tag>

 엘리먼트 이름은 공백이 있어서는 안됨.

 <1st_tag>

 엘리먼트 이름의 시작은 숫자여서는 안됨.

 </ fist_tag>

 끝 태그를 의미하는 / 다음에 공백은 허용하지 않음.

 


 - 내용 모델이란?
한 엘리먼트의 자식으로써 나타날 수 있는 엘리먼트 및 텍스트 데이터에 대한 묘사
즉, 한 엘리먼트의 밑에 어떤 엘리먼트나 텍스트가 올 수 있는지 기술하는 것.

 

 

 - 내용 모델의 종류
>> 엘리먼트들의 목록
>> #PCDATA
>> ANY 키워드
>> EMPTY 키워드
>> 혼합내용(mixed-content)

 

 

 - 엘리먼트들의 목록이란?
엘리먼트의 자식으로서 다른 엘리먼트들을 선언하는 것.
괄호 안에 자식 엘리먼트들의 목록을 쓰면 된다.

 

 

 - 자식 노드만을 가질 때 - children
children은 별도의 키워드를 사용하는 것이 아니라,

엘리먼트들이 나타날 위치와 나타날 횟수를 그 규칙에 명시한 것으로
목록에 있는 모든 엘리먼트는 자체적인 선언을 가져야 한다.


 

기호 

 설명

예제 

 기호없음

 반드시 한번 나타남

 tag

 ,

 순서대로 나타남

 tag1, tag2

 ?

 한번 나타날 수도 있고 안 나타날 수도 있음

 tag?

 |

 선택(하나만 사용할 수 있다)

 tag1 | tag2

 *

 0번 이상 나타남

 tag*

 +

 1번 이상 나타남

 tag+

 ()

 그룹

 (tag1 | tag2), tag3

 

 

 

선언 예시)

 1. <!ELEMENT Homepage (......)>

 Homepage 라는 이름의 루트 엘리먼트를 선언.

괄호 안에는 내용 모델을 집어넣어 루트 엘리먼트의 자식으로서 어떤 엘리먼트들이 있는지 선언한다.

 

 2. <!EMEMENT Homepage (Title, Greeting?, News, Menu)>

 

제목을 위한 엘리먼트 Title

방문객을 위한 인사말 엘리먼트 Greeting [인사말은 꼭 필요한 것이 아니라 생각하여 선택적인 것(기호 ?로 선언)]

홈페이지의 새로운 소식을 알리는 News 엘리먼트

홈페이지 메뉴 목록을 위한 Menu 엘리먼트

 

라고 정의했을 때 3번부터 5번처럼 선언하게 된다.

 

 3. <!EMEMENT News (Date, Title, Text)>

 날짜, 제목, 글을 나타내는 Date, Title, Text 엘리먼트가 차례대로 나타난다고 선언함.

 

 4. <!EMEMENT Menu (Item*)>

각각의 메뉴 항목을 나타내는 Item 엘리먼트가 있는데, 메뉴 항목이 하나도 없는 경우 무한대까지 고려한다면 4번과 같이 선언한다.

 

 5. <!EMEMENT Menu (Item+)>

만약 메뉴 항목이 적어도 하나라도 있어야 하는 것으로 선언하고 싶다면 5번과 같이 선언한다.

 

 

 

 - 엘리먼트의 종류 및 선언 방식

 

1. #PCDATA

엘리먼트의 시작 태그와 종료 태그 사이에 파싱되는 문자 데이터가 들어가는 것을 말함.

이 선언은 최하위 엘리먼트에 사용됨.

 

  예)

<!ELEMENT taxt (#PCDATA)>

taxt라는 이름의 엘리먼트 시작 태그와 종료 태그 사이에 문자 데이터가 들어가게 하고 싶을 때 예와 같이 선언한다.

 

 

 

 

2. ANY 키워드

 시작 태그와 끝 태그 사이에 문자 데이터와 임의의 원소들이 올 수 있다는 것을 의미함.

 

 즉, 엘리먼트의 내용으로써 모든 종류의 데이터와 마크업을 포함할 수 있음을 선언하며

 어떠한 엘리먼트나 텍스트 순서나 횟수에도 상관없이 나타날 수 있다는 것을 의미함.

 

 예)

<ELEMENT anyTag ANY>

ANY는 정확한 문서를 정의하기 위해서는 바람직하지 않지만,

새로운 DTD 개발을 하는 경우에는 자주 사용될 수 있다.

 

 

 

 3. EMPTY 키워드

 엘리먼트가 내용을 갖지 않는 공백 태그를 선언할 때 사용되는 키워드.

EMPTY로 정의된 엘리먼트는 속성을 가질 수는 있지만, 시작 태그와 종료 태그 사이에 아무런 내용도 있을 수 없다.

 

 예)

<!ELEMENT HT EMPTY>

 HT라는 공백 태그를 위한 원소를 선언한 예

 

 

 4. 혼합내용(mixed-content)

반드시 나와야 한다거나 순서대로 나와야한다는 조건 없이, 여러 개의 엘리먼트가 자식 엘리먼틀 나타나는 것을 허용함.

 

 예)

<!EMEMENT mixed ( #PCDATA | otherTag )*>

 항상 #PCDATA가 먼저 나와야 한다는 것에 주의해야함.

 

 

 

 

 - 공백 태그(empty tag)란?

시작 태그와 끝 태그 사이에 어떠한 내용도 포함하지 않는 경우에 이러한 태그를 공백 태그라고 함.

 

 

 

참고 문헌 및 링크

 ADD-ON XML

 클릭하세요 XML

 자바 개발자를 위한 XML

 

'XML' 카테고리의 다른 글

엔티티  (0) 2018.06.19
애트리뷰트  (0) 2018.06.19
DTD 란?  (0) 2018.06.17
XML의 응용들  (0) 2018.06.16
HTML과 XML의 차이점  (0) 2018.06.15
Posted by Resian
,

DTD 란?

XML 2018. 6. 17. 16:31

 - DTD 란?

문서의 구조를 정의하는 규칙의 집합.

문서의 구조화 원소 및 원소의 속성 등을 정의함으로써 작성된 XML 문서가 유효한지 여부를 판단하는데 사용

 

XML 문서에 내장되는 DTD의 목적은 문서 타입 정의(DOcument Type Definition : DTD)의 위치와 존재를 알리는 것이다.

 

 

 HTML DTD를 만든 것 처럼 XML은 사용자가 문서의 DTD를 정의할 수 있는데
정의된 DTD에 의한 문서를 만들 때 문서 인스턴트를 만든다고 말한다.
또, DTD를 따르는 문서를 '유효하다(Valid)'고 말하고, valid 문서라고 하는데
DTD를 해석할 수 있어서 문서가 DTD의 구조에 맞는지 검사할 수 있는 파서를 '검증용 파서(validating parser)'라고 부른다.

 

 

 

 

 - HTML의 DTD 선언


첫 번째 줄에 HTML DTD 선언이 있다.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
......
</HEAD>
<BODY>
......
</BODY>
</HTML> 

 

위 내용은 이 문서가 HTML 4.0 DTD에 의한 문서라는 것을 의미함.
즉, 모든 태그들은 DTD에 정의가 되어있고 HTML 문서 작성자는 DTD에 정의되어있는 태그들을 사용한다는 것을 의미.
[참고 : HTML의 DTD는 W3C에 의해 정의되어 있다]


 


 - DTD 문서 구조에 적용되는 제약 조건들
1. 어떤 엘리먼트가 나타날 수 있는 상황을 제한한다.
2. 구체적인 엘리먼트와 연계될 수 있는 속성들을 제한한다.
3. 속성에 대입될 수 있는 값들을 제한한다.
4. 속성값에 기본값 혹은 고정값을 제공한다.
5. 특수 문자들을 식별하는데 사용될 수 있는 XML의 기본 엔티티 이름 집합을 확장한다.
6. 미리 정의된 표기법과 매치되는 특정 엘리먼트와 엔티티의 데이터형을 제한한다.


 DTD는 선언들의 집합으로 구성된다.
(엘리먼트 선언, 속성 선언, 엔티티 선언, 표기법 선언 그리고
DTD와 그것의 구성요소들의 역활에 대한 설명을 하는 주석을 포함할 수 있음)

 

 

 

 - DTD 종류
DTD는 XML 문서 내에 함께 있을 수도 있고, 다른 파일로 외부에 존재할 수도 있다.

즉, 내부 DTD와 외부 DTD가 각각의 파일로 정의되거나, 두 방법이 모두 사용될 수도 있다는 것이다.

 

 하나의 DTD에서 다른 DTD의 내용을 호출하여 사용할 수 있고, XML 문서에서

내부 DTD와 외부 DTD를 함께 사용할 수 있는데 내부 DTD가 외부 DTD보다 항상 우선 순위가 높다.

 

 

 

  - 내부 DTD
내부 DTD를 사용하려면 XML 선언과 루트 엘리먼트 사이에 DTD를 정의해야 함.

 

 <?xml version="1.0" ?>
<!DOCTYPE example [
......
]>
<example>
......
</exapmple>

 

위 예시에서 DOCTYPE은 문서 타입을 정의한다는 뜻의 키워드이며 반드시 그대로 써주어야 한다.

<!DOCTYPE 다음에는 DTD의 이름을 써주며, DTD 이름은 루트 엘리먼트의 이름이 같아야 한다.

 

 

 

 내부 DTD 형태 정리

>>> DTD 선언

<!DOCTYPE  name  [ 마크업 선언* ]>

 

>>> 마크업 선언

원소 선언, 속성 선언, 엔티티 선언, 노테이션 선언, PI , 주석

 

 

 

 

  - 외부 DTD

 DTD는 XML 문서 내부에 직접 선언될 수도 있지만, 일반적으로 외부에 별도 DTD를 선언하는 방법을 사용함.

외부 DTD 사용시 여러 개의 XML 문서에서 매번 DTD를 기술하지 않고,

공통된 DTD만 공유해서 사용할 수 있다는 장점이 있음


 

<?xml version="1.0" ?>
<!DOCTYPE example SYSTEM "exam.dtd">
<example>
......
</example> 

 


위 예시에서 SYSTEM이라는 키워드는 DTD가 공개 표준이 아닌 자체적으로 개발해서 사용하는 DTD임을 의미하고
SYSTEM 다음에 나타나는 것은 DTD가 존재하는 곳의 위치를 나타내는 URL이 된다.
example DTD는 현재 XML 문서와 같은 디렉토리에 있는 exam.dtd 라는 파일에 정의되어 있다는 것을 알 수 있다.

 

 

 

 외부 DTD 형태 정리

>>> DTD 선언

<!DOCTYPE  name  외부ID>

 

>>> 외부ID

SYSTEM URl  / PUBLIC  PubidLiteral  SystemLiteral

 

 

 

 

   - 외부 DTD 중 공개 표준으로 되어있는 경우

공개 표준이 아닌 DTD에서 사용했던 SYSTEM 대신

아주 유명한 DTD이거나 표준으로 정의된 DTD인 경우 PUBLIC라는 키워드를 사용한다.


 

<?xml version="1.0" ?>
<!DOCTYPE example PUBLIC "-//myCompany//DTD example//EN"
 "http://mycompany/exam.dtd" >
<example>
......
</example> 

 

PUBLIC 다음  SystemLiteral  부분에 DTD의 이름과 공개 식별자 구조를 기술하고,

DTD 이름을 이용하여 문서의 구조를 파악할 수 없는 경우

SystemLiteral 부분에 DTD 파일이 있는 곳의 URL을 기술하게 된다.

 


 공개 식별자 구조는 어떻게 되는가?
DTD가 ISO 표준이라면 식별자는 ISO로 시작함.
표준이 표준 단체에 의해 공식적으로 승인된 것이라면 첫 문자가 +이고, 아니면 -가 나온다.

 

 

간단하게 정리하자면
"-//myCompany//DTD example//EN"
 "http://mycompany/exam.dtd" >


라는 예시에서

 

-     = 공개 식별자
myCompany = DTD 식별자
example   = DTD 이름
EN    = ISO 639에서 지정한 언어 식별자(EN은 영어)
http://mycompany/exam.dtd = DTD를 찾을 수 있는 URL


라는 것이다.

 

 

 

단어 설명


 - 엘리먼트(Element)
마크업 태그와 그 안에 포함된 내용

 

 - 루트 엘리먼트(Root Element)
문서 내 모든 엘리먼트와 내용을 포함하고 있는 XML문서의 엘리먼트

 

 - 주석(Comment)
XML 프로세서가 해석하지 않는 설명문

 

 - 파서(Parser)

주어진 종단 기호의 열(列)이 특정의 문법에서 생성되는지를 판정하고,

초기 기호로부터 그 열에 도달하는 생성 규칙의 열을 발견하는 프로그램

 

 

 

참고 문헌 및 링크

 ADD-ON XML

 자바 개발자를 위한 XML

 

파서 설명 링크

https://terms.naver.com/entry.nhn?docId=832189&cid=42344&categoryId=42344

'XML' 카테고리의 다른 글

애트리뷰트  (0) 2018.06.19
엘리먼트  (0) 2018.06.18
XML의 응용들  (0) 2018.06.16
HTML과 XML의 차이점  (0) 2018.06.15
Markup의 설명과 XML의 탄생 배경(역사)  (0) 2018.06.15
Posted by Resian
,

XML의 응용들

XML 2018. 6. 16. 22:38

 

- CDF(Channel Definition Format)
마이크로소프트 익스플로러에서 사용되는 채널을 묘사하기 위해 사용되는 포맷으로 XML의 한 응용


 - SMIL(Syncronized Multimedia Integration Language)
웹상에서 멀티미디어들을 동기화시키는 규칙들을 묘사하기 위한 XML의 응용
SMIL을 사용하면 여러 멀티미디어 자원들을 시간과 화면 배치 등 자유자재로 구사할 수 있음

리얼네트워크사의 리얼 플레이어, 마이크로소프트의 미디어 플레이어 등이 이 포맷을 지원함

WML(Wireless Markup Language)
휴대용 정보 기기에서 사용하는 마크업 언어


 - CML(Chemical Markup Language)
분자식 같은 화학식이나 그래프를 서술하기 위한 XML의 응용


- MathML(Mathematical Markup Language)
HTML로 복잡한 수학식 표현이 불가능하고 의미를 전달할 수 없는 점을 해결하기 위해 만들어진 XML 응용

RDF(Resource Description Framework)
웹상에서 자원들에 대해 묘사하는 메타 데이터 기법을 제공하는 XML 응용


 - XHTML
SGML의 한 응용인 HTML을 XML의 응용으로 재구성한 것.


 ? 그래서 XHTML은 왜 만들어 졌나?
THML이 XML이 가지는 장점을 활용할 수 있기 위해서는

XML의 문법에 의해 재구성될 필요가 있기에 만들어짐.

 

 

  참고 문헌 및 링크

 ADD-ON XML

 

'XML' 카테고리의 다른 글

엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
HTML과 XML의 차이점  (0) 2018.06.15
Markup의 설명과 XML의 탄생 배경(역사)  (0) 2018.06.15
XML 개요  (0) 2018.06.13
Posted by Resian
,

HTML과 XML의 차이점

XML 2018. 6. 15. 21:17

HTML 

XML 

 SGML의 응용

 SGML의 부분집합 

 고정된 태그의 집합

 사용자가 태그의 정의 가능 

 확장 불가능

 확장가능 

 메타 언어 아님

 메타 언어 

 데이터 표현 목적 

 데이터 교환을 위한 구조 정의 목적 

 웹 브라우저 어플리케이션이 있어야 실행 가능 

 특정 어플리케이션에 종속되지 않음 

 데이터와 표현을 동시에 함

 데이터만 가지고 있을 뿐 표현하지 않음 

 태그를 사용하여 웹 페이지를 보기좋게 구성하고

표현함 

 웹 페이지 표현보다는 웹 페이지에 표시된 데이터의 효율적 사용을 주 목적으로 함.

 

 

 - 메타 언어란?
   다른 언어를 기술하거나 분석하는 데 쓰는 언어.

   영어 문법을 한국어로 해석할 경우에 한국어를 말한다.

 

 - 포맷팅이란?
   문자열 포맷팅은 변수를 이용하지 않고 문자열 내에 값을 삽입하는 것.

 

 

  참고 문헌 및 링크

 ADD-ON XML

 

'XML' 카테고리의 다른 글

엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
XML의 응용들  (0) 2018.06.16
Markup의 설명과 XML의 탄생 배경(역사)  (0) 2018.06.15
XML 개요  (0) 2018.06.13
Posted by Resian
,

 mark up이란 무엇인가?


워드 프로세서에서 어떻게 표시될 것인지(글씨 크기, 문단이 나누워 지는 것 등)을

지정하는 것을 마크업이라 한다.

 

 

 - 마크업의 종류

 

서술적 마크업(Descriptive Markup)
문서가 어떻게 표현될 것인가, 어떻게 디스플레이 될 것인가에 대한 마크업
예) RTF

 

범용적 마크업(Generalized Markup)
문서의 논리적인 구조에 대한 마크업
예) 책으로 비유하자면 한 권의 책은 장들로 구성되고 장은 절들로 구성되며 절은 또다시 문단으로 구성되는

하나의 논리적 구조를 띄게 되는데 이러한 구조를 지시하는 마크업을 범용적 마크업이라 한다.

 

 

 

마크업을 이해하기 쉽게 표지판으로 비유해보자.
길을 가던 중 멈춘 표시판을 보면 멈출 것이고 임시 우회 표지판을 보면 돌아갈 것이다.
도로는 원시(raw) 정보이고 표지판이 바로 길을 갈 때 필요한 마크업 이다.

 

표지판을 마크업이라 비유 했을 때 xml은 웹 위에 있는 거대한 정보의 바다에서 항해하는데 도움을 주는
표지판[마크업]을 설치하는 표준이다.

 

 

 

 

 - RTF란?

마이크로소프트사가 중심이 되어 표준화한 텍스트 문서 파일 형식.

RTF 형식의 파일에는 문자 데이터뿐만 아니라 폰트의 종류와 크기, 그림, 도표 등을 포함하는, 문서의 형식 등을 규정하는 풍부한 제어 정보가 포함되기 때문에 IBM PC와 호환 기종의 PC, 매킨토시와 같은 서로 다른 기종이나 운영 체계에서 동작하는 응용 프로그램 간에 형식화된 텍스트 문서를 교환할 수 있다.

 


 

 

 

 XML은 어떻게 만들어졌는가?

 

 

- GML

범용적 마크업은 IBM에서 개발한 GML(Generalized Markup Language)이 시초라 할 수 있으며
국제 표준인 SGML을 제정하는 기초가 됨.
법률사무소 정보처리 시스템간의 문서를 공유하기 위해 개발함.

 

 

 - SGML
Goldfarb는 GML을 바탕으로 ISO의 후원을 얻어 연구하여
1986년 10월 ISO 표준 8879로 SGML(Standard Generalized Markup Language)를 제정함
사용자가 자기 고유의 마크업 언어를 생성할 수 있도록 정의(표준) 할 수 있는 메타언어.

 

텍스트를 일관성 있게 포맷팅 하고, 문서관리 시스템이 정보를 빨리 찾을 수 있도록 하기 위해 내용 식별자를 정의함.

 

 

 장점
1. 기기나 처리 시스템이 독립적이고, 문헌을 구조화시켜 그 내용이 물리적인 형태와는 별도로 유지되는

   융통성이 있으며 확장 가능하고 다양한 응용에 사용할 수 있다.

2. 어떤 문서든지 제작 할 수 있는 유연성
3. 시스템이나 플랫폼에 독립성
4. 높은 재사용성을 가짐

 


단점
SGML은 상당히 복잡하여 전문가나 사용이 가능했음.
방대한 분량으로 구성되었기에 SGML을 지원하는 소프트웨어 개발도 어렵고
비용도 많이 들기에 널리 사용되지 못함.
웹에서 사용이 어려움

 

사용 예
미국방성에서 많이 사용하였고, 핵무기 개발, CALS 등에 주로 사용됨

 

 


- HTML
CERN연구소의 Tim Berners-Lee가 1998년 하이퍼텍스트 문서 시스템을 위한 제안서 작성 이후
SGML을 이용하여 언어를 설계하고 작성한 HTML이 1990년 10월에 개발됨

넷스케이프, 익스플로러와 같은 웹 브라우저들이 인식함.


HTML은 WWW(World Wide Web)의 폭발적 성장으로 대중화 됨
(웹 사용의 증가로 사용량 증가)

 

 

장점
초보자도 금방 활용할 수 있을정도로 쉬움.

 

단점
고정된 태그 집합을 가지고 있어 사용자가 자신의 태그를 정의해서 사용할 수 없음.

구조적 특징이 없어 문서의 구조를 정의할 수 없음
(특성을 표현하기 어려움, 문서를 충분히 표현할 수 없음, 문서 교환시 전자적 처리에 있어 장애요소가 됨)


스타일 능력 부족, 효과적인 검색, 재사용, 검증이 불편함.


대안으로 등장한 것들
CSS(Cascading Style Sheets)
HTML DOM(Document Object Model)
DHTML(Dynamic HTML)

위의 대안으로는 HTML의 근본적인 문제를 해결해주지 못함.
이유는 근본적인 문제가 SGML로써 해결해야하는 부분이었기 때문.


 


 - XML

1996년 W3C(World Wide Web Consortium)가 개발하고
1998년 2월 XML 1.0을 승인함으로써 사실상의 표준으로 제정됨.


SGML의 장점을 최대한 살리고 단점을 피한 마크업 언어다.
그리고 XML은 SGML과 마찬가지로 확장 가능하기에 HTML의 단순한 렌더링 기능의 한계를 극복한

언어적 형태로서 향후 전자적 교환문서의 표현이 됨.
(단편적 비유 예시 : SGML 언어 명세가 500페이지라면 XML 언어 명세는 26페이지이다.)


목적
"일반적인 SGML이 웹 상에서, 마치 HTML이 웹에서 처리, 이용되는 것처럼 활동할 수 있게 하며
XML은 SGML과 HTML을 같이 사용하면서도 구현하기 쉽고 상호 운용을 할 수 있도록 고안되었다" 라고

말하고 있다.

 -> SGML에서 복잡한 구문 구조를 피하면서도 꼭 필요한 구조적 문서 표현이 가능한 기능을 포함함으로써

 

과정
1996년부터 SGML처럼 강력하고 HTML처럼 간단한 마크업을 정의하기 위한 토론을 시작으로
W3C는 썬의 HON Bosak을 포함한 SGML 전문가 그룹을 지원하기로 결정함.

SGML 전문가들은 SGML에서 중요하지 않고, 많이 사용되지 않는 기능을 모두 삭제 후 간단한 형태로 만들었는데
이 때 만들어진 마크업 언어가 XML
(비슷한 예 : C++ 언어의 불필요 기능을 제거하고 JAVA를 만듬)

 


장점
1. XML은 SGML의 간단한 하부집합이며 문서의 유형을 쉽게 정의할 수 있다.
- 문서 구조를 문서 작성자가 마음대로 정의할 수 있다.

2. SGML을 따르는 문서를 쉽게 작성하고 관리할 수 있게 함
- 문서 구조와 스타일 시트를 분리하여 관리가 용의함.
  같은 문서라도 다른 스타일 시트를 저용함으로써 다른 모습으로 디스플레이 하는 것이 가능하다는 뜻.

3. 웹 상에서 문서들을 전송하고 공유할 수 있음.
- HTML에서는 단순한 단방향 링크였던 것에 반해 XML에서는 양방향, 다방향 링크 등 다양한 링크 기능을 제공

 

    XML은 웹사이트의 간단한 시스템 관리를 제공하게 되었다.

 


특징

1. 구조화된 전사문서 및 컨텐츠의 저장, 검색이 용의함.
2. 사람과 기계, 양쪽이 다 읽을 수 있는 문서를 만들 수 있음.
3. 시스템 사이에서 데이터를 교환할 때 다른 수단보다 훨씬 더 융통성 있음.

결론 : XML은 구조적이면서도 융통성을 발휘할 수 있기 때문에 정보를 찾는 응용에 적합함.

 

XML은 인터넷 상의 데이터 표현을 위한 핵심 기술로
국제 표준 기술이며 Meta-Language이다.

하나의 프로그래밍 언어에 가까운 특성(스트립트에 적합)을 가지고 있다.

 

 

 

 

 

 

 

  참고 문헌 및 링크

자바 개발자를 위한 XML

클릭하세요 XML

 ADD-ON XML

 

RTF 링크

https://terms.naver.com/entry.nhn?docId=859534&cid=42346&categoryId=42346


 

'XML' 카테고리의 다른 글

엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
XML의 응용들  (0) 2018.06.16
HTML과 XML의 차이점  (0) 2018.06.15
XML 개요  (0) 2018.06.13
Posted by Resian
,

XML 개요

XML 2018. 6. 13. 23:06

 XML이란?

 

(Extensible Markeup Language)의 약자로 HTML과 유사한 형태의 Markup Language 이다.

 

 

HTML을 획기적으로 개선하여 만든 언어로 홈페이지 구축 기능, 검색 기능 등이 향상되었고

웹 페이지의 추가와 작성이 편리하다.

 

체계화 공식(Well-Formed)의 형태여야 하며 Tag를 사용자가 정의할 수 있다.

Data를 표현하는 언어다. 

 

 

 - Tag란?
   글을 쓴 저자가 그 글의 검색을 위하여 감성, 정황, 글쓴이의 의지 등을 나타내는 단어를

   입력해 둔 일종의 키워드들의 집합.
   [기호 조각 모음, 작은 규약]

   (어떤 정보를 검색할 때 사용하기 위해 부여하는 단어 혹은 키워드)

 

 

 - HTML?

   웹 문서를 만들기 위하여 사용하는 기본적인 프로그래밍 언어의 한 종류

   하이퍼텍스트를 작성하기 위해 개발됨.

 

- Well-Formed?

  XML 1.0 스펙에 의해 정의된 문법 규칙을 따르는것

 

 

HTML 설명 링크

https://terms.naver.com/entry.nhn?docId=825143&cid=42344&categoryId=42344

 

하이퍼텍스트 설명 링크

https://terms.naver.com/entry.nhn?docId=1531099&cid=41799&categoryId=41800

 

 Tag 설명 링크

https://terms.naver.com/entry.nhn?docId=2837553&cid=40942&categoryId=32854

'XML' 카테고리의 다른 글

엘리먼트  (0) 2018.06.18
DTD 란?  (0) 2018.06.17
XML의 응용들  (0) 2018.06.16
HTML과 XML의 차이점  (0) 2018.06.15
Markup의 설명과 XML의 탄생 배경(역사)  (0) 2018.06.15
Posted by Resian
,