2
// MonoDevelop XML Editor
4
// Copyright (C) 2005-2007 Matthew Ward
6
// Permission is hereby granted, free of charge, to any person obtaining a copy
7
// of this software and associated documentation files (the "Software"), to deal
8
// in the Software without restriction, including without limitation the rights
9
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
// copies of the Software, and to permit persons to whom the Software is
11
// furnished to do so, subject to the following conditions:
13
// The above copyright notice and this permission notice shall be included in
14
// all copies or substantial portions of the Software.
16
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
using MonoDevelop.Core;
28
namespace MonoDevelop.XmlEditor
30
/// <summary>Represents an file extension that can be handled by the editor.</summary>
31
public class XmlFileAssociation : ICustomXmlSerializer
33
static readonly string schemaAssociationElementName = "SchemaAssociation";
34
static readonly string extensionAttributeName = "extension";
35
static readonly string namespaceAttributeName = "namespace";
36
static readonly string prefixAttributeName = "prefix";
38
//deseriialization ctor
39
public XmlFileAssociation ()
43
public XmlFileAssociation (string extension, string namespaceUri, string namespacePrefix)
45
this.Extension = extension == null? "" : extension.ToLower ();
46
this.NamespaceUri = namespaceUri ?? "";
47
this.NamespacePrefix = namespacePrefix ?? "";
50
public string NamespaceUri { get; private set; }
51
public string Extension { get; private set; }
52
public string NamespacePrefix { get; private set; }
54
ICustomXmlSerializer ICustomXmlSerializer.ReadFrom (XmlReader reader)
56
while (reader.Read ()) {
57
if (reader.NodeType == XmlNodeType.Element && reader.Name == schemaAssociationElementName) {
58
Extension = reader.GetAttribute (extensionAttributeName);
59
NamespaceUri = reader.GetAttribute (namespaceAttributeName);
60
NamespacePrefix = reader.GetAttribute (prefixAttributeName);
67
void ICustomXmlSerializer.WriteTo (XmlWriter writer)
69
writer.WriteStartElement (schemaAssociationElementName);
70
writer.WriteAttributeString (extensionAttributeName, Extension);
71
writer.WriteAttributeString (namespaceAttributeName, NamespaceUri);
72
writer.WriteAttributeString (prefixAttributeName, NamespacePrefix);
73
writer.WriteEndElement ();