2010-11-09 31 views
0

J'essaie de modéliser un objet métier complexe (nommé Prenda) qui contient un attribut du même type de l'objet (Prenda) à l'aide de JDeveloper 11g.Modélisation d'objets métier récursifs dans Oracle SOA Suite 11g

Ceci est mon xsd:

<?xml version="1.0" encoding="UTF-8"?> 
<?bpmo version="11.1.1" build="6.84" fullName="Mx.Org.Frd.Bo.Prenda" modifiers="0"?> 
<!--########################################################################################--> 
<!--####                    ####--> 
<!--####   THIS IS AN AUTO GENERATED FILE. PLEASE DO NOT MANUALLY MODIFY   ####--> 
<!--#### CHANGES TO THIS FILE MAY PRODUCE UNEXPECTED BEHAVIOR AND WOULD BE OVERWRITTEN ####--> 
<!--####                    ####--> 
<!--########################################################################################--> 
<xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns3="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Reloj" xmlns:ns2="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Metal" xmlns:ns1="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Diamante" xmlns="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" xmlns:bpmo="http://xmlns.oracle.com/bpm/bpmobject/" > 
    <xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Reloj" schemaLocation="Reloj.xsd"/> 
    <xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Diamante" schemaLocation="Diamante.xsd"/> 
    <xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Metal" schemaLocation="Metal.xsd"/> 
    <xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" schemaLocation="Prenda.xsd"/> 
    <xs:complexType name="PrendaType"> 
     <xs:sequence> 
      <xs:element name="id" nillable="true" type="xs:long"/> 
      <xs:element name="valor" nillable="true" type="xs:decimal"/> 
      <xs:element name="precioVenta" nillable="true" type="xs:decimal"/> 
      <xs:element name="fechaCreacion" nillable="true" type="xs:dateTime"/> 
      <xs:element name="fechaModificacion" nillable="true" type="xs:dateTime"/> 
      <xs:element name="tipoPrenda" nillable="true" type="xs:string"> 
       <xs:annotation> 
        <xs:documentation> 
         <bpmo:documentable> 
          <bpmo:description> 
           prenda, grupo, elemento 
          </bpmo:description> 
         </bpmo:documentable> 
        </xs:documentation> 
       </xs:annotation> 
      </xs:element> 
      <xs:element name="tipoElemento" nillable="true" type="xs:string"> 
       <xs:annotation> 
        <xs:documentation> 
         <bpmo:documentable> 
          <bpmo:description> 
           diamante, metal 
          </bpmo:description> 
         </bpmo:documentable> 
        </xs:documentation> 
       </xs:annotation> 
      </xs:element> 
      <xs:element name="diamante" type="ns1:DiamanteType"/> 
      <xs:element name="metal" type="ns2:MetalType"/> 
      <xs:element name="reloj" type="ns3:RelojType"/> 
      <xs:element name="padre" type="PrendaType"/> 
     </xs:sequence> 
    </xs:complexType> 
    <xs:element name="Prenda" type="PrendaType"/> 
</xs:schema> 

Mais je vais avoir des problèmes pour déployer le composite en raison de l'padre d'attribut est du même type: PrendaType que mon objet entier. Je reçois cette erreur:

Caused by: oracle.fabric.common.wsdl.XSDException: oracle.xml.parser.schema.XSDException: imported namespace "http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" must different from namespace "http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" [Cause=imported namespace "http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" must different from namespace "http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda"] 
     at oracle.fabric.common.wsdl.SchemaManager.buildXDKSchema(SchemaManager.java:384) 
     at oracle.fabric.common.wsdl.SchemaManager.lookupSchema(SchemaManager.java:216) 
     at oracle.fabric.common.wsdl.SchemaManager.lookupXSDElementDeclaration(SchemaManager.java:399) 
     at com.collaxa.cube.xml.xsd.SchemaToXML.generateXMLElement(SchemaToXML.java:367) 

Toute idée comment faire ?, je pensais à quelque chose comme patrimoine, mais l'IDE ne montre pas d'options pour Prolonge la XSD, donc je ne sais pas si ce est possible.

grâce

Répondre

0

enlèverait juste la déclaration d'importation

<xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/Mx/Org/Frd/Bo/Prenda" schemaLocation="Prenda.xsd"/> 

et vous qui devraient être bien