실전 xml 구조 해석 의 XmlBeans 사용


최근 항목 에 xml 문자열 을 만 드 는 데 필요 한 것 이 있 습 니 다:
제3자 합작 파트너 가 요청 을 제출 합 니 다. 저 희 는 server 측 으로서 DB 에서 조건 에 맞 는 기록 을 조회 한 다음 에 xml 문자열 로 구성 하여 제3자 합작 파트너 에 게 되 돌려 줍 니 다.
 
예전 에 dom 의 사용 경험 이 있 었 지만 dom 의 단점 은 모두 가 알 고 있 습 니 다. xml 가 복잡 할 때 성능 이 좋 지 않 습 니 다.DB 에 기록 이 많 을 때 구조 가 필요 한 xml 는 복잡 하 다.인터넷 에 서 는 XmlBeans 가 좋다 고 하 는데 이번 에는 사용 해 보 세 요. 다음은 구체 적 인 응용 과정 입 니 다. 
 
 
 
1.         준비 작업
 
1. XmlBeans 에 필요 한 소프트웨어 다운로드: XmlBeans 설치 패키지 (여 기 는 XmlBeans 2.2.0 을 예 로 들 면)
2. 환경 변 수 를 설정 합 니 다 (windows 에서 Linux 와 기본적으로 일치 합 니 다)
(1)  PATH 환경 변 수 를 수정 하여 xmlbean \ bin 디 렉 터 리 를 추가 합 니 다:% XMLBEANSHOME%\bin.
(2)  CLASSPATH 환경 변 수 를 수정 하고 XmlBean 과 관련 된 jar 패 키 지 를 추가 합 니 다.
 
2.         xml 파일 형식 을 정의 하고 xsd 파일 을 생 성 합 니 다.
(1)  필요 에 따라 xml 파일 형식 을 정의 할 수 있 습 니 다. 예 를 들 어:
 
<?xml version="1.0" encoding="UTF-8"?>

<response >

<record>
        <id/> 
        <order_username/>
        <order_time/>
</record>

</response>

 
  
(2)  xsd 파일 생 성.
XML 파일 을 통 해 Schema 파일 을 만 들 수 있 습 니 다. 물론 손 으로 쓰 는 것 이 좋 습 니 다.인터넷 에서 XMLSPY 를 쉽게 찾 을 수 있다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--W3C Schema   XMLSpy v2006 U    (http://www.altova.com)-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified">

       <xs:element name="id" type="xs:string"/>

       <xs:element name="order_time" type="xs:string"/>

       <xs:element name="order_username" type="xs:string"/>

       <xs:element name="record">

              <xs:complexType>

                     <xs:sequence>

                            <xs:element ref="id"/>

                            <xs:element ref="order_username"/>

                            <xs:element ref="order_time"/>

                     </xs:sequence>

              </xs:complexType>

       </xs:element>

       <xs:element name="response">

              <xs:complexType>

                     <xs:sequence>

                            <xs:element ref="record"/>

                     </xs:sequence>

              </xs:complexType>

       </xs:element>

</xs:schema>

  
3.         XmlBeans 명령 을 사용 하여 xml 에 대응 하 는 jar 패키지 와 원본 파일 을 생 성 합 니 다.scomp -src build\src  -out build\testXmlBean.jar schema\test.xsd  -compiler C:\jdk150_12\bin\javac 
scomp 는 testXmlBean. jar 를 생 성하 여 build 디 렉 터 리 에 두 고 소스 코드 를 build \ src 에 생 성 합 니 다. Schema 파일 은 test. xsd 입 니 다. 우 리 는 jar 파일 을 원 합 니 다.
 
4.        testXmlBean. jar 의 클래스 경 로 를 만 듭 니 다.
 
<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">    
  <xb:namespace>  
    <xb:package>test.pkg</xb:package>   
  </xb:namespace>   
  </xb:config>

 
 test. pkg 은 testXmlBean. jar 의 클래스 가 있 는 경로 입 니 다. 이것 은 반드시 제정 해 야 합 니 다.
 
5.        구조 xml 파일.
DB 의 데이터 에 따라 구조 xml 기록 은 제3자 와 의 데이터 통신 에 자주 사용 된다. 
 
 
public static String createXML(List testList) { 
    StringBuffer xmlGen = new StringBuffer(); 
    try{
        ResponseDocument newPODoc = ResponseDocument.Factory.newInstance(); 
        Response response = newPODoc.addNewResponse(); 

        for(int i = 0; i < testList.size(); i++){ 
            TestDTO testDTO = (TestDTO) testList.get(i); 
            Record record = response.addNewRecord(); 
            record.setId(String.valueOftestDTO.getId)));   
            record.setOrderUsername(testDTO.getUsername());  
            record.setOrderTime(testDTO.getSubmitdate()); 
            response.setRecordArray(i, record); 
        } 

        //  xml   
      newPODoc.save(new File("/data/test/test" +   DateUtils.dateToLongString(new Date()) + ".xml")); 

        xmlGen.append(newPODoc.xmlText());//xml    
    }catch(Exception e){
        e.printStackTrace(); 
      } 

      return xmlGen.toString(); 

} 


좋은 웹페이지 즐겨찾기