본문 바로가기

xml

네임스페이스를 갖는 스키마 (1) 네임스페이스를 갖는 스키마 분석 스키마 언어는 네임스페이스를 고려해서 설계가 되었기 때문에 DTD와는 달리 스키마 언어 차원에서 네임스페이스에 대한 언급 부분이 있다. 스키마 언어가 네임스페이스를 갖기 위해서는 다음과 같은 문법을 사용한다. .... schema 엘리먼트의 타겟 네임스페이스 속성(targetNamespace)에는 스키마 문서에서 정의되는 새로운 마크업 언어가 가질 네임스페이스를 지정해주면 된다. elementFromDefalut 속성은 스키마 문서에서 선언된 엘리먼트들이 주어진 타겟 네임스페이스에 속할 것인지를 언급해 주면 된다. 속성값이 qualified라면 주어진 타겟 네임스페이스에 속하게 되고, XML 문서에서 엘리먼트를 사용할 경우에 반드시 네임스페이스 접두사를 붙여서 사용.. 더보기
XML Schema Definitions (XSD) 1-3 XSD (XML Schema Definitions) XML 문서의 형태를 정의하기 위한 DTD에는 지원되지 않는 기능들이 많다. 대표적인 것이 태그 중복을 허용하지 않고, 데이터 타입의 정의에 제약이 많다는 것들이다. 이런 것들은 DTD의 치명적인 결함이 되었고, 따라서 여러 업체와 기구들은 DTD의 제약을 넘어서는 XML 문서를 정의하는 규약을 만들기 시작했다. XML 1.0이 발표되기 전에 마이크로소프트는 XML-Data라는 스키마 언어를 만들었다. 그 후에 IBM과 마이크로소프트가 공동으로 DCD(Document Content Description)이라는 스키마 언어를 만들었으며 CommerceOpen에서는 XML-Dev에서 DDML (Document Definition Markup Lang.. 더보기
Xerces C에서 스키마 참조 없는 XML 문서에 대해 스키마 주고 validation 수행 보통 XML 문서에서는 DTD나 XSD를 참조할 수 있도록 해주는데,그것이 없는 일반 문서를 DTD나 XSD 선언을 주고 이를 기준으로 유효성 검사를 수행하도록 하기 위한 방법을 찾아보려고 작성했던 sample code이다.ps. 제발 매뉴얼 좀 잘 읽어보고 짜자고... ㅡㅡ^/* * DTD 또는 스키마 참조가 없는 XML 문서를 DTD나 스키마를 지정하여 * 유효성 검사를 수행할 수 있는 방법을 찾기 위해 작성된 예제 코드  *        Dec 11, 2007  *        from Bart */#include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE int main(int arg.. 더보기
xerces 지원 문자셋 Xerces에서는 다음과 같은 문자셋을 기본적으로 지원한다. (l10n은 지원안한다.. 이구..) XMLUni::fgEBCDICEncodingString XMLUni::fgUCS4BEncodingString XMLUni::fgUCS4LEncodingString XMLUni::fgUSASCIIEncodingString XMLUni::fgUTF8EncodingString XMLUni::fgUTF16BEncodingString XMLUni::fgUTF16LEncodingString XMLUni::fgXMLChEncodingString StylesheetExecutionContextDefault::createFormatterToXML 를 통해서 Encoding 방식을 확인할 수 있다. ICU를 통해서 l10n을.. 더보기
C/C++로 XML 파싱하기(DOM) 일단, http://xml.apache.org/xerces-c/에서 라이브러리를 다운로드 받아야 한다. 이 사이트에서 Xerces-C++ is a validating XML parser written in a portable subset of C++. 이래 나왔네요.. 즉, C++로 XML를 파싱하도록 합니다. 몇개 파싱 라이브러리가 존재하는데 이것은 꽁자더군요..^^;; 아무튼 이 사이트에 있는 설치를 보고 설치합니다. lib, 그에 맞는 filepath를 Visual c++에 설정을 해야한다. 에러가 좀 많이 나서 DOM 기반 파서만 여기서 풀어놓겠습니다. include은 다음과 같이 합니다. #include #include #include #include #include #include #inclu.. 더보기