2010-01-19 4 views
5

(fixml 표준의) 외부 xsd 스키마를 확장 및 조정하려고합니다. 원래 스키마를 건드리지 않고도 일부 요소의 데이터 유형을 변경해야하지만 다시 정의해야합니다. 그러나 그것은 매우 성가신 것을 알게되었습니다.XSD : simpleType의 데이터 형식을 재정의하는 방법. xs : string에서 xs : integer로

무슨 일이 존재합니다

필드 - base.xsd

<xs:simpleType name="LastUpdateTime_t"> 
      <xs:restriction base="UTCTimestamp"> 
<xs:simpleType> 

나는 무엇이되고 싶은지 :

<xs:simpleType name="LastUpdateTime_t"> 
      <xs:restriction base="xs:string"> 
<xs:simpleType> 

I 시도 (그러나 실패) 무엇을 :

<xs:redefine schemaLocation="fields-base.xsd"> 
      <xs:simpleType name="LastUpdateTime_t"> 
       <xs:restriction base="xs:string" /> 
      </xs:simpleType> 
</xs:redefine> 

도서 및 그물 eem이 너무 많은 도움을 주었으므로, 이론적으로 이것이 가능한지 의문을 갖기 시작했습니다.

답변

4

최대한 멀리 말할 수는 있습니다. 내가 XMLSPY에서 유효성 검사를 만들 수

유일한 재정의했다 :

입니다
<xs:redefine schemaLocation="fields-base.xsd"> 
     <xs:simpleType name="LastUpdateTime_t"> 
      <xs:restriction base="LastUpdateTime_t" /> 
     </xs:simpleType> 
</xs:redefine> 

은, 새로운 제한은 기본 제한을 기반으로해야합니다.

XMLSpy가 잘못되었을 수 있습니다.

W3C XML Schema definition에서이 다소 비밀 인용면 : [어린이] 내

, 각 형 simpleType은 [어린이] 사이 이 있어야하며 각 복합 타입은 들 사이에서 제한 또는 연장이 있어야합니다 grand [[children]] 의베이스 [attribute]는 자신의 이름 속성 + 대상 네임 스페이스의 실제 값과 동일한 이어야합니다.

(이 오류에 대해 XMLSpy가 링크하는 스펙의 일부입니다.)

찾을 수있는 간단한 유형을 재정의하는 유일한 좋은 예는 here입니다. 이 예제에서 재정의는 열거에만 적용됩니다.

관련 문제