diff --git a/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupContainerElement.cs b/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupContainerElement.cs index 5496e076..23c118b0 100644 --- a/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupContainerElement.cs +++ b/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupContainerElement.cs @@ -113,25 +113,33 @@ namespace UniversalEditor.ObjectModels.Markup } } - public MarkupElement FindElementUsingSchema(string schema, string name) + protected string FindSchemaTagPrefix(string schema) { - string tagPrefix = null; for (int i = 0; i < this.ParentObjectModel.Elements.Count; i++) { - MarkupTagElement tagTopLevel = (this.ParentObjectModel.Elements [i] as MarkupTagElement); - if (tagTopLevel != null) { - for (int j = 0; j < tagTopLevel.Attributes.Count; j++) { - if (tagTopLevel.Attributes [j].Namespace.Equals ("xmlns")) { + MarkupTagElement tagTopLevel = (this.ParentObjectModel.Elements[i] as MarkupTagElement); + if (tagTopLevel != null) + { + for (int j = 0; j < tagTopLevel.Attributes.Count; j++) + { + if (tagTopLevel.Attributes[j].Namespace.Equals("xmlns")) + { - if (tagTopLevel.Attributes [j].Value.Equals (schema)) { - tagPrefix = tagTopLevel.Attributes [j].Name; - break; + if (tagTopLevel.Attributes[j].Value.Equals(schema)) + { + return tagTopLevel.Attributes[j].Name; } } } } } + return null; + } + + public MarkupElement FindElementUsingSchema(string schema, string name) + { + string tagPrefix = FindSchemaTagPrefix(schema); if (tagPrefix == null) { Console.WriteLine ("ue: MarkupObjectModel: tag prefix for schema '" + schema + "' not found"); diff --git a/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupTagElement.cs b/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupTagElement.cs index bc0c0c85..6962743e 100644 --- a/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupTagElement.cs +++ b/Libraries/UniversalEditor.Essential/ObjectModels/Markup/MarkupTagElement.cs @@ -19,6 +19,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +using System; using System.Collections.Generic; namespace UniversalEditor.ObjectModels.Markup @@ -99,5 +100,19 @@ namespace UniversalEditor.ObjectModels.Markup } return list.ToArray(); } + + public MarkupAttribute FindAttributeUsingSchema(string schema, string name) + { + string tagPrefix = FindSchemaTagPrefix(schema); + if (tagPrefix != null) + { + for (int i = 0; i < Attributes.Count; i++) + { + if (Attributes[i].Namespace == tagPrefix && Attributes[i].Name == name) + return Attributes[i]; + } + } + return null; + } } }