Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CompiledIdentityConstraint.cs
Go to the documentation of this file.
1namespace System.Xml.Schema;
2
3internal sealed class CompiledIdentityConstraint
4{
5 public enum ConstraintRole
6 {
7 Unique,
8 Key,
10 }
11
13
14 private readonly ConstraintRole _role;
15
16 private readonly Asttree _selector;
17
18 private readonly Asttree[] _fields;
19
21
23
25
27
28 public Asttree[] Fields => _fields;
29
31 {
32 }
33
35 {
36 name = constraint.QualifiedName;
37 try
38 {
39 _selector = new Asttree(constraint.Selector.XPath, isField: false, nsmgr);
40 }
42 {
43 ex.SetSource(constraint.Selector);
44 throw;
45 }
46 XmlSchemaObjectCollection fields = constraint.Fields;
47 _fields = new Asttree[fields.Count];
48 for (int i = 0; i < fields.Count; i++)
49 {
50 try
51 {
52 _fields[i] = new Asttree(((XmlSchemaXPath)fields[i]).XPath, isField: true, nsmgr);
53 }
55 {
56 ex2.SetSource(constraint.Fields[i]);
57 throw;
58 }
59 }
60 if (constraint is XmlSchemaUnique)
61 {
62 _role = ConstraintRole.Unique;
63 return;
64 }
65 if (constraint is XmlSchemaKey)
66 {
68 return;
69 }
70 _role = ConstraintRole.Keyref;
71 refer = ((XmlSchemaKeyref)constraint).Refer;
72 }
73}
CompiledIdentityConstraint(XmlSchemaIdentityConstraint constraint, XmlNamespaceManager nsmgr)
static readonly XmlQualifiedName Empty