@@ -11,87 +11,83 @@ namespace Schematron;
1111/// This class is public to allow inheritors of Schematron elements
1212/// to use these global settings.
1313/// </remarks>
14- /// <author ref="kzu" />
15- /// <progress amount="100" />
1614public class Config
1715{
16+ static readonly IFormatter formatter ;
17+ static readonly XPathNavigator navigator ;
18+ static readonly XmlNamespaceManager nsmanager ;
19+ static readonly Schema full ;
20+ static readonly Schema embedded ;
21+ static readonly string uid = string . Intern ( Guid . NewGuid ( ) . ToString ( ) ) ;
22+
1823 /// <summary>
1924 /// Initializes global settings.
2025 /// </summary>
2126 static Config ( )
2227 {
2328 // Default formatter outputs in text format a log with results.
24- _formatter = new LogFormatter ( ) ;
29+ formatter = new LogFormatter ( ) ;
2530
2631 //TODO: create and load the schematron full and embedded versions for validation.
27- _embedded = new Schema ( ) ;
28- _embedded . Phases . Add ( _embedded . CreatePhase ( Phase . All ) ) ;
29- _full = new Schema ( ) ;
30- _full . Phases . Add ( _full . CreatePhase ( Phase . All ) ) ;
32+ embedded = new Schema ( ) ;
33+ embedded . Phases . Add ( embedded . CreatePhase ( Phase . All ) ) ;
34+ full = new Schema ( ) ;
35+ full . Phases . Add ( full . CreatePhase ( Phase . All ) ) ;
3136
3237 //TODO: should we move all the schema language elements to a resource file?
33- _navigator = new XmlDocument ( ) . CreateNavigator ( ) ;
34- _navigator . NameTable . Add ( "active" ) ;
35- _navigator . NameTable . Add ( "pattern" ) ;
36- _navigator . NameTable . Add ( "assert" ) ;
37- _navigator . NameTable . Add ( "test" ) ;
38- _navigator . NameTable . Add ( "role" ) ;
39- _navigator . NameTable . Add ( "id" ) ;
40- _navigator . NameTable . Add ( "diagnostics" ) ;
41- _navigator . NameTable . Add ( "icon" ) ;
42- _navigator . NameTable . Add ( "subject" ) ;
43- _navigator . NameTable . Add ( "diagnostic" ) ;
44- _navigator . NameTable . Add ( "dir" ) ;
45- _navigator . NameTable . Add ( "emph" ) ;
46- _navigator . NameTable . Add ( "extends" ) ;
47- _navigator . NameTable . Add ( "rule" ) ;
48- _navigator . NameTable . Add ( "key" ) ;
49- _navigator . NameTable . Add ( "name" ) ;
50- _navigator . NameTable . Add ( "path" ) ;
51- _navigator . NameTable . Add ( "ns" ) ;
52- _navigator . NameTable . Add ( "uri" ) ;
53- _navigator . NameTable . Add ( "prefix" ) ;
54- _navigator . NameTable . Add ( "p" ) ;
55- _navigator . NameTable . Add ( "class" ) ;
56- _navigator . NameTable . Add ( "see" ) ;
57- _navigator . NameTable . Add ( "phase" ) ;
58- _navigator . NameTable . Add ( "fpi" ) ;
59- _navigator . NameTable . Add ( "report" ) ;
60- _navigator . NameTable . Add ( "context" ) ;
61- _navigator . NameTable . Add ( "abstract" ) ;
62- _navigator . NameTable . Add ( "schema" ) ;
63- _navigator . NameTable . Add ( "schemaVersion" ) ;
64- _navigator . NameTable . Add ( "defaultPhase" ) ;
65- _navigator . NameTable . Add ( "version" ) ;
66- _navigator . NameTable . Add ( "span" ) ;
67- _navigator . NameTable . Add ( "title" ) ;
68- _navigator . NameTable . Add ( "value-of" ) ;
69- _navigator . NameTable . Add ( "select" ) ;
70- _navigator . NameTable . Add ( Schema . IsoNamespace ) ;
71- _navigator . NameTable . Add ( Schema . LegacyNamespace ) ;
38+ navigator = new XmlDocument ( ) . CreateNavigator ( ) ;
39+ navigator . NameTable . Add ( "active" ) ;
40+ navigator . NameTable . Add ( "pattern" ) ;
41+ navigator . NameTable . Add ( "assert" ) ;
42+ navigator . NameTable . Add ( "test" ) ;
43+ navigator . NameTable . Add ( "role" ) ;
44+ navigator . NameTable . Add ( "id" ) ;
45+ navigator . NameTable . Add ( "diagnostics" ) ;
46+ navigator . NameTable . Add ( "icon" ) ;
47+ navigator . NameTable . Add ( "subject" ) ;
48+ navigator . NameTable . Add ( "diagnostic" ) ;
49+ navigator . NameTable . Add ( "dir" ) ;
50+ navigator . NameTable . Add ( "emph" ) ;
51+ navigator . NameTable . Add ( "extends" ) ;
52+ navigator . NameTable . Add ( "rule" ) ;
53+ navigator . NameTable . Add ( "key" ) ;
54+ navigator . NameTable . Add ( "name" ) ;
55+ navigator . NameTable . Add ( "path" ) ;
56+ navigator . NameTable . Add ( "ns" ) ;
57+ navigator . NameTable . Add ( "uri" ) ;
58+ navigator . NameTable . Add ( "prefix" ) ;
59+ navigator . NameTable . Add ( "p" ) ;
60+ navigator . NameTable . Add ( "class" ) ;
61+ navigator . NameTable . Add ( "see" ) ;
62+ navigator . NameTable . Add ( "phase" ) ;
63+ navigator . NameTable . Add ( "fpi" ) ;
64+ navigator . NameTable . Add ( "report" ) ;
65+ navigator . NameTable . Add ( "context" ) ;
66+ navigator . NameTable . Add ( "abstract" ) ;
67+ navigator . NameTable . Add ( "schema" ) ;
68+ navigator . NameTable . Add ( "schemaVersion" ) ;
69+ navigator . NameTable . Add ( "defaultPhase" ) ;
70+ navigator . NameTable . Add ( "version" ) ;
71+ navigator . NameTable . Add ( "span" ) ;
72+ navigator . NameTable . Add ( "title" ) ;
73+ navigator . NameTable . Add ( "value-of" ) ;
74+ navigator . NameTable . Add ( "select" ) ;
75+ navigator . NameTable . Add ( Schema . IsoNamespace ) ;
76+ navigator . NameTable . Add ( Schema . LegacyNamespace ) ;
7277
7378 //Namespace manager initialization
74- _nsmanager = new XmlNamespaceManager ( _navigator . NameTable ) ;
75- _nsmanager . AddNamespace ( String . Empty , Schema . Namespace ) ;
76- _nsmanager . AddNamespace ( "sch" , Schema . Namespace ) ;
77- _nsmanager . AddNamespace ( "xsd" , System . Xml . Schema . XmlSchema . Namespace ) ;
78- }
79-
80- Config ( )
81- {
79+ nsmanager = new XmlNamespaceManager ( navigator . NameTable ) ;
80+ nsmanager . AddNamespace ( string . Empty , Schema . Namespace ) ;
81+ nsmanager . AddNamespace ( "sch" , Schema . Namespace ) ;
82+ nsmanager . AddNamespace ( "xsd" , System . Xml . Schema . XmlSchema . Namespace ) ;
8283 }
8384
84- static IFormatter _formatter ;
85+ Config ( ) { }
8586
8687 /// <summary>
8788 /// The default object to use to format messages from validation.
8889 /// </summary>
89- public static IFormatter DefaultFormatter
90- {
91- get { return _formatter ; }
92- }
93-
94- static XPathNavigator _navigator ;
90+ public static IFormatter DefaultFormatter => formatter ;
9591
9692 /// <summary>
9793 /// A default empty navigator used to pre-compile XPath expressions.
@@ -110,56 +106,35 @@ public static IFormatter DefaultFormatter
110106 /// <seealso cref="CompiledExpressions"/>
111107 /// </para>
112108 /// </example>
113- internal static XPathNavigator DefaultNavigator
114- {
115- // Returning a cloned navigator appeared to solve the threading issues
116- // we had, because a single navigator was being used to compile all the
117- // expressions in all potential threads.
118- get { return _navigator . Clone ( ) ; }
119- }
120-
121- static XmlNamespaceManager _nsmanager ;
109+ /// <devdoc>
110+ /// Returning a cloned navigator appeared to solve the threading issues
111+ /// we had, because a single navigator was being used to compile all the
112+ /// expressions in all potential threads.
113+ /// </devdoc>
114+ internal static XPathNavigator DefaultNavigator => navigator . Clone ( ) ;
122115
123116 /// <summary>
124117 /// Manager to use when executing expressions that validate or
125118 /// load Schematron and Embedded Schematron schemas.
126119 /// </summary>
127- public static XmlNamespaceManager DefaultNsManager
128- {
129- get { return _nsmanager ; }
130- }
131-
132- static Schema _full ;
120+ public static XmlNamespaceManager DefaultNsManager => nsmanager ;
133121
134122 /// <summary>
135123 /// A cached schema in Schematron format to validate schematron schemas.
136124 /// </summary>
137125 /// <remarks>This is the version for standalone schemas.</remarks>
138- public static Schema FullSchematron
139- {
140- get { return _full ; }
141- }
142-
143- static Schema _embedded ;
126+ public static Schema FullSchematron => full ;
144127
145128 /// <summary>
146129 /// A cached schema in Schematron format to validate schematron schemas.
147130 /// </summary>
148131 /// <remarks>This is the version for embedded schemas.</remarks>
149- public static Schema EmbeddedSchematron
150- {
151- get { return _embedded ; }
152- }
153-
154- static string _uid = String . Intern ( Guid . NewGuid ( ) . ToString ( ) ) ;
132+ public static Schema EmbeddedSchematron => embedded ;
155133
156134 /// <summary>
157135 /// A unique identifier to use for internal keys.
158136 /// </summary>
159- public static string UniqueKey
160- {
161- get { return _uid ; }
162- }
137+ public static string UniqueKey => uid ;
163138
164139 /// <summary>
165140 /// Force all static constructors in the library.
@@ -171,5 +146,4 @@ public static void Setup()
171146 System . Diagnostics . Trace . Write ( TagExpressions . Dir . RightToLeft ) ;
172147 System . Diagnostics . Trace . WriteLine ( FormattingUtils . XmlErrorPosition . RightToLeft ) ;
173148 }
174- }
175-
149+ }
0 commit comments