자주 묻는 질문/일반/045

From The Document Foundation Wiki
< Faq‎ | General
Jump to: navigation, search
This page is a translated version of the page Faq/General/045 and the translation is 100% complete.

Other languages:
čeština • ‎dansk • ‎English • ‎français • ‎italiano • ‎한국어


LibreOffice와 XML

당신이 XML에 대해 들어보았다는 사실에는 의심이 없고, LibreOffice의 파일 형식이 XML이라고 들었겠지만 그게 확실히 무엇이고 어떤 의미인지, XML이 무엇인지에 대해 알고 있습니까?

XML이란?

eXtensible Markup Language(확장 가능한 마크업 언어)의 약어입니다.

XML은 메타언어의 일부분으로, SGML의 부분집합입니다. 그럼 SGML(Standard Generalized Markup Language)은 무엇일까요? 이는 구조화 및 모듈화 문서를 작성할 수 있는 언어이다. 구체적으로는 소리, 데이터베이스 또는 텍스트, 이미지처럼 다양한 데이터로 문서를 작성할 수 있다는 것을 의미합니다. SGML은 광범위한 용도에 의해 정의되었으며, 굉장히 긴 기간 보관되어야 합니다. 이 언어는 꽤 확장성이 있으며 복잡하고, XML은 SGML을 단순화하기 위해 만들어졌습니다.


HTML와 XML이 유사하기 때문에 처음에는 헷갈려하기도 합니다. 이는 열고 닫는 태그를 포함하고 있는 언어입니다. 큰 차이점은, HTML은 프리젠테이션을 설명하는 태그로 정의된 반면 XML은 콘텐츠와 관련된 걸 다룬다는 것에 있습니다. 그러나 네, HTML은 SGML의 부분집합이지만 오직 웹에서 데이터를 처리하기 위해 사용됩니다.


XML을 요약하면(프로그래밍 언어나 새로운 HTML이라는 식 말고) 데이터 구조화, 기술 및 교환을 위한 명확한 방법입니다. 내용 및 레이아웃은 분리되어 교환이 가능합니다. 콘텐츠는 다른 형식이나 다른 매체에서 재사용될 수 있습니다. 데이터는 모든 종류의 것이 될 수 있다: 화학 공식, 재무 데이터, 음악 데이터, 텍스트...

LibreOffice 내부의 xml 내용 예시:

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE office:document-meta PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">
  <office:meta>
        <meta:generator>LibreOffice/3.3$Win32 LibreOffice_project/330m18$Build-4</meta:generator>
        <meta:initial-creator>Sophie Gautier</meta:initial-creator>
        <meta:creation-date>2011-01-12T19:07:36</meta:creation-date>
        <meta:document-statistic meta:table-count="0" meta:image-count="31" meta:object-count="0" meta:page-count="17" meta:paragraph-count="213"
          meta:word-count="2647" meta:character-count="16353"/>
  </office:meta>

당신은 < > 태그가 문서의 내용을 구분함을 확인할 수 있었을 겁니다. 오픈 태그가 있다면 반드시 닫혀야 합니다: <office:meta>는 </office: meta>로 닫혀야합니다. 문서에 정보를 더하기 위해서는, 해당 문서에 속성을 부여하고 값을 meta:page-count="17" 지정해야합니다. meta:page-count속성은 value "17"을 가집니다 (문서가 17페이지 있다). 주석은 이렇게 답니다:

왜 XML을 쓰는가?

상단의 XML 한 토막을 보면 놀라운 게 많습니다:

  • XML은 당신 스스로 읽을 수 있지만, 또한 기계에게도 읽힐 수 있습니다.이는 가장 큰 장점 중 하나입니다.
  • 이는 Unicode입니다(Unicode: 플랫폼, 언어, 프로그램에 관계없이 모든 문자에 대해 고유 번호가 정의된다). 이는 그 언어가 다른 인코딩으로 저장될 수 있음을 의미합니다. 차이점이 무엇일까요? 당신은 아마 그 문서가 ASCII로 인코딩 되어있음을 알아도, 단지 하나의 알파벳과 하나의 문자 시스템일 것입니다. 본 코드의 조각은 UTF-8 인코딩을 보여주는데, 이는 많은 알파벳들을 지원합니다.
  • XML은 객체지향적입니다: 데이터를 관계별로 연계된 정규화된 테이블로 분해하는 대신, 객체(구체적이고 추상적)의 특성을 있는 그대로 모델링하여 객체(구체적이고 추상적)를 기술하므로 XML 문서를 보다 직관적으로 이해할 수 있습니다.
  • 마지막으로, XML은 내용과 레이아웃, CSS, XSL과 같은 제3자 언어가 제공하는 데이터의 레이아웃을 구별합니다...
  • XML은 소프트웨어 구성요소의 측면에서 낮은 비용을 발생시키며, 따라서 IT 산업에 성공적으로 통합될 수 있습니다.

XML과 LibreOffice

어떻게 LibreOffice가 XML이라고 생각하십니까? LibreOffice는 .xml 기본 파일 형식을 압축한 상태입니다. 이것은 LibreOffice 문서를 구성하는 파일이 아카이브에 캡슐화되어 있음을 의미합니다. 예시: 자주 사용하는 압축 풀기 도구 (LibreOffice에서 사용하는 파일 형식은 무엇입니까?를 보세요)를 사용해 LibreOffice 파일을 여세요. 당신은 다른 파일들의 컬렉션을 볼 수 있을 것이며, 그 중 일부는 .xml 확장자를 가지고 있습니다.

