
핸들러 등록을 통한 스트림 지향 XML 파싱용 C 라이브러리로, UTF-8/UTF-16 인코딩 및 autoconf 기반 빌드 시스템을 지원합니다. xmlwf 도구 및 참조 매뉴얼을 포함합니다.
이것은 1997년 James Clark이 시작한 XML 파싱용 C 라이브러리인 Expat입니다. Expat은 스트림 지향 XML 파서입니다. 즉, 파싱을 시작하기 전에 파서에 핸들러를 등록한다는 의미입니다. 이 핸들러들은 파서가 파싱 중인 문서에서 관련 구조를 발견할 때 호출됩니다. 시작 태그는 핸들러를 등록할 수 있는 구조 유형의 한 예입니다.
Windows 사용자는 사전 컴파일된 라이브러리와 실행 파일, 그리고 개발자를 위한 소스 코드를 모두 포함하는 expat_win32 패키지를 사용해야 합니다.
Expat은 자유 소프트웨어입니다. 이 패키지와 함께 배포되는 COPYING 파일에 포함된 라이선스 조건에 따라 복사, 배포, 수정할 수 있습니다. 이 라이선스는 MIT/X Consortium 라이선스와 동일합니다.
Git 저장소에서 체크아웃하여 Expat을 빌드하는 경우, GNU autoconf와 libtool 도구를 사용하여 configure 스크립트를 생성하는 스크립트를 실행해야 합니다. 이 작업을 수행하려면 autoconf 2.58 이상이 필요합니다. 다음과 같이 스크립트를 실행하십시오:
./buildconf.sh
이 작업이 완료되면 소스 배포판에서 빌드할 때와 동일한 지침을 따르십시오.
소스 배포판에서 Expat을 빌드하려면 먼저 최상위 배포 디렉터리에서 구성 셸 스크립트를 실행합니다:
./configure
configure에 제공할 수 있는 많은 옵션이 있습니다(--help 옵션과 함께 configure를 실행하면 확인할 수 있습니다). 하지만 가장 관심을 끄는 것은 설치 디렉터리를 설정하는 옵션입니다. 기본적으로 configure 스크립트는 libexpat을 /usr/local/lib에, expat.h를 /usr/local/include에, xmlwf를 /usr/local/bin에 설치하도록 설정합니다. 예를 들어 /home/me/mystuff/lib, /home/me/mystuff/include, /home/me/mystuff/bin에 설치하려면 다음과 같이 configure에 알릴 수 있습니다:
./configure --prefix=/home/me/mystuff
또 다른 흥미로운 옵션은 줄 번호, 열 번호 및 전체 바이트 인덱스에 대한 64비트 정수 지원을 활성화하는 것입니다:
./configure CPPFLAGS=-DXML_LARGE_SIZE
그러나 이러한 수정은 ABI를 깨는 변경이므로 일반적인 용도(예: Linux 배포판의 일부)에는 권장되지 않으며, 특별한 요구 사항이 있는 빌드를 위한 것입니다.
configure 스크립트를 실행한 후 make 명령이 빌드를 수행하고 make install이 적절한 위치에 설치합니다. 추가 make 옵션에 대해 알아보려면 Makefile을 살펴보십시오. 설치 대상 디렉터리에 쓰기 권한이 있어야 한다는 점에 유의하십시오.
기본 UTF-8 대신 UTF-16 인코딩으로 문서 정보를 제공하도록 Expat을 빌드하려면(make distclean을 실행한 후) 다음 지침을 따르십시오. xmlwf가 아직 이 컴파일 모드를 지원하지 않으므로 --without-xmlwf로 구성한다는 점에 유의하십시오:
라이브러리 이름으로 libexpatw.la를 사용하도록 Makefile.am 파일들을 대량 패치합니다:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
Makefile.in 파일을 다시 작성하도록 automake를 실행합니다:
automake
unsigned short(및 버전/오류 문자열은 char)로 UTF-16 출력을 하려면,
다음을 실행합니다:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
UTF-16을 wchar_t로 출력(버전/오류 문자열 포함)하려면 다음을 실행합니다:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
참고: 후자의 경우 libc도 -fshort-wchar로 컴파일되어야 합니다.
make를 실행합니다(xmlwf는 제외됨).
make install을 실행합니다(역시 xmlwf는 제외됨).
DESTDIR 사용이 지원됩니다. 다음과 같이 작동합니다:
make install DESTDIR=/path/to/image
메이크파일 내에서 설정된 DESTDIR을 재정의합니다. 변수 설정 우선순위는 다음과 같기 때문입니다:
참고: 이는 Expat 라이브러리 자체에만 적용되며, xmlwf 및 테스트의 UTF-16 버전 빌드는 현재 지원되지 않습니다.
구성에 autoconf를 사용하는 프로젝트에서 Expat을 사용하는 경우 conftools/expat.m4의 프로빙 매크로를 사용하여 Expat을 포함하는 방법을 결정할 수 있습니다. 자세한 내용은 해당 파일 상단의 주석을 참조하십시오.
참조 매뉴얼은 이 배포판의 doc/reference.html 파일에서 확인할 수 있습니다.