2016-11-04 5 views
0

키와 keyref를 사용하여 참조 목록 (IDREFS 유형의 요소처럼)을 작성하여 목록의 각 항목 (아래 예제의 링크) 링크의 @name 속성을 참조합니다.XML 스키마 - IDREFS로 "list"유형의 요소

없는 작품,하지만 난 것처럼 뭔가 쓰기 않습니다 아래의 코드 :

<xs:element name="root"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Node"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element name="Links"> 
         <xs:simpleType> 
          <xs:list itemType="xs:string" /> 
         </xs:simpleType> 
         <xs:element> 
        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
      <xs:element name="Link"> 
      <xs:complexType> 
       <xs:attribute type="xs:string" name="name" use="required" /> 
       <xs:attribute type="xs:string" name="source" use="required" /> 
       <xs:attribute type="xs:string" name="destination" use="required" /> 
      </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:key name="LinkKey"> 
     <xs:selector xpath="Link" /> 
     <xs:field xpath="@name" /> 
    </xs:key> 
    <xs:keyref name="LinkRef" refer="LinkKey"> 
     <xs:selector xpath="Node" /> 
     <xs:field xpath="Links" /> 
    </xs:keyref> 
<xs:element> 

대신 :

<xs:element name="root"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Node"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element name="Links" type:"xs:IDREFS" /> 
        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
      <xs:element name="Link"> 
      <xs:complexType> 
       <xs:attribute type="xs:ID" name="name" use="required" /> 
       <xs:attribute type="xs:string" name="source" use="required" /> 
       <xs:attribute type="xs:string" name="destination" use="required" /> 
      </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
<xs:element> 

은 가능합니까?

답변

0

아니요, key 및 keyref를 사용하여 불가능합니다. XSD 1.1 어설 션을 사용해야합니다.