You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by "Peter Keller (Jira)" <ji...@apache.org> on 2020/08/18 17:04:00 UTC
[jira] [Updated] (XMLBEANS-550) Type change by restriction not
implemented properly in Java API
[ https://issues.apache.org/jira/browse/XMLBEANS-550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Peter Keller updated XMLBEANS-550:
----------------------------------
Description:
Using the following schema as an example:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://openuri.org/easypo"
xmlns:po="http://openuri.org/easypo"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:simpleType name="addressType">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="specialAddressType">
<xs:restriction base="po:addressType"/>
</xs:simpleType>
<xs:complexType name="customer">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="po:addressType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="specialCustomer">
<xs:complexContent>
<xs:restriction base="po:customer">
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="address" type="po:specialAddressType" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
{code}
scomp generates an interface {{SpecialAddressType}} but the interface {{SpecialCustomer}} does not make use of it:
{code:java}
public interface SpecialCustomer extends org.openuri.easypo.Customer
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(SpecialCustomer.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.s770F7AC969A9A1EBB5EE20A103CED4B6").resolveHandle("specialcustomera398type");
/**
* A factory class with static methods for creating instances
* of this type.
*/
public static final class Factory
{
...
}
}{code}
It should contain methods {{xsetAddress}} and {{xgetAddress}} that:
* override the corresponding methods in {{Customer}}
* accept a parameter and return a value of the type {{SpecialAddressType}} respectively.
This issue affects both elements and attributes.
I don't suppose that this will get sorted out in practice, but I am creating this issue for the record.
was:
Using the following schema as an example:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://openuri.org/easypo"
xmlns:po="http://openuri.org/easypo"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:simpleType name="addressType">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="specialAddressType">
<xs:restriction base="po:addressType"/>
</xs:simpleType>
<xs:complexType name="customer">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="po:addressType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="specialCustomer">
<xs:complexContent>
<xs:restriction base="po:customer">
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="address" type="po:specialAddressType" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
{code}
scomp generates an interface {{SpecialAddressType}} but the interface {{SpecialCustomer}} does not make use of it:
{code:java}
public interface SpecialCustomer extends org.openuri.easypo.Customer
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(SpecialCustomer.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.s770F7AC969A9A1EBB5EE20A103CED4B6").resolveHandle("specialcustomera398type");
/**
* A factory class with static methods for creating instances
* of this type.
*/
public static final class Factory
{
...
}
}{code}
It should contain methods {{xsetAddress}} and {{xgetAddress}} that:
* override the corresponding methods in {{Customer}}
* accept a parameter and return a value of the type {{SpecialAddressType}} respectively.
I don't suppose that this will get sorted out in practice, but I am creating this issue for the record.
> Type change by restriction not implemented properly in Java API
> ---------------------------------------------------------------
>
> Key: XMLBEANS-550
> URL: https://issues.apache.org/jira/browse/XMLBEANS-550
> Project: XMLBeans
> Issue Type: Bug
> Components: Binding
> Affects Versions: Version 3.1.0
> Environment: openSUSE Linux; OpenJDK 1.8.0
> Reporter: Peter Keller
> Priority: Major
>
> Using the following schema as an example:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema targetNamespace="http://openuri.org/easypo"
> xmlns:po="http://openuri.org/easypo"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified">
> <xs:simpleType name="addressType">
> <xs:restriction base="xs:string"/>
> </xs:simpleType>
> <xs:simpleType name="specialAddressType">
> <xs:restriction base="po:addressType"/>
> </xs:simpleType>
> <xs:complexType name="customer">
> <xs:sequence>
> <xs:element name="name" type="xs:string"/>
> <xs:element name="address" type="po:addressType"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="specialCustomer">
> <xs:complexContent>
> <xs:restriction base="po:customer">
> <xs:sequence>
> <xs:element name="name" type="xs:string" />
> <xs:element name="address" type="po:specialAddressType" />
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
> </xs:schema>
> {code}
> scomp generates an interface {{SpecialAddressType}} but the interface {{SpecialCustomer}} does not make use of it:
> {code:java}
> public interface SpecialCustomer extends org.openuri.easypo.Customer
> {
> public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
> org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(SpecialCustomer.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.s770F7AC969A9A1EBB5EE20A103CED4B6").resolveHandle("specialcustomera398type");
>
> /**
> * A factory class with static methods for creating instances
> * of this type.
> */
>
> public static final class Factory
> {
> ...
> }
> }{code}
> It should contain methods {{xsetAddress}} and {{xgetAddress}} that:
> * override the corresponding methods in {{Customer}}
> * accept a parameter and return a value of the type {{SpecialAddressType}} respectively.
> This issue affects both elements and attributes.
> I don't suppose that this will get sorted out in practice, but I am creating this issue for the record.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org