2017-01-25 2 views
0

나는 key:keyref을 xml로 이해하는 데 열중하고있다. 내가 와이너리에 와인에서 key:keyref을 만들기로 strugling하고 여기에key-keyref로 고생하다

<Regions> 
    <Region Name="Simple region name"> 
     <NumberOfWineries>3</NumberOfWineries> 
     <Winery Name="Simple winery"> 
      <City>Simple city</City> 
      <Owner>Simple owner</Owner> 
      <Image photo="img_winary"/> 
      <NumberOfDiffrentWines>2</NumberOfDiffrentWines> 
      <Wines> 
       <Wine Name="Cool wine" Vintage="2003"> 
        <Characteristics> 
         <Color>blue</Color> 
        </Characteristics> 
       </Wine> 
      </Wines> 
     </Winery> 
    </Region> 
    <Region....> 
     ..... 
    </Region> 
</Regions> 

내 구조.

나는 포도주 양조장에서 고유 한 id을 만들고 그 포도주마다 그 이드를 언급하려고 생각하고있었습니다. 그것은 나에게 매우 명확하지 않다

뭔가

<winery id="1" /> 
<wine idref="1" /> 

처럼 내가 잘못된 길을 가고 있다면, 누군가가 나를 인도 할 수 있습니다.

미리 감사드립니다.

<xs:element name="root" type="Root"> 
    <xs:key name="aKey"> 
     <xs:selector xpath=".//Winery"/> 
     <xs:field xpath="@id"/> 
    </xs:key> 
    <xs:keyref name="aKeyRef" refer="aKey"> 
     <xs:selector xpath=".//wine"/> 
     <xs:field xpath="@wineryRef"/> 
    </xs:keyref> 
</xs:element> 
<xs:complexType name="Root"> 
    <xs:sequence> 
     <xs:element ref="Winery"/> 
    </xs:sequence> 
</xs:complexType> 
<xs:element name="Winery"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Wines" type="wines"/> 
     </xs:sequence> 
     <xs:attribute name="id" type="xs:string" use="required"/> 
    </xs:complexType> 
</xs:element> 
<xs:complexType name="wines"> 
    <xs:sequence> 
     <xs:element name="wine" type="wine" maxOccurs="unbounded"/> 
    </xs:sequence> 
</xs:complexType> 
<xs:complexType name="wine"> 
    <xs:sequence> 
     <xs:element name="chara" type="xs:string"/> 
    </xs:sequence> 
    <xs:attribute name="wineryRef" type="xs:string"/> 
</xs:complexType> 

몇 가지 중요한 사항 :

+0

wine 요소가 와이너리 요소에 있기 때문에 키/키프 레퍼런스 관계가 필요한 이유는 무엇입니까? 이것이 봉쇄 관계와 다른 의미를 가질 것인가? –

+0

@MichaelKay 방금 공부하고 있습니다. 나는 열쇠를 얻을 수있는 한 구조를 바꾸려고합니다 : 열쇠 참조와 그것을 이해하십시오. –

+0

하지만 "key : keyref 사용"은 필수 조건이 아닙니다. 나는 당신이 그것을 사용함으로써 달성하기를 원하는 것을 이해할 필요가있다. –

답변

0

코드 exmaple은 몇몇 세부 사항은 생략, 다음되는

  • 정의 key 및 요소의 몸에 keyref 참조하는
  • 사용에 적합한의 XPath 구문을 당신의 노드

f ind 더 많은 예제와 설명은 my xsd tutorial입니다.