/** * XmlAttribute override will completely replace the existing values. * * @param xmlAttribute * @param oldProperty * @param nsInfo * @return */ private Property processXmlAttribute( XmlAttribute xmlAttribute, Property oldProperty, TypeInfo typeInfo, NamespaceInfo nsInfo) { // reset any existing values resetProperty(oldProperty, typeInfo); // handle xml-id if (xmlAttribute.isXmlId()) { typeInfo.setIDProperty(oldProperty); } else if (oldProperty.isXmlId()) { // account for XmlID un-set via XML if (typeInfo.getIDProperty() != null && typeInfo.getIDProperty().getPropertyName().equals(oldProperty.getPropertyName())) { typeInfo.setIDProperty(null); } } oldProperty.setIsXmlId(xmlAttribute.isXmlId()); // handle xml-idref oldProperty.setIsXmlIdRef(xmlAttribute.isXmlIdref()); // set isAttribute oldProperty.setIsAttribute(true); // set required oldProperty.setIsRequired(xmlAttribute.isRequired()); // set xml-inline-binary-data oldProperty.setisInlineBinaryData(xmlAttribute.isXmlInlineBinaryData()); // set schema name QName qName; String name = xmlAttribute.getName(); if (name.equals("##default")) { name = oldProperty.getPropertyName(); } if (xmlAttribute.getNamespace().equals("##default")) { if (nsInfo.isElementFormQualified()) { qName = new QName(nsInfo.getNamespace(), name); } else { qName = new QName(name); } } else { qName = new QName(xmlAttribute.getNamespace(), name); } oldProperty.setSchemaName(qName); // handle XmlJavaTypeAdapter if (xmlAttribute.getXmlJavaTypeAdapter() != null) { oldProperty.setXmlJavaTypeAdapter(xmlAttribute.getXmlJavaTypeAdapter()); } // handle xml-mime-type if (xmlAttribute.getXmlMimeType() != null) { oldProperty.setMimeType(xmlAttribute.getXmlMimeType()); } // handle xml-attachment-ref if (xmlAttribute.isXmlAttachmentRef()) { oldProperty.setIsSwaAttachmentRef(true); oldProperty.setSchemaType(XMLConstants.SWA_REF_QNAME); } // handle xml-schema-type if (xmlAttribute.getXmlSchemaType() != null) { oldProperty.setSchemaType( new QName( xmlAttribute.getXmlSchemaType().getNamespace(), xmlAttribute.getXmlSchemaType().getName())); } return oldProperty; }