/** * This method will create a new simple type binding with the passed in characters handler * and set this simple type as the simple type of the complex type the method was invoked on. * @param charactersHandler */ public void setSimpleType(CharactersHandler charactersHandler) { setSimpleType(new TypeBinding(charactersHandler)); }
public static void initBeanHandler(TypeBinding typeBinding) { typeBinding.setHandler(SpringBeanHandler.HANDLER); // handle constructor-arg typeBinding.pushInterceptor(SpringSchemaBinding.constructorQName, ConstructorArgInterceptor.INTERCEPTOR); // handle properties typeBinding.pushInterceptor(SpringSchemaBinding.propertyQName, BeanPropertyInterceptor.INTERCEPTOR); // todo lookup-method // todo replaced method }
public static void configureValueBindings(TypeBinding typeBinding) { // type has beans typeBinding.pushInterceptor(SpringSchemaBinding.beanQName, ValueMetaDataElementInterceptor.VALUES); // type has refs typeBinding.pushInterceptor(SpringSchemaBinding.refQName, ValueMetaDataElementInterceptor.VALUES); // type has values typeBinding.pushInterceptor(SpringSchemaBinding.valueQName, ValueMetaDataElementInterceptor.VALUES); // type can take a list typeBinding.pushInterceptor(SpringSchemaBinding.listQName, ValueMetaDataElementInterceptor.VALUES); // type can take a set typeBinding.pushInterceptor(SpringSchemaBinding.setQName, ValueMetaDataElementInterceptor.VALUES); // type can take a map typeBinding.pushInterceptor(SpringSchemaBinding.mapQName, ValueMetaDataElementInterceptor.VALUES); // type has a null typeBinding.pushInterceptor(SpringSchemaBinding.nullQName, NullValueElementInterceptor.NULLVALUES); // type has wildcard WildcardBinding wcb = typeBinding.getWildcard(); if (wcb == null) throw new IllegalStateException("Missing wildcard binding for type: " + typeBinding.getQName()); wcb.setWildcardHandler(ValueWildcardHandler.WILDCARD); }
public static void initValueHandler(TypeBinding typeBinding) { typeBinding.setHandler(SpringPlainValueHandler.SPRING_PLAIN_VALUE_HANDLER); // value can take characters typeBinding.setSimpleType(PlainValueCharactersHandler.HANDLER); }
binding = new TypeBinding(typeName); binding.setBaseType(baseType); binding.setSimple(false); binding.setSimpleType(simpleType); binding.setSimpleType(stringType); binding.setSchemaBinding(schema); binding.addAttribute(attrBinding); if(hasOnlyIdAttrs && !Constants.QNAME_ID.equals(attrBinding.getType().getQName())) binding.setClassMetaData(classMetaData); binding.setCharactersMetaData(charactersMetaData); binding.setMapEntryMetaData(mapEntryMetaData); binding.setSkip(skip); binding.setPropertyMetaData(propertyMetaData); binding.setAddMethodMetaData(addMethodMetaData); if(binding.getClassMetaData() == null && simpleContentWithIdAsSimpleType && particle == null && hasOnlyIdAttrs)
TypeBinding bootstrapType = new TypeBinding(new QName(NAMESPACE, "bootstrapType")); bootstrapType.setSimple(false); AllBinding bootstrapModel = new AllBinding(this); ParticleBinding bootstrapParticle = new ParticleBinding(bootstrapModel, 1, 1, false); bootstrapType.setParticle(bootstrapParticle); ClassMetaData bootstrapClassMetaData = new ClassMetaData(); bootstrapClassMetaData.setImpl(BootstrapMetaData.class.getName()); bootstrapType.setClassMetaData(bootstrapClassMetaData); ParticleBinding urlParticle = new ParticleBinding(urlElement, 0, 1, true); bootstrapModel.addParticle(urlParticle); bootstrapType.pushInterceptor(urlElement.getQName(), new DefaultElementInterceptor()
TypeBinding baseType = baseTypeDef == null ? null : bindType(baseTypeDef); binding = baseType == null ? new TypeBinding(typeName) : new TypeBinding(typeName, baseType); binding.addLexicalPattern(strList.item(i)); binding.addEnumValue(strList.item(i)); binding.setItemType(itemType); if(baseType != null) msg += " inherited binding metadata from " + baseType.getQName(); classMetaData.getImpl()); binding.setClassMetaData(classMetaData); valueMetaData.getMarshalMethod()); binding.setValueMetaData(valueMetaData); binding.setSchemaBinding(schema);
ParticleBinding typeParticle = parentType.getParticle(); ModelGroupBinding modelGroup = typeParticle == null ? null : (ModelGroupBinding)typeParticle.getTerm(); if(modelGroup == null) TypeBinding xopIncludeType = new TypeBinding(new QName(Constants.NS_XOP_INCLUDE, "Include")); xopIncludeType.setSchemaBinding(schema); xopIncludeType.addAttribute(new QName("href"), anyUriType, DefaultHandlers.ATTRIBUTE_HANDLER); xopIncludeType.setHandler(new XOPIncludeHandler(parentType, schema.getXopUnmarshaller())); QName typeName = parentType.getQName(); throw new JBossXBRuntimeException((typeName == null ? "Anonymous" : typeName.toString()) + " type of element " + handler = type.getHandler(); if(handler == null) List localInterceptors = parentType == null ? Collections.EMPTY_LIST : parentType.getInterceptors(startName); List interceptors = element.getInterceptors(); if(interceptors.size() + localInterceptors.size() > 0) startName + " is not bound " + (parentBinding == null ? "as a global element." : "in type " + parentBinding.getType().getQName()); if(schemaBinding != null && schemaBinding.isStrictSchema())
private static void addXOPInclude(TypeBinding binding, SchemaBinding schema) { binding.setHandler(DefaultHandlers.XOP_HANDLER); if(binding.getParticle() != null) { throw new JBossXBRuntimeException( "XOP optimizable type has a particle which is unexpected, please, open a JIRA issue!" ); } TypeBinding anyUriType = schema.getType(Constants.QNAME_ANYURI); if(anyUriType == null) { log.warn("Type " + Constants.QNAME_ANYURI + " not bound."); } TypeBinding xopIncludeType = new TypeBinding(new QName(Constants.NS_XOP_INCLUDE, "Include")); xopIncludeType.setSchemaBinding(schema); xopIncludeType.addAttribute(new QName("href"), anyUriType, DefaultHandlers.ATTRIBUTE_HANDLER); xopIncludeType.setHandler(new XOPIncludeHandler(binding)); ElementBinding xopInclude = new ElementBinding(schema, new QName(Constants.NS_XOP_INCLUDE, "Include"), xopIncludeType); ParticleBinding particleBinding = new ParticleBinding(xopInclude); particleBinding.setMinOccurs(0); binding.addParticle(particleBinding); }
public static void initBeansHandler(TypeBinding typeBinding) { typeBinding.setHandler(SpringBeansHandler.HANDLER); // handle import typeBinding.pushInterceptor(SpringSchemaBinding.importQName, ImportInterceptor.INTERCEPTOR); // handle aliases typeBinding.pushInterceptor(SpringSchemaBinding.aliasQName, DeploymentAliasInterceptor.INTERCEPTOR); // handle beans typeBinding.pushInterceptor(SpringSchemaBinding.beanQName, DeploymentBeanInterceptor.INTERCEPTOR); // Deployment can take wildcards typeBinding.getWildcard().setWildcardHandler(DeploymentWildcardHandler.HANDLER); }
private void processExceptionMapping(SchemaBinding schemaBinding, ExceptionMapping exceptionMapping) { QName xmlType = exceptionMapping.getWsdlMessage(); String javaType = exceptionMapping.getExceptionType(); log.trace("processExceptionMapping: [xmlType=" + xmlType + ",javaType=" + javaType + "]"); if (schemaBinding.getType(xmlType) == null) { TypeBinding typeBinding = new TypeBinding(xmlType); ClassMetaData cmd = new ClassMetaData(); cmd.setUseNoArgCtor(Boolean.FALSE); cmd.setImpl(javaType); typeBinding.setClassMetaData(cmd); typeBinding.setSimple(false); schemaBinding.addType(typeBinding); } }
List localInterceptors = item.parentType == null ? Collections.EMPTY_LIST : item.parentType.getInterceptors(endName); int localInterceptorsTotal = localInterceptors.size(); TypeBinding charType = type.getSimpleType(); if(charType == null) CharactersHandler charHandler = item.ignoreCharacters ? null : charType.getCharactersHandler(); if(textContent.length() > 0 || charHandler != null && type.isSimple()) if(!type.isSimple() && schema != null && schema.isStrictSchema() endName + " with type binding " + type.getQName() + " does not include text content binding: " + dataContent ); CharactersMetaData charactersMetaData = type.getCharactersMetaData(); if(charactersMetaData != null) TermBeforeSetParentCallback beforeSetParent = charType.getBeforeSetParentCallback(); if(beforeSetParent != null) if(type.isSimple()) WildcardBinding wildcard = ((ElementBinding) parentParticle.getTerm()).getType().getWildcard();
sequence.addParticle(particle); TypeBinding type = new TypeBinding(); type.setParticle(new ParticleBinding(sequence)); sequence.addParticle(particle); TypeBinding type = new TypeBinding(); type.setHandler(unresolvedElementHandler); type.setSimpleType(unresolvedCharactersHandler); type.setParticle(new ParticleBinding(sequence));
Collection attrBindings = type.getAttributes(); int attrsTotal = declareNs || declareXsiType ? nsRegistry.size() + attrBindings.size() + 1: attrBindings.size(); ctx.attrs = attrsTotal > 0 ? new AttributesImpl(attrsTotal) : null; generatedPrefix = declareXsiType(type.getQName(), ctx.attrs); if(generatedPrefix != null) String typeNsWithGeneratedPrefix = type.getQName().getNamespaceURI(); declareNs(ctx.attrs, generatedPrefix, typeNsWithGeneratedPrefix); declareNamespace(generatedPrefix, typeNsWithGeneratedPrefix); TypeBinding simpleType = type.getSimpleType(); if(simpleType != null) CharactersMetaData charactersMetaData = type.getCharactersMetaData(); PropertyMetaData propertyMetaData = charactersMetaData == null ? null : charactersMetaData.getProperty(); if(propertyMetaData != null) boolean ignoreUnresolvedFieldOrClass = type.getSchemaBinding().isIgnoreUnresolvedFieldOrClass(); Object o = stack.peek(); Object value = getElementValue(o, fieldName, ignoreUnresolvedFieldOrClass); if(value != null) String typeName = simpleType.getQName().getLocalPart(); if(ctx.attrs == null && (SimpleTypeBindings.XS_QNAME_NAME.equals(typeName) || SimpleTypeBindings.XS_NOTATION_NAME.equals(typeName) || simpleType.getItemType() != null && (SimpleTypeBindings.XS_QNAME_NAME.equals(simpleType.getItemType().getQName().getLocalPart()) || SimpleTypeBindings.XS_NOTATION_NAME.equals(simpleType.getItemType().getQName().getLocalPart())
if(type.isSimple() || classMetaData == null && mapEntryMetaData == null && (!type.isStartElementCreatesObject() || Constants.QNAME_ANYTYPE.equals(type.getQName()))) if(type.getAttributes().isEmpty()) ParticleBinding typeParticle = type.getParticle(); ModelGroupBinding modelGroup = (ModelGroupBinding)(typeParticle == null ? null : typeParticle.getTerm()); arrayItem = modelGroup == null ? null : modelGroup.getArrayItem(); else if(((ElementBinding)term).getType().getInterceptors(arrayItem.getQName()).isEmpty() && arrayItem.getInterceptors().isEmpty()) QName typeName = ((ElementBinding)term).getType().getQName(); throw new JBossXBRuntimeException( "Couldn't apply 'array wrapper' pattern for element " + TypeBinding simpleType = element.getType().getSimpleType(); if (simpleType != null)
private static Class classForSimpleType(TypeBinding type, boolean nillable) ValueMetaData valueMetaData = type.getValueMetaData(); if(valueMetaData != null && valueMetaData.getUnmarshalMethod() != null) return RtUtil.getUnmarshalMethod(type.getQName(), valueMetaData).getReturnType(); else if(type.getClassMetaData() != null && type.getClassMetaData().getImpl() != null) return RtUtil.loadClass(type.getClassMetaData().getImpl(), true); TypeBinding itemType = type.getItemType(); if(itemType != null) if(type.getSchemaBinding().isUnmarshalListsToArrays()) QName qName = type.getQName(); if(qName != null && Constants.NS_XML_SCHEMA.equals(qName.getNamespaceURI())) TypeBinding baseType = type.getBaseType(); if(baseType == null)
QName simpleTypeQName = simpleType.getQName(); if(simpleType.getItemType() != null) TypeBinding itemType = simpleType.getItemType(); if(Constants.NS_XML_SCHEMA.equals(itemType.getQName().getNamespaceURI())) marshalled = SimpleTypeBindings.marshalList(itemType.getQName().getLocalPart(), list, null); else if(simpleType.getLexicalPattern() != null && simpleType.getBaseType() != null && Constants.QNAME_BOOLEAN.equals(simpleType.getBaseType().getQName())) String item = (String)simpleType.getLexicalPattern().get(0); if(item.indexOf('0') != -1 && item.indexOf('1') != -1) if(simpleType.getLexicalEnumeration() != null) simpleType.getBaseType(), value );
if(isSimpleTypeBinding == false) ClassMetaData classMetaData = typeBinding.getClassMetaData(); if (classMetaData == null) typeBinding.setClassMetaData(classMetaData); QName typeQName = typeBinding.getQName(); log.trace("Bound: [xmlType=" + typeQName + ",javaType=" + javaType + "]");
QName typeQName = type.getQName(); if(typeQName != null && Constants.NS_XML_SCHEMA.equals(typeQName.getNamespaceURI())) cls = SimpleTypeBindings.classForType(type.getQName().getLocalPart(), element.isNillable()); if(!type.isSimple() && type.getAttributes().isEmpty()) ParticleBinding typeParticle = type.getParticle(); ModelGroupBinding modelGroup = (ModelGroupBinding)(typeParticle == null ? null : typeParticle.getTerm()); arrayItem = modelGroup == null ? null : modelGroup.getArrayItem();
ElementBinding el = getElement(qName); if(el == null) el = addElement(qName, new TypeBinding());