2012-01-28 4 views
1

아무도 나에게 xs:list 데이터 유형의 사용을 설명해 주시겠습니까? .xml 파일에 해당 레이블이있는 개체 목록을 만드는 데 필요한 레이블 목록이 있어야하므로 내 응용 프로그램에 적합합니다. 내 질문은 : 목록의 항목을 반복하고 (내 programm 안에 컬렉션을 채워야합니까?) 또는 XML 목록으로 컬렉션을 채우는 자동화 된 메커니즘이 있습니까? 수동으로해야한다면 xs:list과 공백으로 구분 된 문자열의 차이점은 무엇입니까?XSD xs : 목록 혼란

나는 내 질문에 대한 답변을 얻을 수 있었으면 좋겠다.

EDIT : Qt를 사용하여 XML을 구문 분석합니다. 아마 SAX 경로.

+0

XML 데이터를 어떻게 파싱합니까? 자바로? 기음#? Java, JAXB, DOM 등을 사용한다면 ...? 그에 따라 질문을 업데이트하십시오. –

답변

0

사실, QXmlQuery 클래스는 내가 원했던 것과 똑같습니다. 해당 메서드 bool QXmlQuery::evaluateTo (QStringList * target) constxs:string 값의 시퀀스가 ​​필요하며 target을 채 웁니다.

2

xs:list을 사용하면 코드 생성기를 사용하는 경우 구문 분석되어 콜렉션/배열 데이터 구조로 표시됩니다. 공백으로 구분 된 문자열을 사용하는 경우 일반 문자열로 표시되며 구문 분석을 담당하게됩니다.

차이점은 xsd 기반 코드 생성기를 사용하는 경우뿐입니다. SAX 또는 DOM과 같은 저급 API를 사용하여 구문 분석하는 경우에는 차이가 없습니다.

+0

판게아, 신사입니다. (이유는 아시 잖아요 ...) 내 게시물도보십시오. 우리가 함께 작업하고 있기 때문에 :) - ... 하나 언급하는 것을 잊어 버린 항목은 유효성 검사 비트입니다 ... 건배! –

+0

@PetruGardea 옙 유효하지 않음 ... 게시물을 완성하기 위해 모든 것을 기억하고 추가하기가 어렵습니다 .-) –

2

특정 프로세서 (예 : JAXB 또는 XSD.EXE 등)를 나타내지 않으므로 특정 규칙을 따르지 않아도됩니다. 일반적으로 목록 (및 관련 문제에 대해서는 노동 조합)이 제대로 지원되지 않습니다.

이상적인 세계에서 툴은 목록이며 XML에서 코드 바인딩 시나리오의 생성 된 코드는 필드, 배열 유형을 제공해야합니다.이 필드는 이미 구문 분석 된 항목을 제공합니다. . 도구가 부족한 곳에는 손으로해야합니다. 차이는 없습니다.

그러나 유효성 검사를 수행하면 목록의 각 항목이 자동으로 유효성이 검사됩니다. 그것 없이는, 당신 자신이 다시 살아납니다.

+0

JAXB suuports xs : @XmlList 주석이있는 목록 : http://blog.bdoughan.com/2010/09/ jaxb-collection-properties.html –

+0

감사합니다. Blaise; 그냥 명확히하기 위해, 나는 JAXB가 xsd : list/union을 지원하지 않는다는 것을 암시하지 않을 것이다. 가능한 프로세서를 나열하는 중이었습니다 ... 여전히 JAXB에서 xsd : union이 1.x와 2.x 사이에서 관리되는 방법 (많은 사람들이 이해하지 못했던)은 고통 도구의 길이를 보여주었습니다. 이 공간 ... XSD.EXE는 여전히 xsd : list에 대한 부분 지원 만 제공합니다 (현재는 사용되지 않지만). –

관련 문제