Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extensible Markup Language

Similar presentations


Presentation on theme: "Extensible Markup Language"— Presentation transcript:

1 Extensible Markup Language
XML의 소개 송응규,

2 송응규, eungkyu@sparcs.kaist.ac.kr
XML의 특징 Meta-markup Language이다. 문서의 format이 아닌, structure와 means를 설명한다. SGML과 호환된다. Unicode를 이용한다. XML문서를 의도적으로 짧게 만들 필요는 없다. 어차피 처리는 컴퓨터가 하는 것이기 때문에… (간단하게 만드는 개인 홈페이지로서는 약간 부족할 지도 모름) 문서의 format를 설명하는 문서가 바로 HTML이다. 이 것은 오로지 화면에 보이는 것에 치중한다. XML은 문서 자체만으로(보이는 것 외에)의미를 가질 수 있도록 만든 다음에 XSL같은 Style language로 자료를 정리해서 화면에 보여주는 것이다. Unicode를 이용하기 때문에 폰트만 있다면 각 나라의 언어를 한 곳에서 볼 수 있다. 송응규,

3 송응규, eungkyu@sparcs.kaist.ac.kr
XML의 장점 Data를 스스로 설명 가능하다. Data 가공의 표준도구로 활용 가능하다. Data를 표준도구로 볼 수 있다. 다른 XML문서 또는 다른 문서로 전환이 가능하다. 앞에서도 말했지만, 의미를 포함하고 있기 때문에 스스로 설명이 가능하다. Web이외의 자료라도 XML로 만들어 놓으면 공개된 XML processor가 많이 때문에 쉽게 분석해서 볼 수 있고, 다른 곳에 제공하기 편리하다. 앞으로 나올 XSL을 이용하면 다른 문서로 전환할 수도 있다. 송응규,

4 송응규, eungkyu@sparcs.kaist.ac.kr
XML Application XML을 각자 고유한 영역에 적용할 수 있도록 고유한 문법을 만든 것 공개된 XML Processor를 이용 가능 XSL, XLink, XPointer와 같이 XML을 위한 XML Application도 있음 XML을 이용하여 수학기호나 화학기호 등을 Web브라우저로 볼 수 있게 할 수 있다. MathML은 이미 mozilla에서 볼 수 있다. 그리고 프로그램 내에서 고유하게 쓰일 수도 있다. (XML Browser나 Editor같은 프로그램을 말하는 Application이 아니고 응용이라는 뜻이다.) 송응규,

5 송응규, eungkyu@sparcs.kaist.ac.kr
XML의 문법 Well-formed와 valid XML 선언 + DTD + element로 이루어짐 HTML과의 다른점(element부분) Nested element End tag and empty element Attribute values must be quoted. Attribute minimization Well-formed 는 문서 그 자체의 문법을 보는 것이다. 자세한 문서는 XML spec을 보면 BNF문법으로 쓰여 있다. Valid는 well-formed한 상태에서 DTD와 element가 서로 부합하는 지 보는 것이다. (DTD자체의 문법이 틀렸다면 valid는 의미가 없다.) 송응규,

6 송응규, eungkyu@sparcs.kaist.ac.kr
XML example Element부분은 전체를 둘러싸는 root tag가 있어야 한다. Xml선언도 반드시 있어야 한다. 앞으로 나올 DTD 없어서 well-formed하지만 valid하지는 않다. 그러나 보통의 브라우저는 valid한 것만을 보기 때문에 문법이 틀렸다고는 나오지 않는다. 송응규,

7 Document Type Declarations
Validation XML은 meta-markup Language DTD를 통해 새로운 markup Language를 서술함 Element의 속성, entity목록, 이것들의 관계를 나타냄. DTD을 완벽히 만든다는 것은 바로 새로운 XML Application을 만드는 것과 같다. 그리고 각각의 application마다 원하는 바를 DTD로 체크하는 것이다. 그 예로 xhtml등이 있다. 아래에 예가 조금 있다. 송응규,

