2014-02-12 2 views
0

나는 형에게 다음의 XSD를 만들기 위해 노력하고최소값에 대한 변수 값이있는 XSD xs : sequence의 발생?

<xs:element name="Command"> 
    <xs:complexType> 
     <xs:attribute name="NumberofArgument" type="xs:integer" use="required"/> 
     <xs:sequence> 
       <xs:element name="Argument" minOccurs=variable> 
        <xs:complexType> 
         <xs:attribute name="argumentName" type="xs:string"/> 
         <xs:attribute name="argumentType" type="argumentType"/> 
        </xs:complexType> 
       </xs:element> 
     </xs:sequence>   
    </xs:complexType> 
</xs:element> 

그래서 내가 먼저 속성 "NumberOfArguments"를 정의하고 그때 주어진 명령에 대한 인수의 실제 수를 확인하는 데 사용할 만들 어떤 XML.

<Command CommandName="String" number="1"> 
    <Argument argumentName="String" argumentType="defined"/> 
</Command> 

제 질문은 이것을 수행하는 것이 가능한지, 그렇지 않은 경우 어떻게해야합니까?

+0

단순히 스키마 유효성 검사만으로는 가능하지 않습니다. 원하는 언어로 '사실 이후'를 처리해야합니다. –

답변

1

Saxon 스키마 프로세서에는 XSD 1.1 어설 션에서 참조 할 수있는 매개 변수를 선언 할 수있는 실험용 확장이 있습니다. 표준 언어에는 아무 것도 없습니다.

당신을 위해 작동 할 수 있습니다 접근 방법은 XML 엔티티 참조

minOccurs="&min;" 

로는 minOccurs을 정의하고 다음 유효성 검사하기 전에 설정할 수 있습니다 외부 파일에 엔티티의 확장을 정의하는 것입니다

삽화.

+0

고마워,하지만이 프로세서에 대한 참조 링크를 제공해 주시면 자세히 읽을 수 있습니다. –

+0

http://www.saxonica.com/documentation/index.html#!schema-processing –