2010-08-11 6 views
3

가 나는 다음과 WSDL 파일이 있습니다WSDL 파일에서 복잡한 유형을 얻는 방법은 무엇입니까?

<wsdl:types> 
    <schema elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> 
    <import namespace="http:..."/> 
    <complexType name="BaseBean"> 
    <sequence/> 
    </complexType> 
    <complexType name="DateBean"> 
    <complexContent> 
    <extension base="impl:BaseBean"> 
     <sequence> 
     <element name="date" nillable="true" type="xsd:dateTime"/> 
     </sequence> 
    </extension> 
    </complexContent> 
    </complexType> 
    </schema> 
</wsdl:types> 

WSDL4J 사용을, 나는 wsdl:types 노드 얻을 수 있습니다 :

WSDLReader reader = WSDLFactory.newInstance().newWSDLReader(); 
Definition definition = reader.readWSDL("file.wsdl"); 
Types types = definition.getTypes(); 

을하지만 난 types 내부 complex types을 얻는 방법을 알아낼 수 없습니다.

프로그래밍 방식으로 복잡한 유형을 얻으려면 어떻게해야합니까? 어떻게해야하는지 예제를 찾을 수 있습니까?

답변

0

시도의 행함 :이 시점에서

Schema schema = null; 
for (Object e : types.getExtensibilityElements()) { 
    if (e instanceof Schema) { 
     schema = (Schema)e; 
     break; 
    } 
} 
if (schema != null) { 
    Element schemaElement = schema.getElement(); 
    // ... 
} 

, 당신은 정말에만 스키마를 나타내는 org.w3c.dom.Element 인스턴스를 얻을.

+0

전에 시도했습니다. 이상한 [schema : null] 참조를 반환합니다. –

+0

@Paulo -하지만 당신은 실제로 그것을 인쇄하는 것 외에 요소로 무엇을 시도 했습니까? 마찬가지로,'schemaElement.hasChildNodes()'는 무엇을 반환합니까? – kschneid

+0

'hasChildNodes()'는'true'를 반환합니다. 'schema.getElement()'자체는 속성이'elementFormDefault = "qualified"xmlns = "http://www.w3.org/2001/XMLSchema"인 객체를 반환하지만 복합 형을 잡을 방법은 없습니다. :/ –

관련 문제