/** * Convenience method to create the simple type definition for the type of a component. * * @param comp * @return type definition */ private SimpleTypeElement buildSimpleType(IComponent comp) { return buildSimpleType(comp.getType()); }
/** * Check if a container element of the binding represents complex content. * * @param cont * @return <code>true</code> if complex content, <code>false</code> if not */ private static boolean isComplexContent(ContainerElementBase cont) { ArrayList contents = cont.getContentComponents(); for (int i = 0; i < contents.size(); i++) { Object item = contents.get(i); if (item instanceof IComponent && ((IComponent)item).hasName()) { return true; } else if (item instanceof ContainerElementBase && isComplexContent((ContainerElementBase)item)) { return true; } } return false; }
attr.setName(comp.getName()); QName qname = getSimpleTypeQName(comp); if (qname == null) { setAttributeType(qname, attr, hold); if (!comp.isOptional()) { attr.setUse(AttributeElement.REQUIRED_USE);
for (int i = offset; i < comps.size(); i++) { IComponent comp = (IComponent)comps.get(i); if (comp.hasName()) { if (comp.isOptional()) { group.setMinOccurs(Count.COUNT_ZERO); if (comp.isOptional()) { elem.setMinOccurs(Count.COUNT_ZERO);
elem.setMinOccurs(Count.COUNT_ZERO); elem.setMaxOccurs(Count.COUNT_UNBOUNDED); } else if (comp.isOptional()) { elem.setMinOccurs(Count.COUNT_ZERO); elem.setName(comp.getName());
/** * Get the qualified name of the simple type used for a component, if a named simple type. If this returns * <code>null</code>, the {@link #buildSimpleType(IComponent)} method needs to be able to construct the * appropriate simple type definition. * * @param comp * @return qualified type name, <code>null</code> if inline definition needed */ private QName getSimpleTypeQName(IComponent comp) { IClass type = comp.getType(); String tname = comp.getType().getName(); QName qname = Types.schemaType(tname); if (qname == null) { qname = (QName)m_classSimpletypes.get(tname); if (qname == null) { ClassCustom custom = m_custom.getClassCustomization(type.getName()); if (custom != null && custom.isSimpleValue()) { qname = Types.STRING_QNAME; } else if (!type.isSuperclass("java.lang.Enum")) { m_context.addWarning("No schema equivalent known for type - treating as string", comp); qname = Types.STRING_QNAME; } } } return qname; }
for (int j = 0; j < contents.size(); j++) { IComponent comp = (IComponent)contents.get(j); if (comp.hasName()) {