나는 통제 할 수없는 XML 문서를 가지고있다. 이들의 구조는 잘 정의되어 있지만 PDF의 모음에 설명되어 있습니다. 매우 정확한 내용 임에도 불구하고 자동화 된 유효성 검사는 다루기가 쉽지 않습니다. XML 스키마를 작성하여 (대부분의) 해당 PDF의 규칙을 실행 가능하게 만듭니다.XML 스키마에서 형식화 된 값을 비우는 방법은 무엇입니까?
모든 요소는 필수 항목입니다. 그러나 그들 중 절반 정도는 비어 있거나 간단한 입력 내용을 가질 수 있습니다.
이러한 요소에 대한 데이터 유형을 정의 할 때 "정상적인"버전과 비어있을 수있는 버전의 두 가지 버전을 정의했습니다.
<xs:simpleType name="empty">
<xs:restriction base="xs:string">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="codPostal">
<xs:restriction base="xs:string">
<xs:pattern value="^[0-9]{4}-[0-9]{3}$"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="opt_codPostal">
<xs:union memberTypes="empty codPostal"/>
</xs:simpleType>
이 일을 덜 반복적 인 방법이 있나요 : 나는 empty
데이터 타입으로 노동 조합을 정의하여 이런 짓을?
예, 문자열 예제가 어리 석었습니다 ... 더 의미있는 것으로 변경했습니다 (답변을 실제로 무효화하지는 않습니다). –
문서에서'xsi : nil'을 사용해야합니까? 나는 문서를 바꿀 수 없다 : ( –
@Martinho : 안타깝게도 네, 문서에도 "nil"을 지정해야합니다. AFAIK는 당신이 원하는 것을하기 위해 방해가되지 않는 유일한 방법은 이미 선택한 조합 유형 접근법입니다 –