/* */ private void marshalElementType(QName elementQName, TypeBinding type, boolean declareNs, boolean declareXsiType)
/* */ {
/* 353 */ String elementNs = elementQName.getNamespaceURI();
/* 354 */ String elementLocal = elementQName.getLocalPart();
/* */
/* 356 */ XOPMarshaller xopMarshaller = this.schema.getXopMarshaller();
/* 357 */ if (xopMarshaller == null)
/* */ {
/* 359 */ xopMarshaller = type.getXopMarshaller();
/* */ }
/* */
/* 362 */ if ((xopMarshaller != null) && (isXopOptimizable(type)))
/* */ {
/* 365 */ if (xopMarshaller.isXOPPackage())
/* */ {
/* 368 */ Object o = this.stack.peek();
/* 369 */ String cid = xopMarshaller.addMtomAttachment(new XOPObject(o), elementNs, elementLocal);
/* */
/* 372 */ AttributesImpl attrs = null;
/* 373 */ String prefix = getPrefix(elementNs);
/* 374 */ boolean genPrefix = (prefix == null) && (elementNs != null) && (elementNs.length() > 0);
/* 375 */ if (genPrefix)