X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.XML%2FSystem.Xml.Schema%2FXmlSchemaNotation.cs;h=f5b8ab363df1bc9624a3b6c58f7ae85f43bb4ad0;hb=69b0edce3104f9dc48fd366d91c24012e46bec42;hp=ed6c3086a38957139a7ee5764cc5a291fba2275f;hpb=c4a3b30460c7ea1a1fb3c97cfc8478555714af2f;p=mono.git diff --git a/mcs/class/System.XML/System.Xml.Schema/XmlSchemaNotation.cs b/mcs/class/System.XML/System.Xml.Schema/XmlSchemaNotation.cs index ed6c3086a38..f5b8ab363df 100644 --- a/mcs/class/System.XML/System.Xml.Schema/XmlSchemaNotation.cs +++ b/mcs/class/System.XML/System.Xml.Schema/XmlSchemaNotation.cs @@ -1,5 +1,5 @@ -// Author: Dwivedi, Ajay kumar -// Adwiv@Yahoo.com +// Author: Dwivedi, Ajay kumar +// Adwiv@Yahoo.com // // Permission is hereby granted, free of charge, to any person obtaining @@ -21,161 +21,161 @@ // 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.Xml.Serialization; -using System.Xml; - -namespace System.Xml.Schema -{ - /// - /// Summary description for XmlSchemaNotation. - /// - public class XmlSchemaNotation : XmlSchemaAnnotated - { - private string name; - private string pub; - private string system; - private XmlQualifiedName qualifiedName; - const string xmlname = "notation"; - - public XmlSchemaNotation() - { - } - [System.Xml.Serialization.XmlAttribute("name")] - public string Name - { - get{ return name; } - set{ name = value; } - } - [System.Xml.Serialization.XmlAttribute("public")] - public string Public - { - get{ return pub; } - set{ pub = value; } - } - [System.Xml.Serialization.XmlAttribute("system")] - public string System - { - get{ return system; } - set{ system = value; } - } - - [XmlIgnore] - internal XmlQualifiedName QualifiedName - { - get{ return qualifiedName;} - } - - // 1. name and public must be present - // public and system must be anyURI - internal override int Compile(ValidationEventHandler h, XmlSchema schema) - { - // If this is already compiled this time, simply skip. - if (CompilationId == schema.CompilationId) - return 0; - - if(Name == null) - error(h,"Required attribute name must be present"); - else if(!XmlSchemaUtil.CheckNCName(this.name)) - error(h,"attribute name must be NCName"); - else - qualifiedName = new XmlQualifiedName(Name,schema.TargetNamespace); - - if(Public==null) - error(h,"public must be present"); - else if(!XmlSchemaUtil.CheckAnyUri(Public)) - error(h,"public must be anyURI"); - - if(system != null && !XmlSchemaUtil.CheckAnyUri(system)) - error(h,"system must be present and of Type anyURI"); - - XmlSchemaUtil.CompileID(Id,this,schema.IDCollection,h); - - return errorCount; - } - - internal override int Validate(ValidationEventHandler h, XmlSchema schema) - { - return errorCount; - } - - // - // Content: (annotation?) - // - internal static XmlSchemaNotation Read(XmlSchemaReader reader, ValidationEventHandler h) - { - XmlSchemaNotation notation = new XmlSchemaNotation(); - reader.MoveToElement(); - - if(reader.NamespaceURI != XmlSchema.Namespace || reader.LocalName != xmlname) - { - error(h,"Should not happen :1: XmlSchemaInclude.Read, name="+reader.Name,null); - reader.Skip(); - return null; - } - - notation.LineNumber = reader.LineNumber; - notation.LinePosition = reader.LinePosition; - notation.SourceUri = reader.BaseURI; - - while(reader.MoveToNextAttribute()) - { - if(reader.Name == "id") - { - notation.Id = reader.Value; - } - else if(reader.Name == "name") - { - notation.name = reader.Value; - } - else if(reader.Name == "public") - { - notation.pub = reader.Value; - } - else if(reader.Name == "system") - { - notation.system = reader.Value; - } - else if((reader.NamespaceURI == "" && reader.Name != "xmlns") || reader.NamespaceURI == XmlSchema.Namespace) - { - error(h,reader.Name + " is not a valid attribute for notation",null); - } - else - { - XmlSchemaUtil.ReadUnhandledAttribute(reader,notation); - } - } - - reader.MoveToElement(); - if(reader.IsEmptyElement) - return notation; - - // Content: (annotation?) - int level = 1; - while(reader.ReadNextElement()) - { - if(reader.NodeType == XmlNodeType.EndElement) - { - if(reader.LocalName != xmlname) - error(h,"Should not happen :2: XmlSchemaNotation.Read, name="+reader.Name,null); - break; - } - if(level <= 1 && reader.LocalName == "annotation") - { - level = 2; //Only one annotation - XmlSchemaAnnotation annotation = XmlSchemaAnnotation.Read(reader,h); - if(annotation != null) - notation.Annotation = annotation; - continue; - } - reader.RaiseInvalidElementError(); - } - return notation; - } - } -} +using System; +using System.Xml.Serialization; +using System.Xml; + +namespace System.Xml.Schema +{ + /// + /// Summary description for XmlSchemaNotation. + /// + public class XmlSchemaNotation : XmlSchemaAnnotated + { + private string name; + private string pub; + private string system; + private XmlQualifiedName qualifiedName; + const string xmlname = "notation"; + + public XmlSchemaNotation() + { + } + [System.Xml.Serialization.XmlAttribute("name")] + public string Name + { + get{ return name; } + set{ name = value; } + } + [System.Xml.Serialization.XmlAttribute("public")] + public string Public + { + get{ return pub; } + set{ pub = value; } + } + [System.Xml.Serialization.XmlAttribute("system")] + public string System + { + get{ return system; } + set{ system = value; } + } + + [XmlIgnore] + internal XmlQualifiedName QualifiedName + { + get{ return qualifiedName;} + } + + // 1. name and public must be present + // public and system must be anyURI + internal override int Compile(ValidationEventHandler h, XmlSchema schema) + { + // If this is already compiled this time, simply skip. + if (CompilationId == schema.CompilationId) + return 0; + + if(Name == null) + error(h,"Required attribute name must be present"); + else if(!XmlSchemaUtil.CheckNCName(this.name)) + error(h,"attribute name must be NCName"); + else + qualifiedName = new XmlQualifiedName(Name, AncestorSchema.TargetNamespace); + + if(Public==null) + error(h,"public must be present"); + else if(!XmlSchemaUtil.CheckAnyUri(Public)) + error(h,"public must be anyURI"); + + if(system != null && !XmlSchemaUtil.CheckAnyUri(system)) + error(h,"system must be present and of Type anyURI"); + + XmlSchemaUtil.CompileID(Id,this,schema.IDCollection,h); + + return errorCount; + } + + internal override int Validate(ValidationEventHandler h, XmlSchema schema) + { + return errorCount; + } + + // + // Content: (annotation?) + // + internal static XmlSchemaNotation Read(XmlSchemaReader reader, ValidationEventHandler h) + { + XmlSchemaNotation notation = new XmlSchemaNotation(); + reader.MoveToElement(); + + if(reader.NamespaceURI != XmlSchema.Namespace || reader.LocalName != xmlname) + { + error(h,"Should not happen :1: XmlSchemaInclude.Read, name="+reader.Name,null); + reader.Skip(); + return null; + } + + notation.LineNumber = reader.LineNumber; + notation.LinePosition = reader.LinePosition; + notation.SourceUri = reader.BaseURI; + + while(reader.MoveToNextAttribute()) + { + if(reader.Name == "id") + { + notation.Id = reader.Value; + } + else if(reader.Name == "name") + { + notation.name = reader.Value; + } + else if(reader.Name == "public") + { + notation.pub = reader.Value; + } + else if(reader.Name == "system") + { + notation.system = reader.Value; + } + else if((reader.NamespaceURI == "" && reader.Name != "xmlns") || reader.NamespaceURI == XmlSchema.Namespace) + { + error(h,reader.Name + " is not a valid attribute for notation",null); + } + else + { + XmlSchemaUtil.ReadUnhandledAttribute(reader,notation); + } + } + + reader.MoveToElement(); + if(reader.IsEmptyElement) + return notation; + + // Content: (annotation?) + int level = 1; + while(reader.ReadNextElement()) + { + if(reader.NodeType == XmlNodeType.EndElement) + { + if(reader.LocalName != xmlname) + error(h,"Should not happen :2: XmlSchemaNotation.Read, name="+reader.Name,null); + break; + } + if(level <= 1 && reader.LocalName == "annotation") + { + level = 2; //Only one annotation + XmlSchemaAnnotation annotation = XmlSchemaAnnotation.Read(reader,h); + if(annotation != null) + notation.Annotation = annotation; + continue; + } + reader.RaiseInvalidElementError(); + } + return notation; + } + } +}