public void addElement(ElementBinding element) { ParticleBinding particle = new ParticleBinding(element); elements.put(element.getQName(), particle); }
public ElementBinding addElement(QName name, TypeBinding type) { ElementBinding element = new ElementBinding(this, name, type); addElement(element); return element; }
private boolean marshalElement(ElementBinding element, TypeBinding xsiType, boolean optional, boolean declareNs) { Object value = stack.peek(); boolean nillable = element.isNillable(); boolean result = value != null || value == null && (optional || nillable); boolean trace = log.isTraceEnabled() && result; if(trace) { log.trace("started element " + element.getQName()); } if(value != null) { boolean declareXsiType = xsiType != null; marshalElementType(element.getQName(), declareXsiType ? xsiType : element.getType(), declareNs, declareXsiType ); } else if(nillable) { writeNillable(element.getQName(), nillable); } if(trace) { log.trace("finished element " + element.getQName()); } return result; }
private ElementBinding findLocalPathElement(ElementBinding element, String[] path, int pos) { String name = path[pos]; if (!name.equals(element.getQName().getLocalPart())) return null; // End of path if (path.length - 1 == pos) return element; ParticleBinding particle = element.getType().getParticle(); if (particle == null) return null; TermBinding term = particle.getTerm(); if (!term.isModelGroup()) return null; ModelGroupBinding group = (ModelGroupBinding)term; Iterator i = group.getParticles().iterator(); // Increase depth return findLocalPathElement(i, path, pos + 1); }
ClassMetaData clsMetaData = element.getClassMetaData(); clsName = clsMetaData == null ? null : clsMetaData.getImpl(); if(clsName == null) MapEntryMetaData mapEntryMetaData = element.getMapEntryMetaData(); if(mapEntryMetaData != null) PropertyMetaData propertyMetaData = element.getPropertyMetaData(); String propName = propertyMetaData == null ? null : propertyMetaData.getName(); if(propName == null) if(element.getAddMethodMetaData() == null && element.getPutMethodMetaData() == null) Util.xmlNameToFieldName(element.getQName().getLocalPart(), element.getSchema().isIgnoreLowLine()); return loadClassForTerm(clsName, element.getSchema().isIgnoreUnresolvedFieldOrClass(), element.getQName());
TypeBinding type = ((ElementBinding)term).getType(); if(type.isSimple() || classMetaData == null && mapEntryMetaData == null && TypeBinding type = ((ElementBinding)term).getType(); if(type.getAttributes().isEmpty()) (arrayItem.isSkip() || arrayItem.getMapEntryMetaData() != null || arrayItem.getPutMethodMetaData() != null || arrayItem.getAddMethodMetaData() != null )) term.getPropertyMetaData() : arrayItem.getPropertyMetaData(); wrapperType == null ? elementName.getLocalPart() : arrayItem.getQName().getLocalPart(), term.getSchema().isIgnoreLowLine() ); 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)
if(element.getQName().equals(startName)) parentType = element.getType(); ParticleBinding typeParticle = parentType.getParticle(); ModelGroupBinding modelGroup = typeParticle == null ? null : (ModelGroupBinding)typeParticle.getTerm(); ElementBinding xopInclude = new ElementBinding(schema, Constants.QNAME_XOP_INCLUDE, xopIncludeType); parentElement.setXopUnmarshaller(schema.getXopUnmarshaller()); throw new JBossXBRuntimeException((typeName == null ? "Anonymous" : typeName.toString()) + " type of element " + element.getQName() + " should be complex and contain " + startName + " as a child element." ); ((ElementBinding)term).getQName() ); log.trace(element.getQName() + " uses xsi:type " + xsiType); element = new ElementBinding(schemaBinding, startName, xsiTypeBinding); particle = new ParticleBinding(element, TypeBinding type = element.getType(); if(type == null) List interceptors = element.getInterceptors();
ElementBinding urlElement = new ElementBinding(this, new QName(NAMESPACE, "url"), stringType); ParticleBinding urlParticle = new ParticleBinding(urlElement, 0, 1, true); bootstrapModel.addParticle(urlParticle); bootstrapType.pushInterceptor(urlElement.getQName(), new DefaultElementInterceptor() addElement(new ElementBinding(this, new QName(NAMESPACE, "bootstrap"), bootstrapType));
element = new ElementBinding(schema, qName, type); element.setNillable(elementDec.getNillable()); particle = new ParticleBinding(element); particle.setMinOccurs(minOccurs); if (trace) log.trace("Element " + element.getQName() + " added to " + parentGroup); particle.isRepeatable() + ", nillable=" + element.isNillable() + ", minOccurs=" + minOccurs + ", maxOccurs=" + (maxOccursUnbounded ? "unbounded" : "" + maxOccurs) +
QName endName = element.getQName(); TypeBinding type = element.getType(); List interceptors = element.getInterceptors(); int interceptorsTotal = interceptors.size(); SchemaBinding schema = element.getSchema(); if(textContent.length() == 0) schema.isStrictSchema() && !element.isSkip()) ValueMetaData valueMetaData = element.getValueMetaData(); if(valueMetaData == null) if (parentParticle != null && parentParticle.getTerm().isElement()) WildcardBinding wildcard = ((ElementBinding) parentParticle.getTerm()).getType().getWildcard(); if (wildcard != null)
private String classFromQName(ElementBinding element) { String clsName; QName typeBase = element.getType().getQName(); if(typeBase == null) { typeBase = element.getQName(); } SchemaBinding schema = element.getSchema(); PackageMetaData pkgMetaData = schema.getPackageMetaData(); if(pkgMetaData == null) { clsName = Util.xmlNameToClassName(typeBase.getNamespaceURI(), typeBase.getLocalPart(), schema.isIgnoreLowLine() ); } else { String pkg = pkgMetaData.getName(); clsName = pkg == null || pkg.length() == 0 ? Util.xmlNameToClassName(typeBase.getLocalPart(), schema.isIgnoreLowLine()) : pkg + "." + Util.xmlNameToClassName(typeBase.getLocalPart(), schema.isIgnoreLowLine()); } return clsName; }
PropertyMetaData propertyMetaData = element.getPropertyMetaData(); if(propertyMetaData != null) fieldName = Util.xmlNameToFieldName(element.getQName().getLocalPart(), ignoreLowLine);
TypeBinding type = element.getType(); CharactersMetaData characters = type.getCharactersMetaData(); if (characters != null) TypeBinding type = element.getType(); if (type != null && !type.isSimple()/* && type.hasSimpleContent()*/) PropertyMetaData PropertyMetaData = element.getPropertyMetaData(); if (PropertyMetaData != null) propName = Util.xmlNameToFieldName(qName.getLocalPart(), element.getSchema().isIgnoreLowLine()); RtUtil.set(owner, value, propName, colType, element.getSchema().isIgnoreUnresolvedFieldOrClass(), element .getValueAdapter());
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx) { if(attrsHandler != null) { attrsHandler.attributes(o, elementName, element.getType(), attrs, nsCtx); } }
type.setParticle(new ParticleBinding(sequence)); ElementBinding element = new ElementBinding(schema, qName, type); element.setSkip(Boolean.TRUE); return element; type.setParticle(new ParticleBinding(sequence)); return new ElementBinding(schema, qName, type);
if(value != null) QName typeQName = element.getType().getQName(); xsiTypeQName = (QName)cls2TypeMap.get(value.getClass()); TermBeforeMarshallingCallback marshallingHandler = element.getBeforeMarshallingCallback(); if(marshallingHandler != null)
private Class classForElement(ElementBinding element, Class parentClass) TypeBinding type = element.getType(); QName typeQName = type.getQName(); if(typeQName != null && Constants.NS_XML_SCHEMA.equals(typeQName.getNamespaceURI())) cls = SimpleTypeBindings.classForType(type.getQName().getLocalPart(), element.isNillable());
public void bindParameterToElement(SchemaBinding schemaBinding, QName xmlName, QName xmlType) { TypeBinding typeBinding; boolean isAnonymousType = xmlType.getLocalPart().startsWith(">"); if (isAnonymousType) { typeBinding = getAnonymousTypeBinding(schemaBinding, xmlType); } else { typeBinding = schemaBinding.getType(xmlType); } if (typeBinding != null) { if(!isAnonymousType) { ElementBinding eb = schemaBinding.addElement(xmlName, typeBinding); eb.setNillable(true); } } else if (xmlType.equals(Constants.TYPE_LITERAL_ANYTYPE) == false) { throw NativeMessages.MESSAGES.rootTypeNotFoundInSchema(xmlType); } }
ElementBinding urlElement = new ElementBinding(this, new QName(NAMESPACE, "url"), stringType); ParticleBinding urlParticle = new ParticleBinding(urlElement, 0, 1, true); bootstrapModel.addParticle(urlParticle); bootstrapType.pushInterceptor(urlElement.getQName(), new DefaultElementInterceptor() addElement(new ElementBinding(this, new QName(NAMESPACE, "bootstrap"), bootstrapType));