Fady Moussallam created XMLSCHEMA-51:
----------------------------------------
Summary: Problem with included schemas with attribute group
references
Key: XMLSCHEMA-51
URL: https://issues.apache.org/jira/browse/XMLSCHEMA-51
Project: XmlSchema
Issue Type: Question
Reporter: Fady Moussallam
Hello,
I am using version 2.2.3.
I have a problem with a combination of included schemas and attribute group
references.
Say you have schemaA including schemaB. schemaB does not have a default
namespace, nor a target namespace, since it is meant to be included. It
therefore inherits the namespace of the including schema (in this case schemaA).
The problem arises if schemaB contains markup like this:
{code}
<xs:attributeGroup ref="QuantityGroup"/>
...
</xs:attributeGroup>
{code}
In org.apache.ws.commons.schema.SchemaBuilder#handleAttributeGroupRef the
reference QName is obtained with the getRefQName(String pName, Node pNode)
method.
In this method, the namespace is derived using the
NodeNamespaceContext.getNamespaceContext(pNode) method. This one in turn
determines available namespaces directly from the DOM using
PrefixCollector.searchAllPrefixDeclarations(pNode).
Problem is that from a DOM standpoint schemaB does not contain any namespace
declarations. So the reference QName end up having no namespace.
This seems wrong and creates problems when later on you want to find the
referenced group using XmlSchemaCollection#getAttributeGroupByName(QName name)
which returns null.
I can fix my issue in SchemaBuilder#getRefQName by doing this:
{code}
...
if (offset == -1) {
uri = pContext.getNamespaceURI(Constants.DEFAULT_NS_PREFIX);
if (Constants.NULL_NS_URI.equals(uri)) {
if (currentSchema.getLogicalTargetNamespace().isEmpty()) {
return new QName(Constants.NULL_NS_URI, pName);
} else {
return new QName(currentSchema.getLogicalTargetNamespace(), pName);
}
}
localName = pName;
prefix = Constants.DEFAULT_NS_PREFIX;
} else {
...
{code}
But I am not sure if there are any side effects.
Any opinion or advice on this would be very appreciated.
Thank you
Fady
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]