国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > EMF的存儲設置

EMF的存儲設置
2010-01-14 22:49:41  作者:  來源:
一般我們在對EMF模型內容進行輸出,這里需要進行一些定制,下面是我在項目中做的一些定制,第一個是要將EMF Model輸出的xml中去掉一些名稱空間的信息,第二個就是希望把某些信息由Attribute類型轉換成Content類型,在得到的content類型的內容默認情況下會對<, >, &等字符進行轉換,這個也可以進行控制。借鑒EMF開發指南的做法,其實很簡單,這里要注意save和load使用的控制選項設置必須一致。
具體做法如下,
因為保存和加載xml是在XMLResourceImpl里面進行的,所以我們需要從該類繼承,overriding 相應的load和save方法,然后在使用到XMLResourceImpl的地方改成使用我們的派生之類,在定制的子類中,我們做了如下實現:
java 代碼
 
  1. public void load(Map options) throws IOException {   
  2.     super.load(addOptions(options));   
  3. }   
  4.   
  5. public void save(Map options) throws IOException {   
  6.     super.save(addOptions(options));   
  7. }   
  8.   
  9. /**  
  10.  * 設置序列化/反序列化選項  
  11.  *   
  12.  * @param options  
  13.  */  
  14. private Map addOptions(Map options) {   
  15.     // 這里的map只應創建一次   
  16.     XMLResource.XMLMap xmlMap = new XMLMapImpl();   
  17.   
  18.     EPackage ePackage = Configuration.INSTANCE.getViewEPackage();   
  19.     XMLResource.XMLInfo info = new XMLInfoImpl();   
  20.     info.setXMLRepresentation(XMLResource.XMLInfo.CONTENT);   
  21.   
  22.     // 將event的內容在attribute和content之間轉換   
  23.     EClass eClass = (EClass) ePackage   
  24.             .getEClassifier(Configuration.EVENT_NAME);   
  25.     xmlMap.add(eClass   
  26.             .getEStructuralFeature(Configuration.EVENT_ATTRIBUTE_CONTENT),   
  27.             info);   
  28.   
  29.     // 在生成的ddxml中去掉namespace聲明   
  30.     xmlMap.setNoNamespacePackage(ePackage);   
  31.   
  32.     if (options == Collections.EMPTY_MAP) {   
  33.         options = new HashMap();   
  34.     }   
  35.        
  36.     options.put(XMLResource.OPTION_XML_MAP, xmlMap);   
  37.        
  38.     // 避免對<,>,&等字符進行轉換   
  39.     options.put(XMLResource.OPTION_SKIP_ESCAPE, Boolean.TRUE);   
  40.   
  41.     return options;   
  42. }  

 

因為我們這里沒有對特殊字符進行轉換,所以我們需要在生成的content類型的內容加上<![CDATA, ]]>, 這個我們需要生成自己的XMLSaveImpl,然后overriding getContent(EObject o, EStructuralFeature[] features)這個方法:

java 代碼
 
  1. protected String getContent(EObject o, EStructuralFeature[] features) {   
  2.     if (map == null)   
  3.     {   
  4.       return null;   
  5.     }   
  6.   
  7.     for (int i = 0; i < features.length; i++)   
  8.     {   
  9.       EStructuralFeature feature = features[i];   
  10.       XMLResource.XMLInfo info = map.getInfo(feature);   
  11.       if (info != null && info.getXMLRepresentation() == XMLResource.XMLInfo.CONTENT)   
  12.       {   
  13.         Object value = helper.getValue(o, feature);   
  14.         String svalue = getDatatypeValue(value, feature, false);   
  15.         if (toDOM)   
  16.         {               
  17.           Node text = document.createTextNode(svalue);   
  18.           currentNode.appendChild(text);   
  19.           handler.recordValues(text, o, feature, value);   
  20.         }else {   
  21.             // 將內容前后加上<![CDATA and ]]>   
  22.             svalue = "<![CDATA[\n" +svalue + "\n]]>";   
  23.         }   
  24.         return svalue;   
  25.       }   
  26.     }   
  27.     return null;   
  28. }   

 當然了還必須在前面自己的XMLResourceImpl類里面重載createXMLSave()方法:

 

 

