You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Benoit Lacelle (Created) (JIRA)" <ji...@apache.org> on 2012/01/10 11:12:38 UTC
[jira] [Created] (CXF-4017) SchemaCollection.addCrossImports
handles only XmlSchemaSequence instead of all XmlSchemaGroupParticle
SchemaCollection.addCrossImports handles only XmlSchemaSequence instead of all XmlSchemaGroupParticle
-----------------------------------------------------------------------------------------------------
Key: CXF-4017
URL: https://issues.apache.org/jira/browse/CXF-4017
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 2.4.4
Reporter: Benoit Lacelle
This issues seems to be the same as: http://cxf.547215.n5.nabble.com/validation-error-td5101800.html
In my context, it happends only when my WebMethod interface holds an Exception
It looks like org.apache.cxf.common.xmlschema.SchemaCollection.addCrossImportsType has been written for XmlSchemaSequence only, while it could be called on any XmlSchemaGroupParticle.
Then, I adapted the code in SchemaCollection.addCrossImportsType to the three specializations of XmlSchemaGroupParticle and it seems to work properly.
{code}
private static final XmlSchemaChoice EMPTY_CHOICE = new XmlSchemaChoice();
private static final XmlSchemaAll EMPTY_ALL = new XmlSchemaAll();
...
private void addCrossImportsType(XmlSchema schema, XmlSchemaType schemaType) {
// the base type might cross schemas.
if (schemaType instanceof XmlSchemaComplexType) {
XmlSchemaComplexType complexType = (XmlSchemaComplexType)schemaType;
XmlSchemaUtils.addImportIfNeeded(schema, complexType.getBaseSchemaTypeName());
addCrossImports(schema, complexType.getContentModel());
addCrossImportsAttributeList(schema, complexType.getAttributes());
// could it be a choice or something else?
// HACK QFS
if (complexType.getParticle() instanceof XmlSchemaChoice) {
XmlSchemaChoice choice = null;
// XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
{
XmlSchemaParticle particle = complexType.getParticle();
XmlSchemaChoice localChoice = null;
if (particle == null) {
// the code that uses this wants to iterate. An empty one is more useful than
// a null pointer, and certainly an exception.
localChoice = EMPTY_CHOICE;
} else {
try {
localChoice = (XmlSchemaChoice) particle;
} catch (ClassCastException cce) {
XmlSchemaUtils.unsupportedConstruct("NON_CHOICE_PARTICLE", complexType);
}
}
choice = localChoice;
}
//addCrossImportsSequence(schema, sequence);
{
for (XmlSchemaObject seqMember : choice.getItems()) {
if (seqMember instanceof XmlSchemaElement) {
addElementCrossImportsElement(schema, (XmlSchemaElement)seqMember);
}
}
}
} else if (complexType.getParticle() instanceof XmlSchemaAll) {
XmlSchemaAll all = null;
// XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
{
XmlSchemaParticle particle = complexType.getParticle();
XmlSchemaAll localAll = null;
if (particle == null) {
// the code that uses this wants to iterate. An empty one is more useful than
// a null pointer, and certainly an exception.
localAll = EMPTY_ALL;
} else {
try {
localAll = (XmlSchemaAll) particle;
} catch (ClassCastException cce) {
XmlSchemaUtils.unsupportedConstruct("NON_ALL_PARTICLE", complexType);
}
}
all = localAll;
}
//addCrossImportsSequence(schema, sequence);
{
for (XmlSchemaObject seqMember : all.getItems()) {
if (seqMember instanceof XmlSchemaElement) {
addElementCrossImportsElement(schema, (XmlSchemaElement)seqMember);
}
}
}
} else {
XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
addCrossImportsSequence(schema, sequence);
}
// END QFS HACK
}
}
{code}
Benoit Lacelle
ActivePivot Consultant @ Quartetfs
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CXF-4017) SchemaCollection.addCrossImports
handles only XmlSchemaSequence instead of all XmlSchemaGroupParticle
Posted by "Daniel Kulp (Resolved) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CXF-4017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-4017.
------------------------------
Resolution: Fixed
Fix Version/s: 2.5.2
2.4.6
> SchemaCollection.addCrossImports handles only XmlSchemaSequence instead of all XmlSchemaGroupParticle
> -----------------------------------------------------------------------------------------------------
>
> Key: CXF-4017
> URL: https://issues.apache.org/jira/browse/CXF-4017
> Project: CXF
> Issue Type: Bug
> Components: JAXB Databinding
> Affects Versions: 2.4.4
> Reporter: Benoit Lacelle
> Assignee: Daniel Kulp
> Fix For: 2.4.6, 2.5.2
>
>
> This issues seems to be the same as: http://cxf.547215.n5.nabble.com/validation-error-td5101800.html
> In my context, it happends only when my WebMethod interface holds an Exception
> It looks like org.apache.cxf.common.xmlschema.SchemaCollection.addCrossImportsType has been written for XmlSchemaSequence only, while it could be called on any XmlSchemaGroupParticle.
> Then, I adapted the code in SchemaCollection.addCrossImportsType to the three specializations of XmlSchemaGroupParticle and it seems to work properly.
> {code}
> private static final XmlSchemaChoice EMPTY_CHOICE = new XmlSchemaChoice();
> private static final XmlSchemaAll EMPTY_ALL = new XmlSchemaAll();
> ...
> private void addCrossImportsType(XmlSchema schema, XmlSchemaType schemaType) {
> // the base type might cross schemas.
> if (schemaType instanceof XmlSchemaComplexType) {
> XmlSchemaComplexType complexType = (XmlSchemaComplexType)schemaType;
> XmlSchemaUtils.addImportIfNeeded(schema, complexType.getBaseSchemaTypeName());
> addCrossImports(schema, complexType.getContentModel());
> addCrossImportsAttributeList(schema, complexType.getAttributes());
> // could it be a choice or something else?
>
> // HACK QFS
> if (complexType.getParticle() instanceof XmlSchemaChoice) {
> XmlSchemaChoice choice = null;
> // XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
> {
> XmlSchemaParticle particle = complexType.getParticle();
> XmlSchemaChoice localChoice = null;
> if (particle == null) {
> // the code that uses this wants to iterate. An empty one is more useful than
> // a null pointer, and certainly an exception.
> localChoice = EMPTY_CHOICE;
> } else {
> try {
> localChoice = (XmlSchemaChoice) particle;
> } catch (ClassCastException cce) {
> XmlSchemaUtils.unsupportedConstruct("NON_CHOICE_PARTICLE", complexType);
> }
> }
> choice = localChoice;
> }
>
> //addCrossImportsSequence(schema, sequence);
> {
> for (XmlSchemaObject seqMember : choice.getItems()) {
> if (seqMember instanceof XmlSchemaElement) {
> addElementCrossImportsElement(schema, (XmlSchemaElement)seqMember);
> }
> }
> }
> } else if (complexType.getParticle() instanceof XmlSchemaAll) {
> XmlSchemaAll all = null;
> // XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
> {
> XmlSchemaParticle particle = complexType.getParticle();
> XmlSchemaAll localAll = null;
> if (particle == null) {
> // the code that uses this wants to iterate. An empty one is more useful than
> // a null pointer, and certainly an exception.
> localAll = EMPTY_ALL;
> } else {
> try {
> localAll = (XmlSchemaAll) particle;
> } catch (ClassCastException cce) {
> XmlSchemaUtils.unsupportedConstruct("NON_ALL_PARTICLE", complexType);
> }
> }
> all = localAll;
> }
>
> //addCrossImportsSequence(schema, sequence);
> {
> for (XmlSchemaObject seqMember : all.getItems()) {
> if (seqMember instanceof XmlSchemaElement) {
> addElementCrossImportsElement(schema, (XmlSchemaElement)seqMember);
> }
> }
> }
> } else {
> XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
> addCrossImportsSequence(schema, sequence);
> }
> // END QFS HACK
> }
> }
> {code}
> Benoit Lacelle
> ActivePivot Consultant @ Quartetfs
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CXF-4017) SchemaCollection.addCrossImports
handles only XmlSchemaSequence instead of all XmlSchemaGroupParticle
Posted by "Daniel Kulp (Assigned) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CXF-4017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp reassigned CXF-4017:
--------------------------------
Assignee: Daniel Kulp
> SchemaCollection.addCrossImports handles only XmlSchemaSequence instead of all XmlSchemaGroupParticle
> -----------------------------------------------------------------------------------------------------
>
> Key: CXF-4017
> URL: https://issues.apache.org/jira/browse/CXF-4017
> Project: CXF
> Issue Type: Bug
> Components: JAXB Databinding
> Affects Versions: 2.4.4
> Reporter: Benoit Lacelle
> Assignee: Daniel Kulp
>
> This issues seems to be the same as: http://cxf.547215.n5.nabble.com/validation-error-td5101800.html
> In my context, it happends only when my WebMethod interface holds an Exception
> It looks like org.apache.cxf.common.xmlschema.SchemaCollection.addCrossImportsType has been written for XmlSchemaSequence only, while it could be called on any XmlSchemaGroupParticle.
> Then, I adapted the code in SchemaCollection.addCrossImportsType to the three specializations of XmlSchemaGroupParticle and it seems to work properly.
> {code}
> private static final XmlSchemaChoice EMPTY_CHOICE = new XmlSchemaChoice();
> private static final XmlSchemaAll EMPTY_ALL = new XmlSchemaAll();
> ...
> private void addCrossImportsType(XmlSchema schema, XmlSchemaType schemaType) {
> // the base type might cross schemas.
> if (schemaType instanceof XmlSchemaComplexType) {
> XmlSchemaComplexType complexType = (XmlSchemaComplexType)schemaType;
> XmlSchemaUtils.addImportIfNeeded(schema, complexType.getBaseSchemaTypeName());
> addCrossImports(schema, complexType.getContentModel());
> addCrossImportsAttributeList(schema, complexType.getAttributes());
> // could it be a choice or something else?
>
> // HACK QFS
> if (complexType.getParticle() instanceof XmlSchemaChoice) {
> XmlSchemaChoice choice = null;
> // XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
> {
> XmlSchemaParticle particle = complexType.getParticle();
> XmlSchemaChoice localChoice = null;
> if (particle == null) {
> // the code that uses this wants to iterate. An empty one is more useful than
> // a null pointer, and certainly an exception.
> localChoice = EMPTY_CHOICE;
> } else {
> try {
> localChoice = (XmlSchemaChoice) particle;
> } catch (ClassCastException cce) {
> XmlSchemaUtils.unsupportedConstruct("NON_CHOICE_PARTICLE", complexType);
> }
> }
> choice = localChoice;
> }
>
> //addCrossImportsSequence(schema, sequence);
> {
> for (XmlSchemaObject seqMember : choice.getItems()) {
> if (seqMember instanceof XmlSchemaElement) {
> addElementCrossImportsElement(schema, (XmlSchemaElement)seqMember);
> }
> }
> }
> } else if (complexType.getParticle() instanceof XmlSchemaAll) {
> XmlSchemaAll all = null;
> // XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
> {
> XmlSchemaParticle particle = complexType.getParticle();
> XmlSchemaAll localAll = null;
> if (particle == null) {
> // the code that uses this wants to iterate. An empty one is more useful than
> // a null pointer, and certainly an exception.
> localAll = EMPTY_ALL;
> } else {
> try {
> localAll = (XmlSchemaAll) particle;
> } catch (ClassCastException cce) {
> XmlSchemaUtils.unsupportedConstruct("NON_ALL_PARTICLE", complexType);
> }
> }
> all = localAll;
> }
>
> //addCrossImportsSequence(schema, sequence);
> {
> for (XmlSchemaObject seqMember : all.getItems()) {
> if (seqMember instanceof XmlSchemaElement) {
> addElementCrossImportsElement(schema, (XmlSchemaElement)seqMember);
> }
> }
> }
> } else {
> XmlSchemaSequence sequence = XmlSchemaUtils.getSequence(complexType);
> addCrossImportsSequence(schema, sequence);
> }
> // END QFS HACK
> }
> }
> {code}
> Benoit Lacelle
> ActivePivot Consultant @ Quartetfs
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira