-//\r
-// Commons.Xml.Relaxng.Derivative.RdpNameClasses.cs\r
-//\r
-// Author:\r
-// Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>\r
-//\r
-// 2003 Atsushi Enomoto "No rights reserved."\r
-//\r
-// Copyright (c) 2004 Novell Inc.\r
-// All rights reserved\r
-//\r
+//
+// Commons.Xml.Relaxng.Derivative.RdpNameClasses.cs
+//
+// Author:
+// Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+//
+// 2003 Atsushi Enomoto "No rights reserved."
+//
+// Copyright (c) 2004 Novell Inc.
+// All rights reserved
+//
//
// Permission is hereby granted, free of charge, to any person obtaining
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-\r
-using System;\r
-using System.Xml;\r
-\r
-namespace Commons.Xml.Relaxng.Derivative\r
-{\r
- public enum RdpNameClassType\r
- {\r
- None = 0,\r
- AnyName = 1,\r
- AnyNameExcept = 2,\r
- NsName = 3,\r
- NsNameExcept = 4,\r
- Name = 5,\r
- NameClassChoice = 6\r
- }\r
-\r
- public abstract class RdpNameClass\r
- {\r
- public abstract RdpNameClassType NameClassType { get; }\r
- public abstract bool Contains (string name, string ns);\r
- }\r
-\r
- public class RdpAnyName : RdpNameClass\r
- {\r
- static RdpAnyName instance;\r
- static RdpAnyName ()\r
- {\r
- instance = new RdpAnyName ();\r
- }\r
-\r
- public static RdpAnyName Instance {\r
- get { return instance; }\r
- }\r
-\r
- private RdpAnyName () {}\r
-\r
- public override RdpNameClassType NameClassType {\r
- get { return RdpNameClassType.AnyName; }\r
- }\r
-\r
- public override bool Contains (string name, string ns)\r
- {\r
- return true;\r
- }\r
- }\r
-\r
- public class RdpAnyNameExcept : RdpNameClass\r
- {\r
- RdpNameClass except;\r
-\r
- public RdpAnyNameExcept (RdpNameClass except)\r
- {\r
- this.except = except;\r
- }\r
-\r
- public override RdpNameClassType NameClassType {\r
- get { return RdpNameClassType.AnyNameExcept; }\r
- }\r
-\r
- public RdpNameClass ExceptNameClass {\r
- get { return except; }\r
- }\r
-\r
- public override bool Contains (string name, string ns)\r
- {\r
- return (except == null) || !except.Contains (name, ns);\r
- }\r
- }\r
-\r
- public class RdpNsName : RdpNameClass\r
- {\r
- string ns;\r
-\r
- public RdpNsName (string ns)\r
- {\r
- this.ns = ns;\r
- }\r
-\r
- public override RdpNameClassType NameClassType {\r
- get { return RdpNameClassType.NsName; }\r
- }\r
-\r
- public string NamespaceURI {\r
- get { return ns; }\r
- }\r
-\r
- public override bool Contains (string name, string ns)\r
- {\r
- return NamespaceURI == ns;\r
- }\r
- }\r
-\r
- public class RdpNsNameExcept : RdpNsName\r
- {\r
- string ns;\r
- RdpNameClass except;\r
-\r
- public RdpNsNameExcept (string ns, RdpNameClass except)\r
- : base (ns)\r
- {\r
- this.ns = ns;\r
- this.except = except;\r
- }\r
-\r
- public override RdpNameClassType NameClassType {\r
- get { return RdpNameClassType.NsNameExcept; }\r
- }\r
-\r
- public RdpNameClass ExceptNameClass {\r
- get { return except; }\r
- }\r
-\r
- public override bool Contains (string name, string ns)\r
- {\r
- return this.ns == ns &&\r
- (except == null || !except.Contains (name, ns));\r
- }\r
- }\r
-\r
- public class RdpName : RdpNameClass\r
- {\r
- string local;\r
- string ns;\r
-\r
- public RdpName (string local, string ns)\r
- {\r
- this.ns = ns;\r
- this.local = local;\r
- }\r
-\r
- public override RdpNameClassType NameClassType {\r
- get { return RdpNameClassType.Name; }\r
- }\r
-\r
- public string NamespaceURI {\r
- get { return ns; }\r
- }\r
-\r
- public string LocalName {\r
- get { return local; }\r
- }\r
-\r
- public override bool Contains (string name, string ns)\r
- {\r
- return this.ns == ns && this.local == name;\r
- }\r
- }\r
-\r
- public class RdpNameClassChoice : RdpNameClass\r
- {\r
- RdpNameClass l;\r
- RdpNameClass r;\r
-\r
- public RdpNameClassChoice (RdpNameClass l, RdpNameClass r)\r
- {\r
- this.l = l;\r
- this.r = r;\r
- }\r
-\r
- public override RdpNameClassType NameClassType {\r
- get { return RdpNameClassType.NameClassChoice; }\r
- }\r
-\r
- public RdpNameClass LValue {\r
- get { return l; }\r
- }\r
-\r
- public RdpNameClass RValue {\r
- get { return r; }\r
- }\r
-\r
- public override bool Contains (string name, string ns)\r
- {\r
- return l.Contains (name, ns) || r.Contains (name, ns);\r
- }\r
- }\r
-\r
-}\r
-\r
+
+using System;
+using System.Xml;
+
+namespace Commons.Xml.Relaxng.Derivative
+{
+ public enum RdpNameClassType
+ {
+ None = 0,
+ AnyName = 1,
+ AnyNameExcept = 2,
+ NsName = 3,
+ NsNameExcept = 4,
+ Name = 5,
+ NameClassChoice = 6
+ }
+
+ public abstract class RdpNameClass
+ {
+ public abstract bool HasInfiniteName { get; }
+ public abstract RdpNameClassType NameClassType { get; }
+ public abstract bool Contains (string name, string ns);
+ }
+
+ public class RdpAnyName : RdpNameClass
+ {
+ static RdpAnyName instance;
+ static RdpAnyName ()
+ {
+ instance = new RdpAnyName ();
+ }
+
+ public static RdpAnyName Instance {
+ get { return instance; }
+ }
+
+ private RdpAnyName () {}
+
+ public override bool HasInfiniteName {
+ get { return true; }
+ }
+
+ public override RdpNameClassType NameClassType {
+ get { return RdpNameClassType.AnyName; }
+ }
+
+ public override bool Contains (string name, string ns)
+ {
+ return true;
+ }
+ }
+
+ public class RdpAnyNameExcept : RdpNameClass
+ {
+ RdpNameClass except;
+
+ public RdpAnyNameExcept (RdpNameClass except)
+ {
+ this.except = except;
+ }
+
+ public override bool HasInfiniteName {
+ get { return true; }
+ }
+
+ public override RdpNameClassType NameClassType {
+ get { return RdpNameClassType.AnyNameExcept; }
+ }
+
+ public RdpNameClass ExceptNameClass {
+ get { return except; }
+ }
+
+ public override bool Contains (string name, string ns)
+ {
+ return (except == null) || !except.Contains (name, ns);
+ }
+ }
+
+ public class RdpNsName : RdpNameClass
+ {
+ string ns;
+
+ public RdpNsName (string ns)
+ {
+ this.ns = ns;
+ }
+
+ public override bool HasInfiniteName {
+ get { return true; }
+ }
+
+ public override RdpNameClassType NameClassType {
+ get { return RdpNameClassType.NsName; }
+ }
+
+ public string NamespaceURI {
+ get { return ns; }
+ }
+
+ public override bool Contains (string name, string ns)
+ {
+ return NamespaceURI == ns;
+ }
+ }
+
+ public class RdpNsNameExcept : RdpNsName
+ {
+ string ns;
+ RdpNameClass except;
+
+ public RdpNsNameExcept (string ns, RdpNameClass except)
+ : base (ns)
+ {
+ this.ns = ns;
+ this.except = except;
+ }
+
+ public override bool HasInfiniteName {
+ get { return true; }
+ }
+
+ public override RdpNameClassType NameClassType {
+ get { return RdpNameClassType.NsNameExcept; }
+ }
+
+ public RdpNameClass ExceptNameClass {
+ get { return except; }
+ }
+
+ public override bool Contains (string name, string ns)
+ {
+ return this.ns == ns &&
+ (except == null || !except.Contains (name, ns));
+ }
+ }
+
+ public class RdpName : RdpNameClass
+ {
+ string local;
+ string ns;
+
+ public RdpName (string local, string ns)
+ {
+ this.ns = ns;
+ this.local = local;
+ }
+
+ public override bool HasInfiniteName {
+ get { return false; }
+ }
+
+ public override RdpNameClassType NameClassType {
+ get { return RdpNameClassType.Name; }
+ }
+
+ public string NamespaceURI {
+ get { return ns; }
+ }
+
+ public string LocalName {
+ get { return local; }
+ }
+
+ public override bool Contains (string name, string ns)
+ {
+ return this.ns == ns && this.local == name;
+ }
+ }
+
+ public class RdpNameClassChoice : RdpNameClass
+ {
+ RdpNameClass l;
+ RdpNameClass r;
+
+ public RdpNameClassChoice (RdpNameClass l, RdpNameClass r)
+ {
+ this.l = l;
+ this.r = r;
+ }
+
+ public override bool HasInfiniteName {
+ get { return l.HasInfiniteName || r.HasInfiniteName; }
+ }
+
+ public override RdpNameClassType NameClassType {
+ get { return RdpNameClassType.NameClassChoice; }
+ }
+
+ public RdpNameClass LValue {
+ get { return l; }
+ }
+
+ public RdpNameClass RValue {
+ get { return r; }
+ }
+
+ public override bool Contains (string name, string ns)
+ {
+ return l.Contains (name, ns) || r.Contains (name, ns);
+ }
+ }
+
+}
+