1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.ws.commons.schema;
21
22 import javax.xml.namespace.QName;
23
24 import org.apache.ws.commons.schema.constants.Constants;
25
26
27
28
29
30
31
32 public class XmlSchemaComplexType extends XmlSchemaType {
33 XmlSchemaAnyAttribute anyAttribute, attributeWildcard;
34 XmlSchemaObjectCollection attributes;
35 XmlSchemaObjectTable attributeUses;
36 XmlSchemaDerivationMethod block, blockResolved;
37 XmlSchemaContentModel contentModel;
38 XmlSchemaContentType contentType;
39 XmlSchemaParticle particleType, particle;
40 boolean isAbstract, isMixed;
41
42
43
44
45 public XmlSchemaComplexType(XmlSchema schema) {
46 super(schema);
47 attributes = new XmlSchemaObjectCollection();
48 block = new XmlSchemaDerivationMethod(Constants.BlockConstants.NONE);
49 isAbstract = false;
50 isMixed = false;
51 }
52
53 public XmlSchemaAnyAttribute getAnyAttribute() {
54 return anyAttribute;
55 }
56
57 public void setAnyAttribute(XmlSchemaAnyAttribute anyAttribute) {
58 this.anyAttribute = anyAttribute;
59 }
60
61 public XmlSchemaObjectCollection getAttributes() {
62 return attributes;
63 }
64
65 public XmlSchemaObjectTable getAttributeUses() {
66 return attributeUses;
67 }
68
69 public XmlSchemaAnyAttribute getAttributeWildcard() {
70 return attributeWildcard;
71 }
72
73 public XmlSchemaDerivationMethod getBlock() {
74 return block;
75 }
76
77 public void setBlock(XmlSchemaDerivationMethod block) {
78 this.block = block;
79 }
80
81 public XmlSchemaDerivationMethod getBlockResolved() {
82 return blockResolved;
83 }
84
85 public XmlSchemaContentModel getContentModel() {
86 return contentModel;
87 }
88
89 public void setContentModel(XmlSchemaContentModel contentModel) {
90 this.contentModel = contentModel;
91 }
92
93 public XmlSchemaContentType getContentType() {
94 return contentType;
95 }
96
97 public void setContentType(XmlSchemaContentType contentType) {
98 this.contentType = contentType;
99 }
100
101 public XmlSchemaParticle getContentTypeParticle() {
102 return particleType;
103 }
104
105 public boolean isAbstract() {
106 return isAbstract;
107 }
108
109 public void setAbstract(boolean b) {
110 isAbstract = b;
111 }
112
113 public boolean isMixed() {
114 return isMixed;
115 }
116
117 public void setMixed(boolean b) {
118 isMixed = b;
119 }
120
121 public XmlSchemaParticle getParticle() {
122 return particle;
123 }
124
125 public void setParticle(XmlSchemaParticle particle) {
126 this.particle = particle;
127 }
128
129 public String toString(String prefix, int tab) {
130 String xml = new String();
131
132 for (int i = 0; i < tab; i++)
133 xml += "\t";
134
135 if (!prefix.equals("") && prefix.indexOf(":") == -1)
136 prefix += ":";
137
138 String typeName = name != null ? name : "";
139
140 xml += "<" + prefix + "complexType name=\"" + typeName + "\">\n";
141
142 if (particle != null)
143 xml += particle.toString(prefix, (tab + 1));
144
145 if (contentModel != null)
146 xml += contentModel.toString(prefix, (tab + 1));
147
148 for (int i = 0; i < attributes.getCount(); i++) {
149 xml += attributes.getItem(i).toString(prefix, (tab + 1));
150 }
151
152 for (int i = 0; i < tab; i++)
153 xml += "\t";
154
155 xml += "</" + prefix + "complexType>\n";
156 return xml;
157 }
158
159
160
161
162 public QName getBaseSchemaTypeName() {
163 XmlSchemaContentModel model = getContentModel();
164 if (model == null) {
165 return null;
166 }
167 XmlSchemaContent content = model.getContent();
168 if (content == null) {
169 return null;
170 }
171
172 if (!(content instanceof XmlSchemaComplexContentExtension)) {
173 return null;
174 }
175
176 XmlSchemaComplexContentExtension ext = (XmlSchemaComplexContentExtension) content;
177 return ext.getBaseTypeName();
178 }
179
180
181 }