2012-03-16 2 views
1

xsd에 'id', 'name', 'date'또는 'date'와 같은 일부 공통 필드가있는 복합 유형이 많이 있거나 'anyspecificId'는 서로 매우 유사한 유형을 의미하며 각각에 공통 필드를 하나 추가하는 것은 악몽입니다. 복합 유형에 대한 기본 유형을 정의하여이 복합 유형이 기본 상위 유형의 필드/항목을 확장 할 수 있도록 할 수 있습니까? 그런 경우이 새로운 필드를 자식 유형이 아닌 기본 유형에 추가하기 만하면됩니다. 그게 가능합니까? 이 유형의 확장자를 사용한다 물론xsd 스키마에 여러 요소가 많이 있습니다.

+0

확장 프로그램이 항상 최선의 것은 아닙니다. 제한 사항과 관련된 문제가 발생하면 해당 항목을 객체로 변환하는 것이 깨끗한 것이 아니므로 그룹 모델 (xsd : group 및 attributes attributeGroup 요소)을 사용하면 재사용 가능성을 고려해야 할 또 다른 대안이 될 수 있습니다. –

답변

2

:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

<xs:element name="employee" type="fullpersoninfo"/> 

<xs:complexType name="personinfo"> 
    <xs:sequence> 
    <xs:element name="firstname" type="xs:string"/> 
    <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="fullpersoninfo"> 
    <xs:complexContent> 
    <xs:extension base="personinfo"> 
     <xs:sequence> 
     <xs:element name="address" type="xs:string"/> 
     <xs:element name="city" type="xs:string"/> 
     <xs:element name="country" type="xs:string"/> 
     </xs:sequence> 
    </xs:extension> 
    </xs:complexContent> 
</xs:complexType> 

</xs:schema> 

http://www.w3schools.com/schema/el_extension.asp

2

확장에 의해 유형을 도출 확실히이 문제를 해결하기위한 하나의 방법입니다. 때때로 더 잘 작동 할 수있는 또 다른 접근법은 명명 된 모델 그룹을 사용하는 것입니다. 이것은보다 융통성이 있습니다. 예를 들어 공통 요소가 사용자 정의 요소보다 먼저 있어야한다는 제약 조건을 부과하지 않습니다.

관련 문제