public override void Visit(TagNode node) { if (!node.Attributes.IsRunAtServer()) { return; } string id = node.Attributes ["id"] as string; if (id == null) { return; } if (Members.ContainsKey(id)) { AddError(ErrorType.Error, node.Location, GettextCatalog.GetString("Tag ID must be unique within the document: '{0}'.", id)); return; } string [] s = node.TagName.Split(':'); string prefix = (s.Length == 1)? "" : s[0]; string name = (s.Length == 1)? s[0] : s[1]; if (s.Length > 2) { AddError(ErrorType.Error, node.Location, GettextCatalog.GetString("Malformed tag name: '{0}'.", node.TagName)); return; } IType type = null; try { type = refMan.GetType(prefix, name, node.Attributes ["type"] as string); } catch (Exception e) { AddError(ErrorType.Error, node.Location, "Unknown parser error:" + e.ToString()); return; } if (type == null) { AddError(ErrorType.Error, node.Location, GettextCatalog.GetString("The tag type '{0}{1}{2}' has not been registered.", prefix, string.IsNullOrEmpty(prefix)? string.Empty:":", name)); return; } Members [id] = new CodeBehindMember(id, type, new TextLocation(node.Location.BeginLine, node.Location.BeginColumn)); }
void AddMember(XElement element) { string id = GetAttributeValueCI(element.Attributes, "id"); if (IsRunatServer(element) && (id != string.Empty)) { if (Members.ContainsKey(id)) { Errors.Add(new Error( ErrorType.Error, GettextCatalog.GetString("Tag ID must be unique within the document: '{0}'.", id), element.Region ) ); } else { string controlType = GetAttributeValueCI(element.Attributes, "type"); IType type = docRefMan.GetType(element.Name.Prefix, element.Name.Name, controlType); if (type == null) { Errors.Add( new Error( ErrorType.Error, GettextCatalog.GetString("The tag type '{0}{1}{2}' has not been registered.", element.Name.Prefix, element.Name.HasPrefix ? string.Empty : ":", element.Name.Name), element.Region ) ); } else { Members [id] = new CodeBehindMember(id, type, element.Region.Begin); } } } foreach (XNode node in element.Nodes) { if (node is XElement) { AddMember(node as XElement); } } }
void AddMember(XElement element) { string id; if (element.IsRunatServer() && !string.IsNullOrEmpty(id = element.GetId())) { if (Members.ContainsKey(id)) { Errors.Add(new Error( ErrorType.Error, GettextCatalog.GetString("Tag ID must be unique within the document: '{0}'.", id), element.Region ) ); } else { string controlType = element.Attributes.GetValue(new XName("type"), true); IType type = docRefMan.GetType(element.Name.Prefix, element.Name.Name, controlType); if (type == null) { Errors.Add( new Error( ErrorType.Error, GettextCatalog.GetString("The tag type '{0}{1}{2}' has not been registered.", element.Name.Prefix, element.Name.HasPrefix ? string.Empty : ":", element.Name.Name), element.Region ) ); } else { Members [id] = new CodeBehindMember(id, type, element.Region.Begin); } } } foreach (XElement child in element.Nodes.OfType <XElement> ()) { AddMember(child); } }
void AddMember (XElement element) { string id; if (element.IsRunatServer () && !string.IsNullOrEmpty (id = element.GetId ())) { if (Members.ContainsKey (id)) { Errors.Add (new Error ( ErrorType.Error, GettextCatalog.GetString ("Tag ID must be unique within the document: '{0}'.", id), element.Region ) ); } else { string controlType = element.Attributes.GetValue (new XName ("type"), true); IType type = docRefMan.GetType (element.Name.Prefix, element.Name.Name, controlType); if (type == null) { Errors.Add ( new Error ( ErrorType.Error, GettextCatalog.GetString ("The tag type '{0}{1}{2}' has not been registered.", element.Name.Prefix, element.Name.HasPrefix ? string.Empty : ":", element.Name.Name), element.Region ) ); } else Members [id] = new CodeBehindMember (id, type, element.Region.Begin); } } foreach (XNode node in element.Nodes) { if (node is XElement) AddMember (node as XElement); } }
public override void Visit (TagNode node) { if (!node.Attributes.IsRunAtServer ()) return; string id = node.Attributes ["id"] as string; if (id == null) return; if (Members.ContainsKey (id)) { AddError (ErrorType.Error, node.Location, GettextCatalog.GetString ("Tag ID must be unique within the document: '{0}'.", id)); return; } string [] s = node.TagName.Split (':'); string prefix = (s.Length == 1)? "" : s[0]; string name = (s.Length == 1)? s[0] : s[1]; if (s.Length > 2) { AddError (ErrorType.Error, node.Location, GettextCatalog.GetString ("Malformed tag name: '{0}'.", node.TagName)); return; } IType type = null; try { type = refMan.GetType (prefix, name, node.Attributes ["type"] as string); } catch (Exception e) { AddError (ErrorType.Error, node.Location, "Unknown parser error:" + e.ToString ()); return; } if (type == null) { AddError (ErrorType.Error, node.Location, GettextCatalog.GetString ("The tag type '{0}{1}{2}' has not been registered.", prefix, string.IsNullOrEmpty(prefix)? string.Empty:":", name)); return; } Members [id] = new CodeBehindMember (id, type, new TextLocation (node.Location.BeginLine, node.Location.BeginColumn)); }