Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
StringFacetsChecker.cs
Go to the documentation of this file.
4
5namespace System.Xml.Schema;
6
7internal sealed class StringFacetsChecker : FacetsChecker
8{
9 private static Regex s_languagePattern;
10
11 private static Regex LanguagePattern
12 {
13 get
14 {
15 if (s_languagePattern == null)
16 {
17 Regex value = new Regex("^([a-zA-Z]{1,8})(-[a-zA-Z0-9]{1,8})*$");
19 }
20 return s_languagePattern;
21 }
22 }
23
24 internal override Exception CheckValueFacets(object value, XmlSchemaDatatype datatype)
25 {
26 string value2 = datatype.ValueConverter.ToString(value);
27 return CheckValueFacets(value2, datatype, verifyUri: true);
28 }
29
30 internal override Exception CheckValueFacets(string value, XmlSchemaDatatype datatype)
31 {
32 return CheckValueFacets(value, datatype, verifyUri: true);
33 }
34
36 {
37 int length = value.Length;
41 if (ex != null)
42 {
43 return ex;
44 }
45 if (restrictionFlags != 0)
46 {
47 if ((restrictionFlags & RestrictionFlags.Length) != 0 && restriction.Length != length)
48 {
50 }
51 if ((restrictionFlags & RestrictionFlags.MinLength) != 0 && length < restriction.MinLength)
52 {
54 }
55 if ((restrictionFlags & RestrictionFlags.MaxLength) != 0 && restriction.MaxLength < length)
56 {
58 }
59 if ((restrictionFlags & RestrictionFlags.Enumeration) != 0 && !MatchEnumeration(value, restriction.Enumeration, datatype))
60 {
62 }
63 }
64 return null;
65 }
66
67 internal override bool MatchEnumeration(object value, ArrayList enumeration, XmlSchemaDatatype datatype)
68 {
69 return MatchEnumeration(datatype.ValueConverter.ToString(value), enumeration, datatype);
70 }
71
73 {
74 if (datatype.TypeCode == XmlTypeCode.AnyUri)
75 {
76 for (int i = 0; i < enumeration.Count; i++)
77 {
78 if (value.Equals(((Uri)enumeration[i]).OriginalString))
79 {
80 return true;
81 }
82 }
83 }
84 else
85 {
86 for (int j = 0; j < enumeration.Count; j++)
87 {
88 if (value.Equals((string)enumeration[j]))
89 {
90 return true;
91 }
92 }
93 }
94 return false;
95 }
96
97 private Exception CheckBuiltInFacets(string s, XmlTypeCode typeCode, bool verifyUri)
98 {
99 Exception result = null;
100 switch (typeCode)
101 {
102 case XmlTypeCode.AnyUri:
103 if (verifyUri)
104 {
105 result = XmlConvert.TryToUri(s, out var _);
106 }
107 break;
108 case XmlTypeCode.NormalizedString:
110 break;
111 case XmlTypeCode.Token:
112 result = XmlConvert.TryVerifyTOKEN(s);
113 break;
114 case XmlTypeCode.Language:
115 if (s == null || s.Length == 0)
116 {
117 return new XmlSchemaException(System.SR.Sch_EmptyAttributeValue, string.Empty);
118 }
119 if (!LanguagePattern.IsMatch(s))
120 {
121 return new XmlSchemaException(System.SR.Sch_InvalidLanguageId, string.Empty);
122 }
123 break;
124 case XmlTypeCode.NmToken:
125 result = XmlConvert.TryVerifyNMTOKEN(s);
126 break;
127 case XmlTypeCode.Name:
128 result = XmlConvert.TryVerifyName(s);
129 break;
130 case XmlTypeCode.NCName:
131 case XmlTypeCode.Id:
132 case XmlTypeCode.Idref:
133 case XmlTypeCode.Entity:
134 result = XmlConvert.TryVerifyNCName(s);
135 break;
136 }
137 return result;
138 }
139}
static string Sch_LengthConstraintFailed
Definition SR.cs:686
static string Sch_MinLengthConstraintFailed
Definition SR.cs:688
static string Sch_EnumerationConstraintFailed
Definition SR.cs:694
static string Sch_InvalidLanguageId
Definition SR.cs:572
static string Sch_EmptyAttributeValue
Definition SR.cs:570
static string Sch_MaxLengthConstraintFailed
Definition SR.cs:690
Definition SR.cs:7
static int CompareExchange(ref int location1, int value, int comparand)
Exception CheckBuiltInFacets(string s, XmlTypeCode typeCode, bool verifyUri)
override Exception CheckValueFacets(object value, XmlSchemaDatatype datatype)
override Exception CheckValueFacets(string value, XmlSchemaDatatype datatype)
Exception CheckValueFacets(string value, XmlSchemaDatatype datatype, bool verifyUri)
override bool MatchEnumeration(object value, ArrayList enumeration, XmlSchemaDatatype datatype)
bool MatchEnumeration(string value, ArrayList enumeration, XmlSchemaDatatype datatype)
static Exception TryVerifyNormalizedString(string str)
static Exception TryVerifyTOKEN(string token)
static Exception TryVerifyNMTOKEN(string name)
static Exception TryToUri(string s, out Uri result)
static Exception TryVerifyName(string name)
static Exception TryVerifyNCName(string name)