8 송응규, eungkyu@sparcs.kaist.ac.kr
DTD example 송응규,

9 CSS1 & CSS2 - Style Language
HTML문서의 글꼴, 테두리 등의 성질을 추가하는 방법의 표준으로 소개됨. XML을 browser가 표시하는 방법으로 HTML보다 더욱 잘 어울림. 그러나 XML에 완전히 부합하지 않으나, 조그만 홈페이지와 같은 곳이 어울림. XSL이 제대로 구현된 XML Browser가 없기 때문에 CSS를 쓸 수밖에 없음. CSS는 html을 위해 나온 것이나, 오히려 이미 태그마다 format이 있는 html보다는 xml에 더욱 잘 적용된다. 그러나, xml은 문서 자체가 화면에 보여주기 위함은 아니기 때문에 그대로 문서 자체를 보여주는 CSS는 xml과는 어울리지 않고, xml문서중 필요한 부분만을 보여주게 하는 xsl이 어울린다. 그리고 xsl은 바로 xml을 위해서 만든 style language이자 XML: application이다. Css1과 css2가 있는데, 자세한 문법은 뒤의 참조하게 바람 송응규,

10 송응규, eungkyu@sparcs.kaist.ac.kr
CSS example XML자체 소스는 DTD에서 본것과 같다. 그것을 위의 css를 이용하여 아래의 출력을 얻어낸 것이다. Css를 이용하면 XML문서에 있는것 이외의 더 필요한 것(문서를 출력할 때) 또는 빼야할 것을 설정하지 못한다. 즉, 문서에 있는 그대로만 볼 수 있다. 송응규,

11 Extensible Style Language
XML Application중의 하나 (그 자체로 well-formed인 문서) 진정한 XML의 Style Language XSL Transformation (XSLT)과 XSL Formatting Object (XSL-FO) 아직 제대로 구현된 browser가 없어서 현재까지 많이 쓰이지 않음. XML을 위해서 만든 것이다. 송응규,

12 송응규, eungkyu@sparcs.kaist.ac.kr
XSL Transformation XML문서를 변환하는데 사용 XML Tree를 입력으로 받아들여서 다른 형태로 출력 (주로 다른 XML 또는 HTML) 다른 형식의 문서로도 변환 가능 XML tree를 입력으로 받아서 이 것의 element, attribute, inheritance 등을 분석해서 다른 구조로 출력하는 것이다. XML문서를 보기 위해 HTML로 출력하는 경우가 있고, 아래 나올 Formatting Object도 함께 써서 xml로 출력해서 그대로 web으로 볼 수도 있다. 그리고 이것을 이용하여 tex이나 그냥 text, pdf등도 만들 수 있다. 송응규,

13 송응규, eungkyu@sparcs.kaist.ac.kr
위의 XML문서를 왼쪽 아래의 XSLT로 변환해서 오른쪽의 html을 만들어낸 것이다. 이것을 화면으로 보여주는 것이다. 되는 곳이 없는줄 알았는데, explorer 5.0에서 문서를 볼 수 있다. 문서에서 보고싶은 것만 볼 수 있는 것이 XSL의 특징 XSLT example 송응규,

14 송응규, eungkyu@sparcs.kaist.ac.kr
XSL Formatting Object XML문서를 화면에 표시하기 위한 언어 Web에서의 사용 외에 일반적인 Formatting Language로 사용 가능 바로 css의 역할을 하는 것이다. XSLT로 보고싶은 내용을 변환해서 XSL-FO로 서식을 지정해서 볼 수 있다. 기능도 css보다 막강하다. Css는 속성값을 이용할 수 없는데, XSL은 가능하다. 송응규,

15 송응규, eungkyu@sparcs.kaist.ac.kr
XSL-FO example Explorer에서 본 것이다. 음… fo가 아니고 xslt이다. 송응규,

