jaxp 와 xerces 의 관계가 어떻게 되나요?
xerces 가 없어도 jaxp 만으로 xml을 다루는 코드를 작성할 수 있나요?
방금 간단히 xml 을 만드는 코드를 만들고(jaxp 만을 사용했습니다.) 컴파일시에
javac -cp xercesImpl.jar:xml-apis.jar:xmlParserAPIs.jar Test.java
와 같이 컴파일을 하고
java -cp xercesImpl.jar:xml-apis.jar:xmlParserAPIs.jar Test
와 같이 컴파일을 했습니다.
헌데 javac Test.java, java Test 와 같이 컴파일 및 실행을 해도 아무 문제가 안 생기네요. class path 에 혹시나 xerces 가 등록되어 있나 살펴보아도 전혀 등록되어 있지 않습니다.
xerces 홈페이지에 보니까 아래와 같은 말이 있던데요..
"Always try to use only the standard XML APIs when writing XML applications. This will keep your application shielded from changes in the underlying implementation of those standard APIs and also gives you more flexibility to change the implementation of the standard pieces without modifying your application code."
그럼 jaxp 만으로 코딩하면 되지, 왜 굳이 xerces 같은게 있나요?
jaxp 랑 xerces 가 도대체 무슨관계인지 감이 안오네요..
3년전 쯤 전 일인데, [url=http://people.apache.o
3년전 쯤 전 일인데, 이 글을 읽어 보면 감이 잡힐 겁니다.
요약을 하면 처음 자바 xml 파서는 IBM에서 쓸만하게 만들어 그것을 아파치에 넘겨 xerces와 xalan 프로젝트가 아파치 명의하에 시작이 되었습니다. (5년전 쯤 이던가?) 이를 썬에서 J2se1.4 부터 JCP를 통해 표준화한 것이 JAXP입니다. (3년전에 시작되었습니다.) 최근의 xerces와 xalan는 이 표준인 JAXP를 따르고, xerces 2.7.1과 J2SE 5.0은 JAXP1.3 API를 동일하게 사용을 합니다.
----
I paint objects as I think them, not as I see them.
atie's minipage
Xerces는 JAXP의 구현입니다.Xerces를 CLASSPAT
Xerces는 JAXP의 구현입니다.
Xerces를 CLASSPATH에 안 넣어도 컴파일이 되는 이유는, Sun에서 배포하는 rt.jar 안에 Xerces가 들어 있기 때문입니다. jar tf 로 확인해 보세요.
--feanor
jaxp에 대해서 여러가지로 정의하시는 것 같은데...제가 알고 있는
jaxp에 대해서 여러가지로 정의하시는 것 같은데...
제가 알고 있는 jaxp는
"xml parser factory builder"입니다.
즉, 특정한 파서 라이브러리에 의존하지 않는 방법으로 w3c의 표준 dom, sax를 사용할 수 있도록 하기 위한(해당 파서의 구현 클래스를 로딩할 수 있는) 일종의 래퍼입니다.
xerces는 jaxp를 통해 인스턴스화 할수 있는 파서 중의 하나입니다. crimson이나 dom4j 등도 jaxp를 통해서 사용할 수 있습니다.
물론 직접 xerces, crimson등의 팩토리나 생성자(org.apache.xserces나 org.dom4j.패키지의 클래스들이겠죠)를 사용해도 그만이겠지만 jaxp를 통해서 사용하면 소스 코드 수정없이 파서를 교체할 수 있는 장점이 생기죠. 시스템 프로퍼티로 사용할 파서를 지정할 수 있습니다.
위에 분에 rt.jar에 xerces가 들어있다고 하셨는데...
rt.jar에 들어있는 xml파서구현은 crimson입니다. 그리고 말씀하신대로 다른 구현체가 없다면 crimson이 기본으로 사용됩니다.
특별히 xerces를 써야하는 이유가 없다면(dom level3의 추가 API라던가 xerces의 유틸리트 클래스들) crimson으로 대부분의 경우 충분합니다.
길어졌는데... 간단히말하면 org.w3c.xml패키지의 클래스들만 사용해서 XML프로그래밍을 할 수 있도록 도와주는 API입니다.
----
the smile has left your eyes...
그럼 xerces 를 사용하도록 할려면 시스템 프로퍼티를 어떻게 설
우선 위에 모든 분들께 감사드립니니다. :D
한가지만 더 여쭈께요.
xerces 를 사용하도록 하려면 시스템 프로퍼티를 어떻게 설정하면 되나요? 궁금하네요.
댓글 달기