.... @Override public void setValue(String newValue) { // do not allow null values! if (newValue==null) { newValue=""; } getMixed().clear(); FeatureMap.Entry cdata = null; // try to get the container Item EObject to determine the type Item item = (Item) this.eContainer; if (item != null && "xs:boolean".equals(item.getType())) { cdata = FeatureMapUtil.createTextEntry(newValue); } else { // default will wrap the value into a CDATA entry cdata = FeatureMapUtil.createCDATAEntry(newValue); } getMixed().add(cdata); } @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case ModelPackage.VALUE__MIXED: ((FeatureMap.Internal) getMixed()).set(newValue); return; case ModelPackage.VALUE__VALUE: setValue((String) newValue); return; } super.eSet(featureID, newValue); } .....