16 송응규, eungkyu@sparcs.kaist.ac.kr
XLink Extensible Linking Language(XLL) XML Application중의 하나 XML에서 문서간의 관계를 나타냄 Simple link – HTML의 link와 비슷 Extended link – link의 방향이나 개수 등 좀 더 복잡한 link를 정의 Html의 링크역할을 하면서 좀더 다양한 기능도 가능한 기술이다. Simple 은 html의 a태그와 비슷하고, extended는 더 가능하다. 예를 들어, 이 문서를 어디서 링크해왔는지 알 수 있게 하든가, 한 문서에서 여러 문서와 연결을 할 수 있다. 아직 구현된 것은 없다. Simple링크는 mozilla에서 구현되었다. 송응규,

17 송응규, eungkyu@sparcs.kaist.ac.kr
XLink example Simple링크만 본 것이다. 내 홈페이지이다. 보면 알 수 있을 것이다. 위의 DTD에서 기본값을 simple, replace로 한 것을 주의하라 그래서 실제 문서에는 href만 넣으면 된다. 송응규,

18 송응규, eungkyu@sparcs.kaist.ac.kr
XPointer XML Application중의 하나 XML문서의 개별적인 부분을 가리키는 체계를 정의함 문서 안의 표시 없이 문서의 위치 또는 범위를 지정 Html에서 문서의 중간으로 가는 것과 비슷하지만 훨씬 강력한 기능을 가지고 있다. Html에서는 문서 안에 미리 표시를 해 둬야 그 이름을 이용해서 참조할 수 있지만, 태그의 개수, 문단 등을 이용해서 직접 가리킬 수 있고, 범위를 가리킬 수도 있다. 지원되는 것이 없어서 예제는 없다. 송응규,

19 Other XML Applications - 1
XML Schema – DTD보다 강력하게 XML을 정의하는 방법 정의 XML Query – XML문서에서 특정한 부분을 추출하는 방법 정의 DOM(Document Object Model) – 문서를 Object의 개념으로 받아들이고 정리하는 모델 (XML Application 아님) RDF(Resource Description Framework) - Web에서 여러가지 Resource를 표시하는 방법 정의 XHTML – HTML을 XML의 한 부분으로 새롭게 정의 여기에서 XML Query부분이 완성된다면 xml을 database로도 활용할 수 있다는 의미가 된다. XHTML은 바로 HTML을 XML Application으로 만든 것이다. Songa형이 그러길 DOM이 문서를 OO의 눈으로 바라본다는 거 같은데 DTD와 같은 것을 Class로 보고 element를 instance로 본다는 것이다. 송응규,

20 Other XML Applications - 2
CML(Chemical Markup Language) – 물질의 분자구조를 표시 MathML(Mathematical Markup Language) – 수학식을 표시 SMIL(Synchronized Multimedia Integration Language) – 멀티미디어 재생에 이용 SVG(Scalable Vector Graphics) - 벡터그래픽의 표시에 이용 그 외에 MusicML, VoxML 등이 있음 여기에서 MathML은 mozilla에서 구현이 되었다. (MathML로 그린 수학식을 mozilla에서 볼 수 있다는 뜻이다.) 그리고, SMIL은 우리가 자주 보는 형식이다. 바로, realplay나 windows media player에서 동영상과 자막을 같이 볼 수 있도록 해주는 것이 바로 SMIL이다. 한번 텍스트파일을 직접 보면 XML로 되어있다는 것을 알 수 있다. XML은 그 구조가 단순하고, 문서를 분석하는 것이 공개적으로 구현되어있기 때문에 (라이브러리 형태로 프로그램 개발할 때 직접 쓰일 수 있도록 구현되어있는 경우가 많다) ( 가면 목록을 얻고, 구할 수 있다.) 매우 많은 분야로 확장이 가능하기 때문에 많이 쓰일 것이다. 송응규,

21 송응규, eungkyu@sparcs.kaist.ac.kr
References 의 여러 문서들 XML Bible, Elliotte Rusty Harold (김용권 역), 정보문화사 송응규,


Download ppt "Extensible Markup Language"

Similar presentations


Ads by Google