2015-01-14 2 views
0

XML 파일을 구문 분석하고 모델을 생성하려고합니다. 간단한 XML 라이브러리를 사용하고 있습니다. 내 XML은 다음과 같습니다객체 참조 생성을 사용하여 XML 구문 분석

<?xml version="1.0" encoding="utf-8"?> 
<root cycles_count="2"> 
    <shifts> 
    <shift id="0" name="first"/> 
    <shift id="1" name="second"/> 
    <shift id="2" name="third"/> 
    <shift id="3" name="fourth"/> 
    </shifts> 
    <cycles> 
    <cycle name="A" start_date="1334620800000"> 
     <cycle_shift id="0" /> 
     <cycle_shift id="0" /> 
     <cycle_shift id="1" /> 
    </cycle> 

    <cycle name="B" start_date="1334620800000"> 
     <cycle_shift id="1" /> 
     <cycle_shift id="1" /> 
     <cycle_shift id="2" /> 
    </cycle> 
    </cycles> 
</root> 

같은 id에 따라 shift-cycle_shift에서 객체 참조를 만드는 방법 어떤 방법이 있나요? 이와 같은 (단순화 된 버전)을 얻고 싶습니다.

@Root 
public class Shift { 

    @Attribute 
    int id; 

    @Attribute 
    String name; 
} 

@Root 
public class Cycle { 

    @ElementList 
    List<Shift> shifts; // shifts connected by id's 
} 

xml 스키마 변경도 가능합니다. 미리 감사드립니다.

+0

은 참조 http://stackoverflow.com/questions/17171504/simple-xml-framework-having-an-inline-like- (필자는 inline 수정을 사용하고 있습니다) behavior-for-object-in-elementm? rq = 1 –

답변

0
  1. 손떨림들을 보면서 키와 값의 모든 사이클을 통해
  2. 루프와 Shift 키 자체와 시프트의 ID와 사전을 만들기
  3. 그 개체를 만들고 그 객체를 생성
  4. 해당주기에 속한 목록 이동 목록을 만들 때 Cycle의 속성에서 ID를 참조하고 앞서 만든 사전에서 Shift를 찾아 목록에 추가하면됩니다.

그래도 될까요?

+0

간단한 구문 분석을 사용하지 않고 Simple Xml을 사용하고 싶습니다. – skywall

0

당신은 Shift 키의 이름과 속성 optional을 설정하고 cycle_shift 제거하기 만

<?xml version="1.0" encoding="utf-8"?> 
<root cycles_count="2"> 
    <shifts> 
    <shift id="0" name="first"/> 
    <shift id="1" name="second"/> 
    <shift id="2" name="third"/> 
    <shift id="3" name="fourth"/> 
</shifts> 

<cycle name="B" start_date="1334620800000"> 
    <cycle_shift id="1" /> 
    <cycle_shift id="1" /> 
    <cycle_shift id="2" /> 
</cycle> 

대신 이동 및 사용할 수 있습니다 요 UR 의사 코드는 다음과 같이 될 것입니다 :

@Root 
public class Cycle { 

@ElementList(inline=true) 
List<Shift> shifts; // shifts connected by id's 
} 
+0

제 질문에 대한 답변이 아닌 것 같습니다. – skywall