-// Author: Dwivedi, Ajay kumar\r
-// Adwiv@Yahoo.com\r
-using System;\r
-using System.Xml.Serialization;\r
-using System.Xml;\r
-\r
-namespace System.Xml.Schema\r
-{\r
- /// <summary>\r
- /// Summary description for XmlSchemaObject.\r
- /// </summary>\r
- public abstract class XmlSchemaObject\r
- {\r
- private int lineNumber;\r
- private int linePosition;\r
- private string sourceUri;\r
- private XmlSerializerNamespaces namespaces;\r
-\r
- internal protected int errorCount = 0;\r
-\r
- protected XmlSchemaObject()\r
- {\r
- namespaces = new XmlSerializerNamespaces();\r
- }\r
- [XmlIgnore]\r
- public int LineNumber \r
- { \r
- get{ return lineNumber; } \r
- set{ lineNumber = value; } \r
- }\r
- [XmlIgnore]\r
- public int LinePosition \r
- { \r
- get{ return linePosition; } \r
- set{ linePosition = value; } \r
- }\r
- [XmlIgnore]\r
- public string SourceUri \r
- { \r
- get{ return sourceUri; } \r
- set{ sourceUri = value; } \r
- }\r
-\r
- // Undocumented Property\r
- [XmlNamespaceDeclarations]\r
- public XmlSerializerNamespaces Namespaces \r
- { \r
- get{ return namespaces; } \r
- set{ namespaces = value; } \r
- }\r
-\r
- internal void error(ValidationEventHandler handle,string message)\r
- {\r
- errorCount++;\r
- ValidationHandler.RaiseValidationError(handle,this,message);\r
- }\r
- internal void warn(ValidationEventHandler handle,string message)\r
- {\r
- errorCount++;\r
- ValidationHandler.RaiseValidationWarning(handle,this,message);\r
- }\r
- internal static void error(ValidationEventHandler handle, string message, Exception innerException)\r
- {\r
- ValidationHandler.RaiseValidationError(handle,message, innerException);\r
- }\r
- internal static void warn(ValidationEventHandler handle, string message, Exception innerException)\r
- {\r
- ValidationHandler.RaiseValidationWarning(handle,message, innerException);\r
- }\r
- }\r
-}
\ No newline at end of file
+//
+// System.Xml.Schema.XmlSchemaObject.cs
+//
+// Authors:
+// Dwivedi, Ajay kumar Adwiv@Yahoo.com
+// Enomoto, Atsushi ginga@kit.hi-ho.ne.jp
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Xml.Serialization;
+using System.Xml;
+
+namespace System.Xml.Schema
+{
+ /// <summary>
+ /// Summary description for XmlSchemaObject.
+ /// </summary>
+ public abstract class XmlSchemaObject
+ {
+ private int lineNumber;
+ private int linePosition;
+ private string sourceUri;
+ private XmlSerializerNamespaces namespaces;
+ internal ArrayList unhandledAttributeList ;
+ internal bool isCompiled = false;
+ internal int errorCount = 0;
+ internal Guid compilation_id;
+ internal Guid ValidationId;
+ internal bool isRedefineChild;
+ internal bool isRedefinedComponent;
+ internal XmlSchemaObject redefinedObject;
+
+ private XmlSchemaObject parent;
+
+
+ protected XmlSchemaObject()
+ {
+ namespaces = new XmlSerializerNamespaces();
+ unhandledAttributeList = null;
+ compilation_id = Guid.Empty;
+ }
+
+ internal Guid CompilationId {
+ get { return compilation_id; }
+ set {
+ if (value.Equals (Guid.Empty))
+ throw new ArgumentException ("value must not be empty");
+ compilation_id = value;
+ }
+ }
+
+ [XmlIgnore]
+ public int LineNumber
+ {
+ get{ return lineNumber; }
+ set{ lineNumber = value; }
+ }
+ [XmlIgnore]
+ public int LinePosition
+ {
+ get{ return linePosition; }
+ set{ linePosition = value; }
+ }
+ [XmlIgnore]
+ public string SourceUri
+ {
+ get{ return sourceUri; }
+ set{ sourceUri = value; }
+ }
+
+#if NET_2_0
+ [XmlIgnore]
+ public
+#else
+ internal
+#endif
+ XmlSchemaObject Parent {
+ get { return parent; }
+ set { parent = value; }
+ }
+
+ internal XmlSchema AncestorSchema {
+ get {
+
+ for (XmlSchemaObject o = Parent; o != null; o = o.Parent)
+ if (o is XmlSchema)
+ return (XmlSchema) o;
+ throw new Exception (String.Format ("INTERNAL ERROR: Parent object is not set properly : {0} ({1},{2})", SourceUri, LineNumber, LinePosition));
+ }
+ }
+
+ internal virtual void SetParent (XmlSchemaObject parent)
+ {
+ Parent = parent;
+ }
+
+ // Undocumented Property
+ [XmlNamespaceDeclarations]
+ public XmlSerializerNamespaces Namespaces
+ {
+ get{ return namespaces; }
+ set{ namespaces = value; }
+ }
+
+ internal void error(ValidationEventHandler handle,string message)
+ {
+ errorCount++;
+ error (handle, message, null, this, null);
+ }
+ internal void warn(ValidationEventHandler handle,string message)
+ {
+ warn (handle, message, null, this, null);
+ }
+ internal static void error(ValidationEventHandler handle, string message, Exception innerException)
+ {
+ error (handle, message, innerException, null, null);
+ }
+ internal static void warn(ValidationEventHandler handle, string message, Exception innerException)
+ {
+ warn (handle, message, innerException, null, null);
+ }
+ internal static void error(ValidationEventHandler handle,
+ string message,
+ Exception innerException,
+ XmlSchemaObject xsobj,
+ object sender)
+ {
+ ValidationHandler.RaiseValidationEvent (handle,
+ innerException,
+ message,
+ xsobj,
+ sender,
+ null,
+ XmlSeverityType.Error);
+ }
+ internal static void warn(ValidationEventHandler handle,
+ string message,
+ Exception innerException,
+ XmlSchemaObject xsobj,
+ object sender)
+ {
+ ValidationHandler.RaiseValidationEvent (handle,
+ innerException,
+ message,
+ xsobj,
+ sender,
+ null,
+ XmlSeverityType.Warning);
+ }
+
+ internal virtual int Compile (ValidationEventHandler h, XmlSchema schema)
+ {
+ return 0;
+ }
+
+ internal virtual int Validate (ValidationEventHandler h, XmlSchema schema)
+ {
+ return 0;
+ }
+
+ internal bool IsValidated (Guid validationId)
+ {
+ return this.ValidationId == validationId;
+ }
+
+ // This method is used only by particles
+ internal virtual void CopyInfo (XmlSchemaParticle obj)
+ {
+ obj.LineNumber = LineNumber;
+ obj.LinePosition = LinePosition;
+ obj.SourceUri = SourceUri;
+ obj.errorCount = errorCount;
+ // Other fields and properties may be useless for Particle.
+ }
+ }
+}