VOS와 OpenVOS에서 XML(확장 가능한 마크업 언어) 데이터를 처리하는 데 대한 연구를 수행해 왔으며, 배운 내용을 더 많은 청중과 공유하는 것이 유용할 것이라고 생각했습니다.
XML이란 무엇입니까?
XML에 대한 다음 설명은 데이브 머서가 "XML: 초보자 가이드"에서 가져옵니다. (오스본/맥그로 힐, 2001).
"SGML(표준 일반화 된 마크업 언어)은 인간과 기계가 읽을 수있는 정보를 나타내는 장치 독립적이고 시스템 독립적 인 방법의 정의를위한 국제 표준 (ISO 8879)입니다. SGML 규칙을 준수하는 언어는 응용 프로그램이라고하며 HTML은 SGML 응용 프로그램입니다. [...] HTML에는 표준 방식으로 새 태그, 속성, 데이터 구조 또는 콘텐츠 유형으로 확장할 수 있는 규정이 없습니다... XML은 HTML과 같이 미리 정의된 언어가 아니라 SGML의 지나치게 복잡한 특성을 피하면서 새로운 언어를 정의하는 미리 정의된 방법입니다. 기술적으로 XML에는 SGML에서 발견되는 기능의 하위 집합이 포함됩니다."
XML 스키마는 특정 XML 문서(또는 문서 클래스)를 정의하는 방법입니다. 데이터베이스가 정의하는 요소, 특성, 데이터 형식 및 구속조건을 포함하여 문서의 구조를 설명합니다.
XML 문서 유형 정의(DTD)는 스키마와 유사한 목적을 수행합니다.
XML은 10 년 이상 주변에 있었고, 경쟁 제품 및 방법의 숫자가 있다, 관련 표준의 숫자가있다. XML에는 많은 무역 책도 있습니다. 오라일리는 도움이 될 수 있는 "학습 XML"이라는 책을 출판합니다. www.oreilly.com참조하십시오. O'Reilly가 관리하는 http://xml.com/ 웹 사이트에는 여러 가지 유용한 기사와 링크가 있습니다.
XML 표준은 http://www.w3.org있는 월드 와이드 웹 컨소시엄에 의해 게시됩니다. 표준은 꽤 건조, 그래서 나는 그들을 읽으려고하지 않는 것이 좋습니다.
XML은 HTML과 유사하며 HTML과 유사한 유산을 가지고 있지만 훨씬 더 범용 인코딩입니다. HTML은 웹 페이지에 표시될 때 데이터가 어떻게 표시되는지 설명합니다. HTML 자체는 숫자가 수량, 가격 또는 주식 번호를 나타내는지 여부를 기록하지 않습니다. 반면 XML은 일반적으로 데이터의 모양에 관심이 없습니다. 데이터가 무엇을 의미하는지설명합니다. XML의 일반적인 응용 프로그램 중 하나는 특정 데이터베이스의 텍스트 인코딩을 만드는 것입니다. XML은이 필드가 숫자 가격이라고 말할 수있는 능력을 가지고 있으며, 그 필드는 그 필드는 기수 재고 번호 등등입니다. XML 문서의 모든 데이터는 텍스트로 인코딩되므로 엔디언스 또는 부동 점 번호의 이진 표현과 같은 끈적끈적한 문제가 사라지도록 합니다. 따라서 XML은 컴퓨터 대 컴퓨터 통신을 위한 좋은 언어로 받아들여지고 있습니다.
XML을 처리하는 도구
XML을 처리하는 두 개의 일반적으로 사용되는 오픈 소스 패키지를 알고 있습니다. 첫 번째는 외국인이고 두 번째는 Xerces입니다. 이 두 패키지는 모두 1999년에 만들어졌습니다. 외국인은 한 개인의 작품이었다; Xerces는 IBM에서 나왔다.
XML을 처리하기위한 두 가지 경쟁 모델이 있습니다. 하나는 문서 개체 모델(DOM)이고 다른 하나는 XML(SAX)에 대한 간단한 API입니다. Expat에서 사용하는 SAX 메서드는 XML 문서를 선형 방식으로 읽으며 태그 요소가 발생할 때마다 처리기 함수를 호출합니다. DOM 메서드는 전체 XML 문서를 읽고 트리 구조구조계층을 만듭니다. SAX를 순차적 액세스 방법으로 생각하고 DOM을 임의 액세스 방법으로 생각할 수 있습니다. Xerces는 SAX와 DOM API를 모두 지원합니다. 외국인에게 DOM API를 제공하는 3자 패키지가 있습니다("simkin"참조).
"XML 문서"라는 용어를 사용하지만 실제로XML 인코딩된 텍스트는 파일 또는 데이터 스트림일 수 있습니다. 일반적으로 텍스트를 수집하고 파서에 전달하는 함수를 제공하므로 모든 소스에서 올 수 있습니다.
EXPAT
Expat는 XML 을 읽고 XML 요소가 나타날 때마다 약간의 조치를 취하도록 설계되었습니다. XML 기반 데이터 스트림을 만들 수 있음을 시사하는 설명서는 본 적이 없습니다. 외국인은 C로 작성됩니다. 펄과 자바에 대한 Xerces의 버전도 있습니다.
VOS에 외국인 포트는 다음에서 사용할 수 있습니다.
외국인을위한 마스터 웹 사이트는 다음과 같은 것입니다 :
및
외국인에 대한 좋은 소개는 소스 포지 홈 페이지에서 찾을 수 있습니다; 다음은 링크입니다.
http://www.libexpat.org/ 외국인을 사용하는 다른 오픈 소스 패키지에 대한 링크를 찾을 수 있습니다.
제르세스
Xerces는 XML 데이터 스트림을 읽고 쓸 수 있습니다. Xerces는 C++로 작성되었으며 C++ 프로그램에서 호출하도록 설계되었습니다.
톰 Mallory와 나는 2008 년 중반에 Stratus 고객을위한 Xerces 버전 2.8.0을 이식했다. 우리의 목표는 V 시리즈 플랫폼이었습니다. Xerces의 현재 버전은 3.0.1입니다. 이 포트의 사본을 가져오고 싶다면 계정 팀에 문의하십시오.
xerces의 마스터 사이트는 다음과 입니다.
어떤 것을 사용할 것인가?
XML 인코딩 된 문서를 구문 분석하고 처리가 데이터 스트림의 순차적 읽기와 호환되는 경우 외국인을 사용하는 것이 좋습니다. C로 작성되었지만 모든 VOS 프로그래밍 언어가 다른 프로그래밍 언어로 작성된 함수 및 하위 루틴을 호출할 수 있다는 사실 덕분에 VOS 언어에서 외국인을 호출할 수 있습니다.
요구 사항에 XML 문서에서 임의 액세스 작업을 수행하는 기능이 포함되어 있거나 XML을 만들려는 경우 C++에서 편안하게 프로그래밍할 수 있는 경우 Xerces를 사용하는 것이 좋습니다.
응용 프로그램에 XML 문서를 처리하는 기능을 추가하는 데 도움이 필요한 경우 해당 지역의 Stratus 계정 팀에 문의하십시오.