private Using readUsing(final XMLStreamReader reader, final String schemaNamespace)
throws XMLStreamException, EntityProviderException {
reader.require(XMLStreamConstants.START_ELEMENT, edmNamespace, XmlMetadataConstants.EDM_USING);
Using using = new Using();
using.setNamespace(reader.getAttributeValue(null, XmlMetadataConstants.EDM_SCHEMA_NAMESPACE));
inscopeMap.get(schemaNamespace).add(using.getNamespace());
using.setAlias(reader.getAttributeValue(null, XmlMetadataConstants.EDM_SCHEMA_ALIAS));
using.setAnnotationAttributes(readAnnotationAttribute(reader));
List<AnnotationElement> annotationElements = new ArrayList<AnnotationElement>();
while (reader.hasNext() && !(reader.isEndElement() && edmNamespace.equals(reader.getNamespaceURI())
&& XmlMetadataConstants.EDM_USING.equals(reader.getLocalName()))) {
reader.next();
if (reader.isStartElement()) {
extractNamespaces(reader);
currentHandledStartTagName = reader.getLocalName();
annotationElements.add(readAnnotationElement(reader));
}
}
if (!annotationElements.isEmpty()) {
using.setAnnotationElements(annotationElements);
}
if (using.getAlias() != null) {
aliasNamespaceMap.put(using.getAlias(), using.getNamespace());
}
return using;
}