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 org.w3c.dom.Element;
23
24
25
26
27
28
29 public abstract class XmlSchemaFacet extends XmlSchemaAnnotated {
30
31
32
33
34
35
36 protected XmlSchemaFacet() {
37 }
38
39 protected XmlSchemaFacet(Object value, boolean fixed) {
40 this.value = value;
41 this.fixed = fixed;
42 }
43
44 boolean fixed;
45
46 Object value;
47
48 public boolean isFixed() {
49 return fixed;
50 }
51
52 public void setFixed(boolean fixed) {
53 this.fixed = fixed;
54 }
55
56 public Object getValue() {
57 return value;
58 }
59
60 public void setValue(Object value) {
61 this.value = value;
62 }
63
64 public static XmlSchemaFacet construct(Element el) {
65 String name = el.getLocalName();
66 boolean fixed = false;
67 if (el.getAttribute("fixed").equals("true")) {
68 fixed = true;
69 }
70 XmlSchemaFacet facet;
71 if (name.equals("enumeration")) {
72 facet = new XmlSchemaEnumerationFacet();
73 } else if (name.equals("fractionDigits")) {
74 facet = new XmlSchemaFractionDigitsFacet();
75 } else if (name.equals("length")) {
76 facet = new XmlSchemaLengthFacet();
77 } else if (name.equals("maxExclusive")) {
78 facet = new XmlSchemaMaxExclusiveFacet();
79 } else if (name.equals("maxInclusive")) {
80 facet = new XmlSchemaMaxInclusiveFacet();
81 } else if (name.equals("maxLength")) {
82 facet = new XmlSchemaMaxLengthFacet();
83 } else if (name.equals("minLength")) {
84 facet = new XmlSchemaMinLengthFacet();
85 } else if (name.equals("minExclusive")) {
86 facet = new XmlSchemaMinExclusiveFacet();
87 } else if (name.equals("minInclusive")) {
88 facet = new XmlSchemaMinInclusiveFacet();
89 } else if (name.equals("pattern")) {
90 facet = new XmlSchemaPatternFacet();
91 } else if (name.equals("totalDigits")) {
92 facet = new XmlSchemaTotalDigitsFacet();
93 } else if (name.equals("whiteSpace")) {
94 facet = new XmlSchemaWhiteSpaceFacet();
95 } else {
96 throw new XmlSchemaException("Incorrect facet with name \""
97 + name + "\" found.");
98 }
99 if (el.hasAttribute("id"))facet.setId(el.getAttribute("id"));
100 facet.setFixed(fixed);
101 facet.setValue(el.getAttribute("value"));
102 return facet;
103 }
104 }