亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

詳解Eclipse XSD 生成枚舉類型的Schema的實例

2024-09-05 00:18:31
字體:
來源:轉載
供稿:網友

由于互聯網上沒有關于Eclipse XSD的中文信息,也沒有關于Eclipse XSD的示例代碼,但有時我們需要生成一個簡單的帶有枚舉限制的XSD模式類型,下文是錯新技術頻道小編為你帶來的介紹。

Eclipse XSD 生成枚舉類型的Schema的實例詳解

<?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://www.w3.org/2001/XMLSchema"  targetNamespace="http://www.w3.org/2001/XMLSchema">    <complexType name="StudentType">     <sequence>      <element maxOccurs="1" minOccurs="1" name="username" type="string"/>      <element maxOccurs="1" minOccurs="1" name="password" type="string"/>      <element maxOccurs="1" minOccurs="1" name="alignment" type="AlignmentType"/>     </sequence>    </complexType>    <simpleType name="AlignmentType">     <restriction base="string">      <enumeration value="RIGHT"/>      <enumeration value="MIDDLE"/>      <enumeration value="LEFT"/>     </restriction>    </simpleType>    <element name="Student" type="StudentType"/>   </schema> 

其中, <SimpleType name="AlignmentType"> 代表的就是一個帶枚舉限定的簡單類型。那么應該如何生成呢?請見參考下面的代碼。

