simpleType을 익명 simpleType으로 변환하려는 스키마가 있습니다. 기존 스키마는 다음과 같습니다.XML 스키마 : 단순 유형을 익명 유형으로 변환
base = "xxx";
확장명 뒤에 simpleType을 추가합니다.
기타 ...
은 그러나 잘못된 스키마로 끝났다.
질문 :
- 어떻게 정보를 잃지 않고 올바른 익명하는 SimpleType 스키마로 입력을 변환하는?
- 더 자세히 말하자면, 요소 이름, 유형 이름 등의 동적 입력과 함께이 작업을 자동으로 수행하는 xslt가 있습니까? 사전에
감사합니다,
입력 스키마 :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="test" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test" elementFormDefault="qualified">
<xs:element name="elem1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="simpleType1">
<xs:attribute name="att1" type="simpleType2" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="simpleType1">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="5"/>
<xs:totalDigits value="18"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="simpleType2">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{3,3}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
내 시도 결과 :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="test" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test" elementFormDefault="qualified">
<xs:element name="elem1">
<xs:complexType>
<xs:simpleContent>
<xs:extension>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="5"/>
<xs:totalDigits value="18"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:attribute name="att1" use="required"/>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{3,3}"/>
</xs:restriction>
</xs:simpleType>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
검증이 같은 오류가있는 잘못된 스키마는 것을 보여준다 :
요소에 'base'속성이 필요합니다.
요소는 요소 아래에 허용되지 않습니다.
'name'속성은 필수 요소입니다.
예, 사실, 내가 속성의 로컬 정의 된 유형을 사용하도록 나섰고 simpleType1에서 '증설베이스'와 함께 할 수없는 것 ... – dellair