You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlbeans-user@xml.apache.org by "Darius K." <su...@yahoo.com> on 2004/07/27 23:19:59 UTC

substitutionGroups not supported?

Hi, I am having troubles with substitutionGroups. Here
are the excerpts from my schemas:

1. BaseSchema:
<xs:element name="RequestEnvelope">
  <xs:complexType>
    <xs:sequence minOccurs="0">
      <xs:element ref="Body"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="Body" abstract="true"/>

2. SpecificSchema:
<xs:element name="Body"
substitutionGroup="baseRequest:Body">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="ID">
        <xs:simpleType>
	   <xs:restriction base="xs:string">
	     <xs:maxLength value="150"/>
	   </xs:restriction>
	</xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

scomp works well, but the generated java classes do
not compile. Specifically:
1. Base schema generates interface:

public interface BodyDocument extends
org.apache.xmlbeans.XmlObject {
...
  org.apache.xmlbeans.XmlObject getBody();
...

2. But a more specific schema generates following
interface:
public interface BodyDocument extends
mypackage.baseRequest.BodyDocument {
...
mypackage.specificRequest.BodyDocument.Body getBody();
..

Since mypackage.specificRequest.getBody() returns a
different type than mypackage.baseRequest.getBody(),
the src code does not compile.

I can fix this by hand in the java src code by making 
mypackage.specificRequest.getBody() to return
org.apache.xmlbeans.XmlObject.

But this gets even worse if the base element is of
type="xs:string" which gets translated into
java.lang.String and the more specific element is
<xs:restriction base="xs:string"><xs:enumeration ..>
In that case I can not trick mypackage.specificRequest
method to return String as enumeration translates into
the subclass of a org.apache.xmlbeans.XmlString - not
a subclass of java.lang.String.

Any ideas how to work with substitutionGroup(s) for
the global elements in a more specific schemas that
are derived from some generic schema?

Thanks

-Darius

 



- ---------------------------------------------------------------------
To unsubscribe, e-mail:   xmlbeans-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-user-help@xml.apache.org
Apache XMLBeans Project -- URL: http://xml.apache.org/xmlbeans/