1 19 20 package org.netbeans.modules.xml.schema.model.impl; 21 import java.util.Arrays ; 22 import java.util.HashMap ; 23 import java.util.List ; 24 import java.util.Map ; 25 import java.util.Set ; 26 import javax.swing.text.Element ; 27 import javax.xml.namespace.QName ; 28 import org.netbeans.modules.xml.schema.model.Any.ProcessContents; 29 import org.netbeans.modules.xml.schema.model.Derivation; 30 import org.netbeans.modules.xml.schema.model.Form; 31 import org.netbeans.modules.xml.schema.model.LocalAttribute; 32 import org.netbeans.modules.xml.schema.model.Schema; 33 import org.netbeans.modules.xml.xam.dom.Attribute; 34 35 40 public enum SchemaAttributes implements Attribute { 41 ABSTRACT("abstract", Boolean .class), 42 ATTR_FORM_DEFAULT("attributeFormDefault", Form.class), 43 BASE("base", String .class), 44 BLOCK("block", Set .class, Derivation.Type.class), 45 BLOCK_DEFAULT("blockDefault", Set .class, Schema.Block.class), 46 DEFAULT("default", String .class), 47 ELEM_FORM_DEFAULT("elementFormDefault", Form.class), 48 ID("id", String .class), 49 ITEM_TYPE("itemType", String .class), 50 FINAL("final", Set .class, Derivation.Type.class), 51 FINAL_DEFAULT("finalDefault", Set .class, Schema.Final.class), 52 FIXED("fixed", Boolean .class), 53 FORM("form", Form.class), 54 LANGUAGE("xml:lang", String .class), 55 MAX_OCCURS("maxOccurs", String .class), 56 MEMBER_TYPES("memberTypes", String .class), 57 MIN_OCCURS("minOccurs", Integer .class), 58 MIXED("mixed", Boolean .class), 59 NAME("name", String .class), 60 NAMESPACE("namespace", String .class), 61 NILLABLE("nillable", Boolean .class), 62 PROCESS_CONTENTS("processContents", ProcessContents.class), 63 PUBLIC("public", String .class), 64 REF("ref", String .class), 65 REFER("refer", String .class), 66 SCHEMA_LOCATION("schemaLocation", String .class), 67 SOURCE("source", String .class), 68 SUBSTITUTION_GROUP("substitutionGroup", String .class), 69 SYSTEM("system", String .class), 70 TARGET_NS("targetNamespace", String .class), 71 TYPE("type", String .class), 72 USE("use", LocalAttribute.Use.class), 73 VALUE("value", String .class), 74 VERSION("version", String .class), 75 XPATH("xpath", String .class); 76 77 SchemaAttributes(String docName, Class type, Class memberType) { 78 this.docName = docName; 79 this.type = type; 80 this.memberType = memberType; 81 } 82 83 SchemaAttributes(String docName, Class type) { 84 this(docName, type, null); 85 } 86 87 public String getName() { 88 return docName; 89 } 90 91 public Class getType() { 92 return type; 93 } 94 95 public Class getMemberType() { 96 return memberType; 97 } 98 99 public static Map <QName ,List <QName >> getQNameValuedAttributes() { 100 return qnameValuedAttributes; 101 } 102 103 private QName qname() { 104 return new QName (docName); 105 } 106 107 private final String docName; 108 private final Class type; 109 private final Class memberType; 110 111 112 private static Map <QName ,List <QName >> qnameValuedAttributes = new HashMap <QName ,List <QName >>(); 113 static { 114 qnameValuedAttributes.put( 115 SchemaElements.UNION.getQName(), Arrays.asList(new QName [] { MEMBER_TYPES.qname()})); 116 qnameValuedAttributes.put( 117 SchemaElements.RESTRICTION.getQName(), Arrays.asList(new QName [] { BASE.qname()})); 118 qnameValuedAttributes.put( 119 SchemaElements.EXTENSION.getQName(), Arrays.asList(new QName [] { BASE.qname()})); 120 qnameValuedAttributes.put( 121 SchemaElements.LIST.getQName(), Arrays.asList(new QName [] { ITEM_TYPE.qname()})); 122 qnameValuedAttributes.put( 123 SchemaElements.ATTRIBUTE.getQName(), Arrays.asList(new QName [] { REF.qname(), TYPE.qname()})); 124 qnameValuedAttributes.put( 125 SchemaElements.ELEMENT.getQName(), Arrays.asList(new QName [] { REF.qname(), SUBSTITUTION_GROUP.qname(), TYPE.qname() })); 126 qnameValuedAttributes.put( 127 SchemaElements.GROUP.getQName(), Arrays.asList(new QName [] { REF.qname()})); 128 qnameValuedAttributes.put( 129 SchemaElements.ATTRIBUTE_GROUP.getQName(), Arrays.asList(new QName [] { REF.qname()})); 130 } 131 132 } 133 | Popular Tags |