use of org.apache.ws.commons.schema.XmlSchemaSimpleContentExtension in project cxf by apache.
the class SchemaCollection method addCrossImports.
private void addCrossImports(XmlSchema schema, XmlSchemaContentModel contentModel) {
if (contentModel == null) {
return;
}
XmlSchemaContent content = contentModel.getContent();
if (content == null) {
return;
}
if (content instanceof XmlSchemaComplexContentExtension) {
XmlSchemaComplexContentExtension extension = (XmlSchemaComplexContentExtension) content;
XmlSchemaUtils.addImportIfNeeded(schema, extension.getBaseTypeName());
addCrossImportsAttributeList(schema, extension.getAttributes());
XmlSchemaParticle particle = extension.getParticle();
if (particle instanceof XmlSchemaSequence) {
addCrossImports(schema, (XmlSchemaSequence) particle);
} else if (particle instanceof XmlSchemaChoice) {
addCrossImports(schema, (XmlSchemaChoice) particle);
} else if (particle instanceof XmlSchemaAll) {
addCrossImports(schema, (XmlSchemaAll) particle);
}
} else if (content instanceof XmlSchemaComplexContentRestriction) {
XmlSchemaComplexContentRestriction restriction = (XmlSchemaComplexContentRestriction) content;
XmlSchemaUtils.addImportIfNeeded(schema, restriction.getBaseTypeName());
addCrossImportsAttributeList(schema, restriction.getAttributes());
} else if (content instanceof XmlSchemaSimpleContentExtension) {
XmlSchemaSimpleContentExtension extension = (XmlSchemaSimpleContentExtension) content;
XmlSchemaUtils.addImportIfNeeded(schema, extension.getBaseTypeName());
addCrossImportsAttributeList(schema, extension.getAttributes());
} else if (content instanceof XmlSchemaSimpleContentRestriction) {
XmlSchemaSimpleContentRestriction restriction = (XmlSchemaSimpleContentRestriction) content;
XmlSchemaUtils.addImportIfNeeded(schema, restriction.getBaseTypeName());
addCrossImportsAttributeList(schema, restriction.getAttributes());
}
}
use of org.apache.ws.commons.schema.XmlSchemaSimpleContentExtension in project cxf by apache.
the class CustomStringType method writeSchema.
@Override
public void writeSchema(XmlSchema root) {
// this mapping gets used with xs:string, and we might get called.
if (root.getTargetNamespace().equals(XMLConstants.W3C_XML_SCHEMA_NS_URI)) {
return;
}
XmlSchemaSimpleType type = new XmlSchemaSimpleType(root, true);
type.setName(getSchemaType().getLocalPart());
XmlSchemaSimpleContentExtension ext = new XmlSchemaSimpleContentExtension();
ext.setBaseTypeName(Constants.XSD_STRING);
XmlSchemaSimpleTypeRestriction content = new XmlSchemaSimpleTypeRestriction();
content.setBaseTypeName(Constants.XSD_STRING);
type.setContent(content);
}
use of org.apache.ws.commons.schema.XmlSchemaSimpleContentExtension in project cxf by apache.
the class WSDLToCorbaHelper method processSimpleContentStruct.
protected Struct processSimpleContentStruct(XmlSchemaSimpleContent simpleContent, QName defaultName, Struct corbaStruct, QName schematypeName) throws Exception {
List<MemberType> attrMembers = null;
CorbaType basetype = null;
String uri;
if (schematypeName != null) {
uri = schematypeName.getNamespaceURI();
} else {
uri = defaultName.getNamespaceURI();
}
if (simpleContent.getContent() instanceof XmlSchemaSimpleContentExtension) {
XmlSchemaSimpleContentExtension ext = (XmlSchemaSimpleContentExtension) simpleContent.getContent();
if (ext.getBaseTypeName() != null) {
basetype = processPrimitiveType(ext.getBaseTypeName());
}
if (basetype == null) {
XmlSchemaType base = getSchemaType(ext.getBaseTypeName());
basetype = convertSchemaToCorbaType(base, base.getQName(), base, null, false);
}
if (basetype == null) {
return null;
}
// process ext types ????
MemberType basemember = new MemberType();
basemember.setName("_simpleTypeValue");
QName baseTypeName = checkPrefix(basetype.getQName());
basemember.setIdltype(baseTypeName);
corbaStruct.getMember().add(basemember);
if (!isDuplicate(basetype)) {
typeMappingType.getStructOrExceptionOrUnion().add(basetype);
}
attrMembers = processAttributesAsMembers(ext.getAttributes(), uri);
} else if (simpleContent.getContent() instanceof XmlSchemaSimpleContentRestriction) {
XmlSchemaSimpleContentRestriction restrict = (XmlSchemaSimpleContentRestriction) simpleContent.getContent();
if (restrict.getBaseTypeName() != null) {
basetype = processPrimitiveType(restrict.getBaseTypeName());
}
if (basetype == null) {
XmlSchemaType base = getSchemaType(restrict.getBaseTypeName());
basetype = convertSchemaToCorbaType(base, base.getQName(), base, null, false);
}
MemberType basemember = new MemberType();
basemember.setName("_simpleTypeValue");
QName baseTypeName = checkPrefix(basetype.getQName());
basemember.setIdltype(baseTypeName);
corbaStruct.getMember().add(basemember);
if (!isDuplicate(basetype)) {
typeMappingType.getStructOrExceptionOrUnion().add(basetype);
}
attrMembers = processAttributesAsMembers(restrict.getAttributes(), uri);
}
// Deal with Attributes defined in Extension
if (attrMembers != null) {
for (int i = 0; i < attrMembers.size(); i++) {
MemberType member = attrMembers.get(i);
corbaStruct.getMember().add(member);
}
}
return corbaStruct;
}
Aggregations