자바 에서 XML 에 관 한 API

자바 의 xml 에 관 한 API 를 간단하게 소개 하면 줄 임 말 을 보면 무엇 을 하 는 지 알 수 있 습 니 다.수준 에 한계 가 있 으 니 널리 양해 해 주 십시오.1,JAXP(Java API for XML Parsing)2,JAXB(Java API for XML Binding)3,JAXM(Java API for XML Messaging)4,JAX-RPC(Java API for XML-RPC)1,JAXP 는 자바 에서 DOM,SAX,XSLT 를 사용 하 는 일반적인 인 터 페 이 스 를 정의 했다.이렇게 하면 프로그램 에서 일반적인 인 터 페 이 스 를 사용 하기 만 하면 구체 적 인 실현 을 바 꿀 필요 가 있 을 때 코드 를 수정 할 필요 가 없다.예 를 들 어,당신 이 사용 하 는 XSLT 프로세서 가 너무 느 려 서 바 꾸 고 싶 습 니 다.당신 은 이전의 코드 를 수정 할 필요 가 없습니다.JAXP 와 관련 된 설정 만 수정 하면 됩 니 다.(뒤에 제 가 상세 하 게 소개 하 겠 습 니 다)공 통 된 인터페이스 로 서 JAXP 도 이른바'최소 공분 모'효과 가 있 습 니 다.즉,지원 하 는 것 이 한계 가 있다 는 것 입 니 다.JAXP 1.0 은 XML 1.0,XML Namespace 1.0,SAX 1.0 및 DOM level 1 을 지원 합 니 다.반면 JAXP 1.1 은 SAX 2.0,DOM level 2,XSLT 1.0 에 대한 지원 을 증가 시 켰 다.Xalan 의 XPath 와 관련 된 인 터 페 이 스 를 사용 하려 면 JAXP 가 지원 되 지 않 고 특정한 Xalan API 에 코드 를 연결 할 수 밖 에 없 음 이 분명 하 다.JAXP 가 실현 되 지 는 않 았 지만 단순 성 으로 인 기 를 끌 었 고 JCP 가 공식 적 으로 추천 하 는 API 가 되 었 다.그것 또한 나무 모양 의 구조 표현 XML 로 사용 방법 에 있어 서 w3c 의 dom 표준 보다 훨씬 간단 하고 사용 하기 쉽다.최신 버 전의 JDOM 은 내부 에서 JAXP 의 API 를 사용 하기 시 작 했 습 니 다.가능 한 한 JAXP 의 API 를 호출 할 것 입 니 다.그렇지 않 으 면 기본 XML 해상도 기 Xerces,XSLT 프로세서 Xalan 을 사용 합 니 다.2.JAXB 는 자바 데이터 대상 과 xml 구조 간 의 양 방향 매 핑 관 계 를 정의 합 니 다.이렇게 하면 자바 대상 을 xml 문서 로 편리 하 게 저장 할 수 있 고 xml 문서 에서 자바 대상 을 예화 할 수 있다.그 구 조 는 이 렇 습 니 다.먼저 xml 의 dtd 와 binding schema(이것 은 xml 의 schema 가 아니 라 자바 대상 과 xml 구조 간 의 매 핑 관 계 를 정의 하 는 xml 문서)가 있어 야 합 니 다.이 두 파일 의 JAXB 를 통 해 xml 문서 구조 와 일치 하 는 자바 소스 파일 을 생 성 할 수 있 습 니 다.컴 파일 한 후에 구체 적 인 xml 문 서 를 통 해 xml 구조 와 일치 하 는 자바 류(생 성 된 클래스)unmarshalling 을 편리 하 게 얻 을 수 있 고 반대로 marshalling 도 가능 합 니 다.xml 의 구조 가 바 뀌 면 bing schema 를 다시 쓰 고 컴 파일 자바 류 를 다시 만들어 야 한 다 는 단점 도 뚜렷 하 다.sun 의 동작 은 항상 느 립 니 다.JAXB 가 출시 되 기 전에 xml data binding 에 사용 되 는 프레임 워 크 가 있 습 니 다.다시 한 번 보 겠 습 니 다.xml databinding 을 하 는 것 도 마찬가지 지만 JAXB 의 프레임 워 크 를 실현 하지 못 했 습 니 다.1.Castor Castor 는 XML 에 대한 연결 을 지원 할 뿐만 아니 라 LDAP 대상 도 지원 합 니 다.OQL 로 SQL 조 회 를 대상 으로 매 핑 합 니 다.그리고 JDO 에 대한 지지.JAXB 와 달리 xml 의 Schema 만 필요 합 니 다.xml 의 Schema 를 통 해 해당 하 는 자바 소스 코드 를 만 들 고 컴 파일 한 후에 marshalling 과 unmarshalling 을 만 들 수 있 습 니 다.둘째,Zeus Zeus 는 Castor 와 JAXB 에 비해 classgeneration 방면 에서 절 차 를 많이 했 기 때문에 DTD,XML Schema,TREX 등에 대한 다양한 구속 관 계 를 지원 할 수 있다.하지만 지금 은 이 프로젝트 를 그만 둔 것 같다.3.Quick Quick 도 매우 유연 한 프레임 워 크 로 상세 한 상황 은 구 글 에서 확인 할 수 있 습 니 다.3.JAXM JAXM 은 SOAP 통신 에 접근 방법 과 전송 메커니즘 을 제공 하 는 API 입 니 다.현재 SOAP 1.1 규범 및 동기 화 및 비동기 통신 을 지원 합 니 다.JAXM 은 대량의 서 비 스 를 정 의 했 습 니 다.JAXM 의 실현 제품 은 이러한 서 비 스 를 제공 하여 개발 자가 복잡 한 통신 시스템 에 직면 하지 않도록 할 것 입 니 다.JAXM 시스템 구조 에는 두 가지 중요 한 구성 요소 가 포함 되 어 있 습 니 다.JAXM Client 와 Provider.Client 는 보통 J2EE 웹 이나 EJB 용기 의 일부분 으로 작 성 된 프로그램 이 JAXM 서 비 스 를 방문 하 는 능력 을 제공 합 니 다.한편,Provider 는 서로 다른 방식 으로 이 루어 질 수 있 으 며 주로 SOAP 메 시 지 를 보 내 고 받 는 것 을 책임 진다.이렇게 하면 JAXM 의 API 를 직접 사용 하여 SOAP 메 시 지 를 직접 보 내 고 받 을 수 있다.4,JAX-RPC JAX-RPC 는 원 격 프로 세 스 를 xml 로 호출 하 는 자바 API 입 니 다.SOAP 기술 을 기반 으로 SOAP 를 기본 프로 토 콜 로 사용 합 니 다.이렇게 하면 개발 자 에 게 방법,파라미터,반환 값 만 볼 수 있 고 밑바닥 의 soap 통신 은 모두 숨겨 져 있어 개발 자 들 이 직접 접촉 할 필요 가 없다.JAXM 과 JAX-RPC 는 웹 서비스 에서 중요 한 역할 을 한다.보충:JAXP 프레임 워 크 에서 구체 적 으로 실현 되 는 절 차 를 찾 습 니 다.JDK 1.4 는 JAXP 의 참고 실현 입 니 다.Crimson 의 DOM,SAX 해상도 기,Xalan 의 XSLT 프로세서 입 니 다.다른 실현 으로 대체 하려 면 JAXP 프레임 워 크 에서 실현 되 는 구체 적 인 절 차 를 찾 아야 합 니 다.1.우선,알고리즘 은 자바 x.xml.transform.Tranformer Factory 와 같은 시스템 속성 을 통 해 구체 적 으로 실 현 된 종 류 를 찾 습 니 다.명령 행 에서 자바-Djavax.xml.transform.Transformer Factory=com.foo.Concrete Transformer Your App Concrete Transformer 는 Transformer Factory 를 실현 하 는 하위 클래스 입 니 다.ant 를 사용한다 면 build file 에서 지정 할 수 있 습 니 다.마찬가지 로 javax.xml.parsers.document.uilderFactory 와 javax.xml.parsers.SAXbuilderFactory 속성 이 있 습 니 다.2.이 어 시스템 속성 에 지정 되 지 않 으 면 JAXP 는 JRE 디 렉 터 리 에서 lib/jaxp.properties 속성 파일 을 찾 습 니 다.일반적인 properties 파일 처럼 name=value 로 구성 되 어 있 습 니 다.자바 x.xml.transform.TransformerFactory=com.foo.ConcretTransformer 가 있다 고 가정 하면 JAXP 는 해당 하 는 TransformerFactory 를 사용 하여 이 루어 집 니 다.자바 프로그램 에서 JRE 가 있 는 디 렉 터 리 를 다음 코드 로 얻 을 수 있 습 니 다:String javaHomeDir=System.getProperty("java.home");그러나 일부 IDE 에서 사용 하면 IDE 는 JBuilder 와 같은 자바 홈 의 값 을 바 꿀 수 있 습 니 다.3.jaxp.properties 가 존재 하지 않 거나 해당 하 는 값 이 없 으 면 JAXP 는 JAR 파일 의 서비스 제공 체 제 를 사용 하여 정확 한 하위 클래스 를 찾 습 니 다.쉽게 말 하면 jar 파일 의 META-INF/services 디 렉 터 리 에 javax.xml.transform.Transformer Factory 라 는 파일 을 새로 만 들 수 있 습 니 다.이 파일 에는 com.foo.Concrete Transformer 한 줄 만 있 으 면 됩 니 다.4.마지막 으로 위의 3 단계 에서 구체 적 인 실현 을 찾 지 못 하면 JAXP 는 결 성 된 실현:Crimson 과 Xalan 을 사용 합 니 다.

좋은 웹페이지 즐겨찾기