2012-10-17 7 views
0

내 응용 프로그램의 일부 조건을 기반으로 XML 문서를 만들고 있습니다. 내 XML 안의 요소의 수는 항상 가변적입니다.XML 요소의 가변 개수의 XSD

<TransactionTypes> 
    <X value="false" text="" /> 
    <O value="false" text="" /> 
    <E value="false" text="" /> 
    <P value="false" text="" /> 
    <C value="false" text="" /> 
    <K value="false" text="" /> 
</TransactionTypes> 

와 같은 다른 시간 : 항상 요소의 이름의 측면에서 차이가 TransactionTypes의 내부

<TransactionTypes> 
    <TT value="false" text="" /> 
    <EP value="false" text="" /> 
    <PY value="false" text="" /> 
</TransactionTypes> 

그래서 자식 요소지만, 예를 들어, 한 번 그것은처럼 보일 수 있습니다 그들은 항상 값과 텍스트 특성을 가지고 있습니다. 어떻게하면 XSD를 만들 수 있습니까?

답변

0

와일드 카드에 XSD 제한을 설정 한 다음 와일드 카드 요소의 특성을 지정할 수 있다고 생각하지 않습니다.

유일하게 가능한 태그는 "어떤"수 있습니다 : http://www.w3schools.com/schema/schema_complex_any.asp

그리고 어떤 속성 "어떤이"있을 수는 정의 할 수 없습니다. 다른 해결책이 있다고 생각하지 않습니다. "모든 종류의 요소가있을 수 있습니다."라고 말한 것처럼 ... "TransactionTypes"의 하위 요소를 모두 정의 할 수 있다면 더 잘 수행 할 수 있습니다. 아무리 많든간에. 모든 자식 요소를 동일한 complexType에 매핑하고 속성 값/텍스트를 정의한 다음 한 번만 정의 할 수 있습니다. 그러나 와일드 카드가 작동하지 않습니다.

세바스찬

당신이 TransactionTypes 요소의 주장을 정의 할 수 있습니다 XSD 1.1
0

:

<xs:assertion test="every $c in * satisfies @value='false' and @text=''"/> 

그러나 XSD는 당신이 당신의 XML에 임의의 제약을 표현할 수 있도록 설계되지 않는다는 지적 가치 오히려 XSD 설계자가 잘 설계된 XML로 생각하는 것에서 발견 할 수있는 제약 조건을 설명합니다. 이 XML은 해당 범주에 속하지 않는 것으로 보입니다.