0
나는이 정규 구조를 가지고 :확장 XSD에 XQuery에 의해 요소의 값을 취득
<xsd:complexType name="Document">
<xsd:attribute name="ID" use="optional" type="cdpscm:IDDocument"/>
</xsd:complexType>
<xsd:element name="NationalID" type="cdpscm:NationalID"/>
<xsd:complexType name="NationalID">
<xsd:complexContent>
<xsd:extension base="cdpscm:Document">
<xsd:sequence>
<xsd:element name="Number"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="Passaport" type="cdpscm:Passaport"/>
<xsd:complexType name="Passaport">
<xsd:complexContent>
<xsd:extension base="cdpscm:Document">
<xsd:sequence>
<xsd:element name="Number"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
문서가 Passaport 또는 NationalID 경우 캐스팅됩니다 내 OSB 서비스를 호출하지만이 숫자 값을 얼마나 전달 예를 들어 number 요소가없는 Document 요소 유형 만있는 경우와 같이 다른 서비스로 복사 할 수 있습니다. 그래서 아마 내가 NationalID 또는 Passaport, 관광 또는 원주민 사람과 함께 일하고 있는지 알고해야합니다,
<v24:Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="v2:TouristPerson" ID="5772893">
<v2:Documents>
<v2:Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="v2:Passport">
<v2:Number>03070</v2:Number>
</v2:Document>
</v2:Documents>
</v24:Person>
실제 구조는 이것보다 더 복잡하다 :
이것은 supossed 입력합니다.
Oracle 11g, Eclipse OEPE를 사용하십시오.
도움 주셔서 감사합니다.
고마워요! –
@xsi : type에 대한 테스트는 네임 스페이스 접두사의 선택에 민감합니다. 네임 스페이스 URI를 테스트하려면 QName 기계를 사용하는 것이 좋습니다. 데이터가 입력되지 않았다고 가정하면 $ documents [fn : resolve-QName (@xsi : type,.) = QName ("namespace-bound-to-v2", "Passport")]' –