LibreOffice의 어떤 모듈이 XML을 사용할까?

모든 LibreOffice의 모듈이 XML을 기본 파일 형식으로 사용합니다. 수학 모듈은 패키지 구조를 조금 다르게 사용하지만, 몇몇 xml이 패키지 안에 위치합니다: MathML은 수식에 대해 XML을 표준으로 사용합니다. 또한, 몇몇 구성 파일은 XML을 사용합니다. 이러한 파일 구조는 언제나 이곳에 있습니다:

  • meta.xml은 문서에 대한 정보를 포함한다(저자, 마지막 저장 날짜).
  • styles.xml은 문서에 쓰인 스타일을 포함합니다.
  • Content.xml은 주요 문서 내용을 포함합니다(문자, 그림, 그래픽 등).
  • Settings.xml, 보통은 응용프로그램에 해당되는 것은 선택된 프린터 같은 일부 매개변수를 포함합니다.
  • META-INF/manifest.xml는 다른 파일들(예를 들면 MIME 형식 혹은 암호화)의 정보를 제공합니다.

이미지는 압축파일 안에 원래 형식으로 저장됩니다. 이제 당신은 왜 LibreOffice 파일들이 당신의 하드 디스크의 공간을 거의 차지하지 않는지 알게 되었습니다!

LibreOffice의 파일 형식에 대해 더 알고 싶으면 http://xml.openoffice.org 사이트를 참조하세요.

XML 문서는 있는 그대로 표시할 수 없습니다. 모든 정보를 올바르게 표시할 수 있으려면 XSLT(변환 언어)와 XSL-FO(사물 형식 지정 언어)가 필요합니다(예: 문서가 별도로 구성된 경우 또는 형식이 지정된 테이블이 포함된 경우...).

DTD, XML 개요, XSLT.. 이게 뭔가요?

DTD 문서 타입의 정의

DTD는 XML 문서에 사용할 요소와 속성을 지정하고 해당 구조와 내용을 설명합니다. DTD는 문서 내부(문서 자체의 정의를 포함) 또는 외부(로컬 파일에 있거나 URL로 호출됨)일 수 있습니다. XML 표준은 DTD를 의무화하지 않으며, 포함하지 않을 경우 유효한 DTD 또는 XML 문서가 제대로 작성되어 있으면 XML 문서에 대해 설명합니다(그러나 XML 표준은 존중합니다).

LibreOffice DTD 내용의 예시

              List the initial writers in this form (with initial="true"). Initial Writers is a term from the PDL (License).
              If one of these authors assigned copyright to somebody else, e.g. the company they are working for, use the attribute copyright="..."
              and name the copyright holder.
      -->
      <!ELEMENT authors ( author+ ) >
      <!ELEMENT author (#PCDATA)>
      <!ATTLIST author
                  id      ID    #REQUIRED
                  initial CDATA #IMPLIED
                  email   CDATA #REQUIRED>
      <!--

XML 스키마

스키마는 XML 문서의 구조라 정의되기도 합니다, 그러나 이는 DTD보다 요소 유형을 정함에 있어 더 유연합니다. 이는 모델을 정의하기 위해 습득된 DTD를 사용합니다. 스키마는 W3C 사향을 따릅니다.

XSLT : eXtensible Style Language Transformation

XSLT는 XML 문서를 RTF, HTML 또는 PDF 등의 다른 형식으로 변환하기 위한 프로그래밍 언어입니다. 이 언어는 선언적이고 비절차적(알고리즘 없음)이므로 비개발자의 접근이 용이합니다. XML로 쓰여진 것 자체가 재해석될 수도 있습니다. 실제로 XSLT는 XML 트리를 스타일시트를 설명하는 모델의 규칙으로 변환합니다. CSS는 이러한 규칙을 생성하므로 이러한 규칙의 표시 순서는 문서에 중요하지 않으며, 여러 규칙이 적용될 수 있는 경우 우선 순위가 있기 때문에 CSS와 비교되는 경우가 많습니다. 차이점은 CSS가 비어 있으면 HTML 생성 문서에 영향을 주지 않고 레이아웃으로만 무시되며, XSLT는 빈 문서를 생성합니다(사양에 아직 내부 규칙이 정의되어 있기 때문에 문서가 실제로 비어 있는 것은 아닙니다).

XPATH

이는 XSLT와 연관된 선언형 언어입니다.경로의 위치를 XML 트리로 정의할 수 있게 합니다.

XSL-FO : eXtensible Style Language for Formating Object

PDF 출력에 자주 사용되는 일반 개체 프레젠테이션(예: 목록, 테이블 ...)을 정의하는 언어입니다. XSLT 변환 후 생성되며 처리된 개체를 시각적으로 해석할 수 있습니다.

OASIS

Oasis(구조화된 정보 표준의 발전을 위한 조직)는 e-비즈니스 표준의 개발, 융합 및 채택을 추진하는 글로벌 컨소시엄입니다. 따라서 XML 표준을 정의합니다. 이 정의는 LibreOffice 파일 형식을 기반으로 하며 공개 DTD와 일관됩니다. 자세한 내용은 다음에서 확인할 수 있습니다: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office

LibreOffice 파일 형식은 OpenOffice.org과 동일하며, Calligra, Google Docs, Zoho에서도 사용됩니다.