Faq/General/045/ko

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 내용 예시:

당신은 < > 태그가 문서의 내용을 구분함을 확인할 수 있었을 겁니다. 오픈 태그가 있다면 반드시 닫혀야 합니다: 는 로 닫혀야합니다. 문서에 정보를 더하기 위해서는, 해당 문서에 속성을 부여하고 값을  지정해야합니다. 속성은 을 가집니다 (문서가 17페이지 있다). 주석은 이렇게 답니다: 은 문서에 대한 정보를 포함한다(저자, 마지막 저장 날짜). 이미지는 압축파일 안에 원래 형식으로 저장됩니다. 이제 당신은 왜 LibreOffice 파일들이 당신의 하드 디스크의 공간을 거의 차지하지 않는지 알게 되었습니다!
 * 은 문서에 쓰인 스타일을 포함합니다.
 * 은 주요 문서 내용을 포함합니다(문자, 그림, 그래픽 등).
 * , 보통은 응용프로그램에 해당되는 것은 선택된 프린터 같은 일부 매개변수를 포함합니다.
 * 는 다른 파일들(예를 들면 MIME 형식 혹은 암호화)의 정보를 제공합니다.

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

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

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에서도 사용됩니다.