2012-07-10 4 views
3

이 기능이 존재하지 않는다고 추측 하겠지만, 마지막으로 한 번만 시도해 보겠습니다.XSD : 이전 속성의 값을 기반으로 속성을 정의하십시오.

저는 유효성을 검사하려고하는 XML 구조가 있습니다.이 구조를 제어 할 수 없습니다.

이 구조에는 여러 개의 "조건"태그가있을 수 있습니다. 각 태그에는 "유형"속성이 있으며 그 태그의 나머지 속성은 해당 유형에 따라 다릅니다. 예를 들어 그렇게처럼 보였다 그래서 만약 :이 작음을 입력 않다면 다음

<Condition type="LessThan" maxAmount="3"> 
    <Effect type="Add" value="2" /> 
</Condition> 
<Condition type="GreaterThan" minAmount="1"> 
    <Effect type="Transform" action="Skew" value="4" /> 
    <Effect type="Transform" action="Stretch" value="3" /> 
</Condition> 
<Condition type="Range" minAmount="1" maxAmount="3"> 
    <Effect type="YouGetTheDrift" /> 
</Condition> 

, 그것은 단지 maxAmount 태그 등을 필요로

온 속성 필수/선택/금지 기반을 만들 수있는 방법은 없습니다

이전 속성의 값, 헤이?

유형별 고정 값 및 유형별 맞춤 속성 세트가있는 여러 조건 태그로 선택을 시도했지만 이름이 같은 태그에 대해 불만을 표시했습니다.

답변

4

설명하는 기능의 이름은 "동시 발생 제한 사항"이며 XSD 1.0에서는 지원되지 않습니다.

"조건부 유형 지정"구문을 사용하여 XSD 1.1에서이 작업을 수행 할 수 있습니다. 여기서 요소 유형은 해당 속성 값에 따라 다릅니다. 당신은 또한 주장을 사용하여 그것을 할 수있다. XSD 1.1은 이제 최종 W3C 권장 사항이며 Xerces and Saxon에서 구현됩니다.

+0

감사합니다. 그 동안에는 1.1을 주류로 삼을 때 그 일을 다시 바라 볼 것입니다. – Alex

1

맞습니다.이 기능은 존재하지 않습니다.

Schematron에서 수행 할 수 있지만 프로젝트에 적합한 지 여부는 알 수 없습니다.

관련 문제