在xsd中找不到引用

时间:2011-04-11 12:48:01

标签: java xml web-services jdeveloper

请帮帮我,我知道这是一个非常简单的问题,还需要帮助。 请参考以下架构..

<?xml version="1.0" encoding="UTF-8"?>
<schema attributeFormDefault="unqualified" elementFormDefault="qualified"
        targetNamespace="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/Taskprocess"
        xmlns="http://www.w3.org/2001/XMLSchema">
     <complexType name="officer" id="officer"  xmlns:xs="http://www.w3.org/2001/XMLSchema">
          <sequence>
               <element name="mainOfficer" type="string"/>
               <element name="mainOfficerId" type="string"/>
               <element name="coveringOfficer" type="string"/>
               <element name="coveringOfficerId" type="string"/>
               <element name="defaultOfficer" type="string"/>
               <element name="defaultOfficerId" type="string"/>
               <element name="matrixId" type="string"/>
          </sequence>
     </complexType>
     <element name="process">
          <complexType>
               <sequence>
                    <element name="input" id="officer" type="officer" nillable="false"
                             maxOccurs="1" minOccurs="0"/>
               </sequence>
          </complexType>
     </element>
     <element name="processResponse">
          <complexType>
               <sequence>
                    <element name="result" type="string"/>
               </sequence>
          </complexType>
     </element>
</schema>

我找不到问题参考办公室(使用Jdeveloper)

1 个答案:

答案 0 :(得分:1)

我认为这个问题与命名空间有关。文档的默认命名空间为http://www.w3.org/2001/XMLSchema,这意味着您可以引用不带前缀的XML内置类型,如type="string"中所示。但是,类型officer存在于目标名称空间中,因此当您引用该类型时,必须使用命名空间绑定对其进行限定。将其添加到schema元素:

xmlns:tns="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/Taskprocess"

并在引用人员类型时使用tns前缀:

<element name="input" type="tns:officer" nillable="false" ... />

(另外,id属性的使用很奇怪,特别是因为你有重复的内容。)