java 代碼
 
  1. protected XMLSave createXMLSave() {   
  2.     return new DoradoXMLSaveImpl(createXMLHelper());   
  3. }  

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
相關熱詞搜索:存儲
国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费
<button id="0mgmq"><pre id="0mgmq"></pre></button>
  • <tr id="0mgmq"></tr>
  • <abbr id="0mgmq"><source id="0mgmq"></source></abbr> <button id="0mgmq"></button>
  • 国产精华一区| 激情自拍一区| 成人高清在线观看| 在线观看亚洲| 在线天堂一区av电影| 女女同性女同一区二区三区91 | 免费成人在线观看av| 午夜亚洲视频| 国产亚洲毛片| 99在线|亚洲一区二区| 国产一区欧美| 欧美日韩亚洲一区二区三区在线观看| 日韩欧美第二区在线观看| 久久99精品国产99久久| 国产超碰91| 国产精品一区二| 国产精品视频免费观看| 福利视频一区二区三区| 97国产超碰| 国产一区喷水| 国产一区二区三区黄| 国产在线视频欧美一区二区三区| 久久精品五月婷婷| 国产精品国产三级欧美二区 | 久久精品aaaaaa毛片| 精品久久久久久乱码天堂| 九九热久久66| 日韩中文一区| 欧美视频在线观看| 亚洲高清精品中出| 亚洲欧美日韩精品综合在线观看| 在线亚洲观看| 国产精品av一区| 欧美国产二区| 亚洲人成网站在线播放2019| 欧美国产高潮xxxx1819| 亚洲一本视频| 久久久久久久高潮| 久久精品久久精品国产大片| 亚洲丰满在线| 亚洲无线视频| 久久久xxx| 欧美午夜精品久久久久久蜜| 亚洲精品电影在线一区| 亚洲图片在线| av蓝导航精品导航| 涩涩日韩在线| 99视频一区| 国内一区二区三区在线视频| 亚洲精品视频一二三| 亚洲国产精品久久久久久女王| 国产精品日韩欧美一区二区| 99在线免费观看视频| 亚洲精品无人区| 国产日韩一区| 欧美一进一出视频| 亚洲经典在线| 欧美大香线蕉线伊人久久| 欧美久久久久| 国产精品一区二区三区免费| 伊人色综合影院| 97超碰人人看人人 | 国产女主播一区二区三区| 精品久久sese| 激情综合自拍| 久久精品国产一区二区三区不卡| 在线观看国产一区| 不卡视频一区二区三区| 亚洲精蜜桃久在线| 久久综合九色99| 欧美成人有码| 韩国精品一区二区三区六区色诱| 欧美黄色精品| 久久综合九色欧美狠狠| 亚洲精品欧美| 一区二区精品视频| 成人综合色站| 亚洲激情偷拍| 亚洲电影一二三区| 成人在线免费观看一区| 伊人成年综合电影网| 精品欧美一区二区三区久久久 | 精品1区2区| 国产精品色网| 欧美黄污视频| 欧美日韩精品免费看| 蜜桃久久精品乱码一区二区| 欧美日韩在线精品| 亚洲丰满在线| 精品毛片久久久久久| 国产嫩草一区二区三区在线观看| 一区二区三区四区国产| 久久99精品久久久久久青青日本| 亚洲永久网站| 亚洲大胆在线| 欧美日韩国产精品一区二区亚洲| 久久婷婷开心| 狠狠色噜噜狠狠狠狠色吗综合| 夜久久久久久| 亚洲激情精品| 欧美在线不卡| 亚洲不卡中文字幕| 欧美午夜精品久久久久免费视| 成人资源视频网站免费| 免费看的黄色欧美网站| 一区二区三区精品国产| 韩国一区二区三区在线观看| 一区二区三区电影| 亚洲欧洲在线一区| 亚洲伊人婷婷| 亚洲精品无人区| 亚洲精品在线免费看| 婷婷久久伊人| 亚洲bbw性色大片| 亚洲欧美日韩国产yyy | 亚洲午夜激情| 影音先锋久久久| 亚洲国产免费看| 9久re热视频在线精品| 亚洲精品欧洲| 国产精品久久久久久久久婷婷| 在线视频观看日韩| 国产精品日韩一区二区| 亚洲一区二区三区精品视频| 国产精品一区亚洲| 亚洲免费在线| 99免费在线观看视频| 国产精品18毛片一区二区| 国产在线精品一区| 欧洲精品亚洲精品| 一本色道婷婷久久欧美| 欧美日韩天堂| 国产欧美丝祙| 超碰97人人人人人蜜桃| 精品麻豆av| 在线观看日韩片| 精品动漫3d一区二区三区免费| 99riav国产精品| 91精品网站| 免费在线观看91| 欧美一区二区| 亚洲一区二区三区免费在线观看| 久久精品官网| 欧美三级网色| 国内综合精品午夜久久资源| 国产精品老牛| 久久精品一二三区| 亚洲欧美一区二区原创| 国产精品久久波多野结衣| 国产欧美一区二区在线播放| 欧美主播一区二区三区美女 久久精品人 | 亚洲性视频h| 97视频中文字幕| 天堂资源在线亚洲资源| 一本综合精品| 久久资源av| 亚洲黄色成人久久久| 成人情视频高清免费观看电影| 日韩欧美在线电影| 日韩午夜在线| 精品国产综合区久久久久久| 午夜精品国产| 9a蜜桃久久久久久免费| 欧美一区1区三区3区公司| 久久精品男女| 中文字幕中文字幕一区三区| 久久久久国产精品一区二区| 日韩电影天堂视频一区二区| 国产精品久久久对白| 欧洲高清一区二区| 中文国产一区| 亚洲国产日韩欧美| 91丨九色丨国产| 午夜日韩电影| 欧美精品一区二区视频| 一本色道久久综合亚洲精品婷婷| 麻豆精品传媒视频| 亚洲欧美日韩国产一区二区| 一区不卡字幕| 国产在线精品一区二区三区| 在线日韩av| 一区二区三区在线视频111| 91情侣在线视频| 亚洲精品极品| 欧美成人69| 蜜桃臀一区二区三区| 噜噜噜久久亚洲精品国产品小说| 一区二区三区不卡在线| 国产经典一区二区三区| 国产精品视频免费一区| 中文字幕一区二区三区在线乱码 | 国产综合自拍| 婷婷五月色综合| 久久av一区二区| 97超级碰碰| 一道本一区二区| 在线看无码的免费网站| 中文字幕中文字幕99| 日韩欧美激情一区二区| 久久综合九九|