XSD에 정의 된 유효한 열거 옵션을 기반으로 일부 요소를 생성해야하는 XML 파일을 변환 중입니다.XSL에서 XSD에서 데이터 추출
<options>
<chosenOption>USERCHOICE</chosenOption>
</options>
: 당신이 다음과 같습니다 상상할 수
이
<xs:simpleType name="optionType" nillable="true">
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
<xs:enumeration value="USERCHOICE">
</xs:enumeration>
<xs:enumeration value="DEFAULT">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
...
<xs:element name="chosenOption" type='optionType'/>
...
<xs:element name="availableOption" type='optionType'/>
이 입력은, 선택한 옵션이 포함됩니다 :
가정하자 나는 형태와 같은 요소 뭔가를 선언하는 XSD가 하 수있는 방법이 거기에있다
<options>
<chosenOption>USERCHOICE</chosenOption> <!-- This comes from incoming XML -->
<!-- This must be a list of ALL possible values for this element, as defined in XSD -->
<availableOptions>
<availableOption>USERCHOICE</availableOption>
<availableOption>DEFAULT</availableOption>
</availableOptions>
</options>
:
나는 다음과 같습니다 출력이 필요합니다 XSL은 XSD에서 열거 형 값 USERCHOICE
과 DEFAULT
을 추출하여 출력에서 생성합니까?
이것은 WebSphere 6에서 실행되며 XSLT 1.0 엔진에서 사용됩니다. :(
는 (스키마 파일은 자주 변경되지 않습니다하지만 것이다 변경 이제 다음과 차라리에만 스키마 파일 및 XSLT 대신 업데이트의 스키마 파일을 업데이트해야 할 것) 여기
내가 해결하는 것 일관성을 유지할 수있는 게시판, 지금 XSD는'optionType'을 보여주고 XML은'selectedOption'을 보여줍니다. 그 두 개 짜기 야? 인간은 당신의 질문에 기초하여 어떤 추론을 할 수 있습니다. 명시 적 메타 데이터 또는 규칙을 통해 변환을 명확하게해야합니다. XSD의 위치, XML 태그 이름 (또는 XPath) 및 적절한 XML 스키마 유형을 연결해야합니다. –
@PetruGardea : 좋은 지적입니다. 실제 예제는 좀 더 복잡합니다. 나는 그것을 정리하려고 무언가를 엉망으로 만들었습니다. 기본 요소는 들어오는 요소가 열거 형의 값으로 제한된다는 것입니다. 변형 된 XML의 소비자는 요소 *가 제한 될 수있는 모든 사용 가능한 옵션 목록을 필요로합니다. – FrustratedWithFormsDesigner
순수 XSLT 솔루션의 경우 XSD를 인식하는 XSLT 2.0 엔진에 액세스해야합니다. [Saxon-EE] (http://www.saxonica.com/feature-matrix.html)는 여기 내 마음에 - 그건 확실합니다. 그리고 심지어는 상호 운용이 가능하고 XSD 만 수정할 수있는 목표를 달성 할 수 있을지는 의문입니다. 반면에 예를 들어, .NET에서는 XSLT없이 이러한 솔루션을 손쉽게 구축 할 수 있습니다. XSD를 유지해야하는 유일한 아티팩트로 사용할 수 있습니다. –