2017-12-26 20 views
0

사실 이후에 작성한 모든 XML에 대해 XSD 스키마를 설계하고 있습니다. 나는이 일을 처음부터 끝내야한다는 것을 압니다. 그러나 저는 그것에 익숙합니다. 지금까지 모든 XML은 내 애플 리케이션에 대한 경이로운 작품, 난 그냥 너무 좋은 검증을 원한다.내 XML 스키마의 다른 태그 참조

여기 내가 간략한 예가 나와 있습니다.

<xs:sequence> 
 
    <xs:element name="fields" minOccurs="1" maxOccurs="1"> 
 
    <xs:complexType> 
 
     <xs:sequence> 
 
     <xs:element name="field" type="fieldType" 
 
      minOccurs="1" maxOccurs="unbounded"> 
 
     </xs:element> 
 
     </xs:sequence> 
 
    </xs:complexType> 
 
    </xs:element> 
 
    <xs:element name="forms" maxOccurs="1" minOccurs="1"> 
 
    <xs:complexType> 
 
     <xs:sequence> 
 
     <xs:element name="form" minOccurs="0" maxOccurs="unbounded"> 
 
      <xs:complexType> 
 
      <xs:sequence> 
 
       <xs:element name="widgets" minOccurs="1" maxOccurs="1"> 
 
       <xs:complexType> 
 
        <xs:sequence> 
 
        <xs:element name="widget" minOccurs="1" maxOccurs="unbounded"> 
 
         <!-- What do I put here to reference a field? --> 
 
        </xs:element> 
 
        </xs:sequence> 
 
       </xs:complexType> 
 
       </xs:element> 
 
      </xs:sequence> 
 
      </xs:complexType> 
 
     </xs:element> 
 
     </xs:sequence> 
 
    </xs:complexType> 
 
    </xs:element> 
 
</xs:sequence>

내 주요 질문은 내가 XSD 스키마 어떻게 말할까요됩니다 : 여기

<fields> 
 
    <field id="name" type="text"> 
 
    \t <display>Somethings Name</display> 
 
    \t <description>The name of the something.</description> 
 
    </field> 
 
</fields> 
 
<forms> 
 
    <form id="custom_form"> 
 
    <widgets> 
 
     <widget type="text-input"> 
 
     <field id="name"/> 
 
     </widget> 
 
    </widgets> 
 
    </form> 
 
</forms>
는 내가 가지고있는 XSD의 간단한 예입니다 요소가 노드 중 하나에 대한 참조 인 경우 def0 노드 위의 fields 노드에 ned가 있습니까? 지금은이 유효성 검사에 코드를 사용하기 만합니다.

이 시나리오에서 필드 노드는 어떻게 정의해야합니까? field 노드를 두 번 정의하면됩니까? 주 정의는 하나이고 위젯 노드는 필드를 참조하는 노드입니까?

또한 XSD의 노드를 재정의하는 옵션도 있습니다. 기본 field 정의를 정의한 다음 위젯의 참조 스타일 노드로 다시 정의해야합니까? 어떻게 내가 이걸 할 수 있을까?

이 시나리오에서 일반적으로나 대중적으로 권장되는 사항은 무엇입니까?

답변

1

XML 스키마 키/keyref 구문을 사용하여 속성의 가능한 값을 문서의 다른 속성 집합에 사용 된 값으로 제한 할 수 있습니다. XML Schema key/keyref - how to use them?과 JAXB 사양을 무시하고 사용 예에 ​​대한 답변의 링크를 참조하십시오.

+0

오 당당, 내가 찾고있는 것. 이상한 일은 W3Schools 나 eclipse XSD 도구에 key/keyref에 대한 언급이 없으므로 결코 혼자서 건너 뛰지 않았습니다. 그런 XSD 기능이 꽤있는 것처럼 보입니다. –