티스토리 뷰
1. xsd 작성하기
xml 안에 표기할 태그들 이름을 명시하여 xsd를 만들어준다.
2. java 파일 자동 생성하기
플러그인을 이클립스내에 깔았두었다면 xsd파일을 우클릭하여 아래와 같이 jaxb를 실행할 수가 있다.
실행을 누르면 아래와 같은 콘솔이 뜨는데,
패키지명과 출력할 디렉토리를 선정한다.
Output directory 옆에 있는 Change라는 버튼을 누르면 아래와 같이 작은 콘솔이 뜨는데, 여기서 소스의 루트 폴더를 선택하면 된다. (보통은 src를 쓰지만 나는 src_dice라고 구분한 폴더를 쓰고 있어서;;;)
그러고 ok누른다음 next를 누르면 아래와 같은 화면이 나타나는데,
아래 AuthDetails의 경우는 엘리먼트 내의 하위 엘리먼트(sub-elements)를 넣어서 나타난것이다.;;
Finish를 누르면 Jaxb가 알아서 처리해서 아래처럼 콘솔창에 잘 생성됐다고 메세지를 뿌려준다.
그리고 패키지 내에 두개의 자바파일이 자동 생성된 것을 볼 수 있다.
(패키지나 프로젝트를 리플래쉬 해 주는 것을 잊지말자!)
3. 활용하기
호출하려는 위치에서 아래와 같이 코딩하면 된다.
writer.toString()해보면 xml형태로 저장된 결과를 확인해 볼 수 있다.
xml 안에 표기할 태그들 이름을 명시하여 xsd를 만들어준다.
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.1"> <xsd:element name="signal"> <xsd:complexType> <xsd:sequence> <xsd:element name="gps_id" type="xsd:string" /> <xsd:element name="date" type="xsd:string" /> <xsd:element name="time" type="xsd:string"/> <xsd:element name="latitude" type="xsd:string"/> <xsd:element name="ns" type="xsd:string"/> <xsd:element name="longitude" type="xsd:string"/> <xsd:element name="ew" type="xsd:string"/> <xsd:element name="speed" type="xsd:string"/> <xsd:element name="heading" type="xsd:string"/> <xsd:element name="odometer" type="xsd:string"/> <xsd:element name="idle_time" type="xsd:string"/> <xsd:element name="gps_event_id" type="xsd:string"/> <xsd:element name="sequence_no" type="xsd:string"/> <xsd:element name="address_yn" type="xsd:string"/> <xsd:element name="address" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="county" type="xsd:string"/> <xsd:element name="country" type="xsd:string"/> <xsd:element name="authorities" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="auth_detail" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="auth_type" type="xsd:string"/> <xsd:element name="auth_name" type="xsd:string"/> <xsd:element name="auth_number" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="operator_message" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element></xsd:schema>
2. java 파일 자동 생성하기
플러그인을 이클립스내에 깔았두었다면 xsd파일을 우클릭하여 아래와 같이 jaxb를 실행할 수가 있다.
실행을 누르면 아래와 같은 콘솔이 뜨는데,
패키지명과 출력할 디렉토리를 선정한다.
Output directory 옆에 있는 Change라는 버튼을 누르면 아래와 같이 작은 콘솔이 뜨는데, 여기서 소스의 루트 폴더를 선택하면 된다. (보통은 src를 쓰지만 나는 src_dice라고 구분한 폴더를 쓰고 있어서;;;)
그러고 ok누른다음 next를 누르면 아래와 같은 화면이 나타나는데,
아래 AuthDetails의 경우는 엘리먼트 내의 하위 엘리먼트(sub-elements)를 넣어서 나타난것이다.;;
Finish를 누르면 Jaxb가 알아서 처리해서 아래처럼 콘솔창에 잘 생성됐다고 메세지를 뿌려준다.
그리고 패키지 내에 두개의 자바파일이 자동 생성된 것을 볼 수 있다.
(패키지나 프로젝트를 리플래쉬 해 주는 것을 잊지말자!)
3. 활용하기
호출하려는 위치에서 아래와 같이 코딩하면 된다.
JAXBContext jc = null; Marshaller marshaller = null; StringWriter writer = null; Signal signal = factory.createSignal(); ObjectFactory factory = new ObjectFactory(); signal.setGpsId( "000001"); signal.setDate( "20091208")); signal.setTime( "033003"); signal.setLatitude( "LAT_NO"); signal.setNs( "DIR_NS"); signal.setLongitude( "LON_NO"); signal.setEw( "DIR_EW"); signal.setSpeed( "SPEED_NO"); signal.setHeading( "HEADING_DG"); signal.setOdometer("ODOMETER_NO"); signal.setIdleTime( "IDLE_TM"); signal.setGpsEventId( "EVENT_ID"); signal.setSequenceNo( "HISTORY_ID"); signal.setAddressYn( "PROC_YN"); signal.setAddress( "STREET_NM"); signal.setCity( "TOWN_NM"); signal.setState( "COUNTY_NM"); signal.setCounty( "COUNTY_NM"); signal.setCountry( "COUNTRY_NM"); Signal.Authorities.AuthDetail sd = null; Signal.Authorities ss = null; ss = new Signal.Authorities(); for ( int i = 0; i < nListSize ; i++) { sd = new Signal.Authorities.AuthDetail(); sd.setAuthName( res[ i].getName()); sd.setAuthNumber( res[ i].getPhoneNumber()); sd.setAuthType( "POLICE"); ss.getAuthDetail().add(sd); signal.setAuthorities(ss); } jc = JAXBContext.newInstance( "com.twotrack.server.dice.jaxb.signal"); marshaller = jc.createMarshaller(); writer = new StringWriter(); marshaller.marshal(signal, writer);
writer.toString()해보면 xml형태로 저장된 결과를 확인해 볼 수 있다.
반응형
'Computer > XML' 카테고리의 다른 글
[JAXB] (0) | 2009.11.13 |
---|---|
[JAXB] XML Binding을 위한 JAXB 참고 URL (0) | 2009.11.11 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 기부피해
- UML
- 나이지리아
- 와코마리아한남동
- java
- 안드로이드
- 새희망씨앗
- 홈택스
- 6월 패밀리세일
- VirtureBox
- 한남동세일
- eclipse
- 패밀리세일
- 라고스
- 새희망씨앗 피해자
- 사업자등록
- 부드러운맛
- 와코마리아팸세일
- MySQL
- 팸세일
- 인도
- 기부사기
- 리터너블
- javascript
- 마라탕 #마라상궈 #마라탕재료 #쉽게만드는마라탕 #중딩입맛 #마라탕잡탕
- 페밀리세일
- 와코마리아
- 단체소송
- 와코마리아 스웨터
- 해외직구
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함