import org.eclipse.xsd.XSDComplexTypeDefinition; import org.eclipse.xsd.XSDCompositor; import org.eclipse.xsd.XSDElementDeclaration; import org.eclipse.xsd.XSDEnumerationFacet; import org.eclipse.xsd.XSDFactory; import org.eclipse.xsd.XSDImport; import org.eclipse.xsd.XSDInclude; import org.eclipse.xsd.XSDModelGroup; import org.eclipse.xsd.XSDParticle; import org.eclipse.xsd.XSDRedefine; import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.XSDSchemaDirective; import org.eclipse.xsd.XSDSimpleTypeDefinition; import org.eclipse.xsd.util.XSDResourceImpl; import org.eclipse.xsd.util.XSDUtil; import org.junit.Test; import org.w3c.dom.Element;  public class EnumFacetTest {   protected static XSDFactory xsdFactory = XSDFactory.eINSTANCE;   private void createAligementElement(XSDSimpleTypeDefinition aligmentType){   String[] cellAligements={"RIGHT","MIDDLE","LEFT"};    for(int i=0;i<cellAligements.length;i++){      XSDEnumerationFacet alEnum=XSDFactory.eINSTANCE.createXSDEnumerationFacet();      alEnum.setLexicalValue(cellAligements[i]);      //aligmentType.getFacets().add(alEnum);      aligmentType.getFacetContents().add(alEnum);    }    }   /**   <?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://www.w3.org/2001/XMLSchema"  targetNamespace="http://www.w3.org/2001/XMLSchema">    <complexType name="StudentType">     <sequence>      <element maxOccurs="1" minOccurs="1" name="username" type="string"/>      <element maxOccurs="1" minOccurs="1" name="password" type="string"/>      <element maxOccurs="1" minOccurs="1" name="alignment" type="AlignmentType"/>     </sequence>    </complexType>    <simpleType name="AlignmentType">     <restriction base="string">      <enumeration value="RIGHT"/>      <enumeration value="MIDDLE"/>      <enumeration value="LEFT"/>     </restriction>    </simpleType>    <element name="Student" type="StudentType"/>   </schema>   */   @Test    public void EnumFacetTest() {     String targeNameSpace="http://www.w3.org/2001/XMLSchema";     XSDSchema xsdSchema=xsdFactory.createXSDSchema();     xsdSchema.setTargetNamespace(targeNameSpace);     xsdSchema.getQNamePrefixToNamespaceMap().put(null, "http://www.w3.org/2001/XMLSchema");      //1.1 Create Complex type:student     XSDComplexTypeDefinition complexTypeDef = xsdFactory.createXSDComplexTypeDefinition();     complexTypeDef.setTargetNamespace(xsdSchema.getTargetNamespace());     complexTypeDef.setName("StudentType");          XSDParticle xsdParticle=xsdFactory.createXSDParticle();     XSDModelGroup xsdModuleGroup=xsdFactory.createXSDModelGroup();     xsdModuleGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL);        xsdParticle.setContent(xsdModuleGroup);          complexTypeDef.setContent(xsdParticle);     complexTypeDef.setContentType(xsdParticle);     xsdSchema.getContents().add(complexTypeDef);          //1.2 Add element for complex type     //1.2.1 username element     XSDParticle localXSDParticle = xsdFactory.createXSDParticle();     localXSDParticle.setMinOccurs(1);     localXSDParticle.setMaxOccurs(1);     XSDElementDeclaration localXSDElementDeclaration = xsdFactory.createXSDElementDeclaration();     localXSDElementDeclaration.setTargetNamespace(targeNameSpace);     localXSDElementDeclaration.setName("username");     XSDSchema localXSDSchema = XSDUtil.getSchemaForSchema("http://www.w3.org/2001/XMLSchema");     XSDSimpleTypeDefinition localSimpleType=localXSDSchema.resolveSimpleTypeDefinition("string");     localXSDElementDeclaration.setTypeDefinition(localSimpleType);     localXSDParticle.setContent(localXSDElementDeclaration);     xsdModuleGroup.getContents().add(localXSDParticle);          //1.2.2 password element     localXSDParticle = xsdFactory.createXSDParticle();     localXSDParticle.setMinOccurs(1);     localXSDParticle.setMaxOccurs(1);     localXSDElementDeclaration = xsdFactory.createXSDElementDeclaration();     localXSDElementDeclaration.setTargetNamespace(targeNameSpace);     localXSDElementDeclaration.setName("password");     localXSDSchema = XSDUtil.getSchemaForSchema("http://www.w3.org/2001/XMLSchema");     localSimpleType=localXSDSchema.resolveSimpleTypeDefinition("string");     localXSDElementDeclaration.setTypeDefinition(localSimpleType);     localXSDParticle.setContent(localXSDElementDeclaration);     xsdModuleGroup.getContents().add(localXSDParticle);          //1.2.3.1 Create Simple Type with XSDEnumerationFacet---------------      XSDSimpleTypeDefinition xsdSimpleTypeDefinition = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();      XSDSimpleTypeDefinition baseTypeDefinition = xsdSchema.resolveSimpleTypeDefinitionURI("string");      xsdSimpleTypeDefinition.setBaseTypeDefinition(baseTypeDefinition);      xsdSimpleTypeDefinition.setName("AlignmentType");      createAligementElement(xsdSimpleTypeDefinition);      xsdSchema.getContents().add(xsdSimpleTypeDefinition);     //1.2.3.2 Create element with Simple Type --------------      localXSDParticle = xsdFactory.createXSDParticle();      localXSDParticle.setMinOccurs(1);      localXSDParticle.setMaxOccurs(1);      localXSDElementDeclaration = xsdFactory.createXSDElementDeclaration();      localXSDElementDeclaration.setTargetNamespace(targeNameSpace);      localXSDElementDeclaration.setName("alignment");      localXSDSchema = XSDUtil.getSchemaForSchema("http://www.w3.org/2001/XMLSchema");      localXSDElementDeclaration.setTypeDefinition(xsdSimpleTypeDefinition);      localXSDParticle.setContent(localXSDElementDeclaration);      xsdModuleGroup.getContents().add(localXSDParticle);        //2.Create XSDElementDeclaration and attached complex type to XSD element     XSDElementDeclaration xsdEelement=xsdFactory.createXSDElementDeclaration();     xsdEelement.setName("Student");     xsdEelement.setTypeDefinition(complexTypeDef);     xsdSchema.getContents().add(xsdEelement);          //3.Print Schema     SchemaPrintService.printSchema(xsdSchema);           } }  class SchemaPrintService {   /**    * print schema to console    *    * @param xsdSchema    */   public static void printSchema(XSDSchema xsdSchema) {     System.out.println("<!-- ===== Schema Composition =====");     printDirectives(" ", xsdSchema);     System.out.println("-->");      System.out         .println("<!-- [ " + xsdSchema.getSchemaLocation() + " ] -->");     xsdSchema.updateElement();     Element element = xsdSchema.getElement();     if (element != null) {       // Print the serialization of the model.       XSDResourceImpl.serialize(System.out, element);     }   }    private static void printSchemaStart(XSDSchema xsdSchema) {     System.out.print("<schema targetNamespace=/"");     if (xsdSchema.getTargetNamespace() != null) {       System.out.print(xsdSchema.getTargetNamespace());     }     System.out.print("/" schemaLocation=/"");     if (xsdSchema.getSchemaLocation() != null) {       System.out.print(xsdSchema.getSchemaLocation());     }     System.out.print("/">");   }    private static void printDirectives(String indent, XSDSchema xsdSchema) {     System.out.print(indent);     printSchemaStart(xsdSchema);     System.out.println();      if (!xsdSchema.getReferencingDirectives().isEmpty()) {       System.out.println(indent + " <referencingDirectives>");       for (XSDSchemaDirective xsdSchemaDirective : xsdSchema           .getReferencingDirectives()) {         XSDSchema referencingSchema = xsdSchemaDirective.getSchema();         System.out.print(indent + "  ");         printSchemaStart(referencingSchema);         System.out.println();         System.out.print(indent + "   ");         if (xsdSchemaDirective instanceof XSDImport) {           XSDImport xsdImport = (XSDImport) xsdSchemaDirective;           System.out.print("<import namespace=/"");           if (xsdImport.getNamespace() != null) {             System.out.print(xsdImport.getNamespace());           }           System.out.print("/" schemaLocation=/"");         } else if (xsdSchemaDirective instanceof XSDRedefine) {           System.out.print("<redefine schemaLocation=/"");         } else if (xsdSchemaDirective instanceof XSDInclude) {           System.out.print("<include schemaLocation=/"");         }         if (xsdSchemaDirective.getSchemaLocation() != null) {           System.out.print(xsdSchemaDirective.getSchemaLocation());         }         System.out.println("/"/>");         System.out.println(indent + "  </schema>");       }       System.out.println(indent + " </referencingDirectives>");     }      if (!xsdSchema.getIncorporatedVersions().isEmpty()) {       System.out.println(indent + " <incorporatedVersions>");       for (XSDSchema incorporatedVersion : xsdSchema           .getIncorporatedVersions()) {         printDirectives(indent + "  ", incorporatedVersion);       }       System.out.println(indent + " </incorporatedVersions>");     }      System.out.println(indent + "</schema>");   }  } 

以上就是錯新技術頻道小編給大家述說的關于詳解Eclipse XSD 生成枚舉類型的Schema的實例,如果有筒靴們對這行業有興趣的話,可以在這方面進行學習。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精彩精品视频| 成人精品久久久| 亚洲激情国产精品| 欧美极品少妇xxxxⅹ喷水| 欧美一区三区三区高中清蜜桃| 欧美精品久久久久a| 亚洲成人av片| 国产成人精品视| 精品久久久久久久久国产字幕| 热99精品只有里视频精品| 欧美一级淫片aaaaaaa视频| 国产日韩中文字幕| 欧美极品少妇xxxxx| 久久男人资源视频| 91精品国产成人www| 久久精品视频一| 中文字幕精品av| 亚洲欧洲日韩国产| 亚洲摸下面视频| 欧美极品在线播放| 中文字幕亚洲综合久久| 亚洲一区二区三区777| 国产精品久久久久久久久免费| 久久影视免费观看| 亚洲一品av免费观看| 亚洲精品999| 日韩电影免费在线观看中文字幕| 欧美日韩另类视频| 欧美激情极品视频| 91久久久久久久久久久久久| 亚洲mm色国产网站| 亚洲免费av片| 国产精品久久久久久久7电影| 国产精品成人观看视频国产奇米| 国产欧洲精品视频| 成人黄在线观看| 日韩精品久久久久久久玫瑰园| 综合网日日天干夜夜久久| 国产精品亚洲综合天堂夜夜| 国产在线播放不卡| 国产99在线|中文| 亚洲另类激情图| 国产精品一久久香蕉国产线看观看| 亚洲一区www| 欧美日韩国产专区| 97涩涩爰在线观看亚洲| 亚洲国产成人精品久久| 韩国精品久久久999| 一夜七次郎国产精品亚洲| 在线观看视频亚洲| 国产乱人伦真实精品视频| 亚洲欧美国产一本综合首页| 欧美激情一区二区三级高清视频| 亚洲一区999| 日韩精品视频三区| 伊人激情综合网| 精品欧美一区二区三区| 欧美高跟鞋交xxxxxhd| 97久久精品人搡人人玩| 欧美成年人在线观看| 中文字幕成人在线| 国产成人啪精品视频免费网| 亚洲一区二区三区四区视频| 91九色视频导航| 91免费看视频.| 国产精品欧美风情| 亚洲电影免费观看| 97超级碰在线看视频免费在线看| 欧美激情久久久久| 亚洲精品网站在线播放gif| 精品国产91久久久| 亚洲偷熟乱区亚洲香蕉av| 欧美刺激性大交免费视频| 色综合天天综合网国产成人网| 欧美日韩免费一区| 色诱女教师一区二区三区| 日本免费一区二区三区视频观看| 日韩欧美成人精品| 欧美性极品少妇精品网站| 亚洲乱码av中文一区二区| 国产精品亚洲精品| 国产精品一二区| 日韩美女在线观看一区| 久久久精品免费视频| 久久久久久国产| 亚洲成人激情在线观看| 奇米成人av国产一区二区三区| 国产午夜精品视频免费不卡69堂| 欧美激情一区二区三区在线视频观看| 伊人激情综合网| 久久天天躁夜夜躁狠狠躁2022| 久久久在线观看| 日韩免费观看av| 欧美做爰性生交视频| 欧美日韩亚洲精品内裤| 欧美一区第一页| 国产精品成人aaaaa网站| 亚洲成人精品视频在线观看| 正在播放亚洲1区| 欧美成人精品激情在线观看| 成人在线视频福利| 久久精品一偷一偷国产| 性欧美xxxx视频在线观看| 欧美第一黄网免费网站| 国产亚洲欧美视频| 国产成人一区二区三区小说| 97精品伊人久久久大香线蕉| 精品免费在线视频| 欧美日韩中文在线观看| 久久久久女教师免费一区| 欧美视频免费在线观看| 亚洲欧美资源在线| 国产激情久久久| 久久亚洲精品小早川怜子66| 亚洲人在线视频| 国产精品久久国产精品99gif| 欧美亚洲成人免费| 成人欧美一区二区三区在线湿哒哒| 欧美成人一二三| 97视频在线观看视频免费视频| 亚洲社区在线观看| 国产有码在线一区二区视频| 国产精品久久久久7777婷婷| 欧美老肥婆性猛交视频| 国产主播在线一区| 欧美激情精品久久久久久免费印度| 久久亚洲欧美日韩精品专区| 国内揄拍国内精品少妇国语| 国产97免费视| 视频直播国产精品| 欧美日韩免费在线观看| 亚洲xxxxx电影| 人人澡人人澡人人看欧美| 97免费视频在线播放| 狠狠躁18三区二区一区| 欧美日韩一区二区精品| 精品一区精品二区| 尤物九九久久国产精品的特点| 国产成人久久久| 成人a免费视频| 日韩av在线播放资源| 国产精品h片在线播放| 九九热这里只有在线精品视| 欧美午夜视频在线观看| 成人在线激情视频| 亚洲天堂2020| 韩剧1988在线观看免费完整版| 尤物九九久久国产精品的分类| 久久久久久亚洲精品不卡| 综合网中文字幕| 亚洲国产小视频在线观看| 国产精品xxx视频| 日韩美女av在线| 国产在线拍偷自揄拍精品| 亚洲有声小说3d| 欧美视频中文字幕在线| 国内精品在线一区| 亚洲女人初尝黑人巨大| 91av视频在线观看| 欧美乱大交做爰xxxⅹ性3| 国产啪精品视频| 欧美性受xxxx黑人猛交| 欧美精品一区在线播放| 国产精品一区二区在线|