~ubuntu-branches/ubuntu/oneiric/monodevelop/oneiric

« back to all changes in this revision

Viewing changes to src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor/XmlFileAssociation.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2011-06-27 17:03:13 UTC
  • mto: (1.8.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 54.
  • Revision ID: james.westby@ubuntu.com-20110627170313-6cvz3s19x6e9hqe9
ImportĀ upstreamĀ versionĀ 2.5.92+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// MonoDevelop XML Editor
 
3
//
 
4
// Copyright (C) 2005-2007 Matthew Ward
 
5
//
 
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:
 
12
// 
 
13
// The above copyright notice and this permission notice shall be included in
 
14
// all copies or substantial portions of the Software.
 
15
// 
 
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
 
22
// THE SOFTWARE.
 
23
 
 
24
using MonoDevelop.Core;
 
25
using System;
 
26
using System.Xml;
 
27
 
 
28
namespace MonoDevelop.XmlEditor
 
29
{
 
30
        /// <summary>Represents an file extension that can be handled by the editor.</summary>
 
31
        public class XmlFileAssociation : ICustomXmlSerializer
 
32
        {
 
33
                static readonly string schemaAssociationElementName = "SchemaAssociation";
 
34
                static readonly string extensionAttributeName = "extension";
 
35
                static readonly string namespaceAttributeName = "namespace";
 
36
                static readonly string prefixAttributeName = "prefix";
 
37
                
 
38
                //deseriialization ctor
 
39
                public XmlFileAssociation ()
 
40
                {
 
41
                }
 
42
                
 
43
                public XmlFileAssociation (string extension, string namespaceUri, string namespacePrefix)
 
44
                {
 
45
                        this.Extension = extension == null? "" : extension.ToLower ();
 
46
                        this.NamespaceUri = namespaceUri ?? "";
 
47
                        this.NamespacePrefix = namespacePrefix ?? "";
 
48
                }
 
49
                
 
50
                public string NamespaceUri { get; private set; }
 
51
                public string Extension { get; private set; }
 
52
                public string NamespacePrefix { get; private set; }
 
53
                
 
54
                ICustomXmlSerializer ICustomXmlSerializer.ReadFrom (XmlReader reader)
 
55
                {
 
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);
 
61
                                        return this;
 
62
                                }
 
63
                        }
 
64
                        return null;
 
65
                }
 
66
                
 
67
                void ICustomXmlSerializer.WriteTo (XmlWriter writer)
 
68
                {
 
69
                        writer.WriteStartElement (schemaAssociationElementName);
 
70
                        writer.WriteAttributeString (extensionAttributeName, Extension);
 
71
                        writer.WriteAttributeString (namespaceAttributeName, NamespaceUri);
 
72
                        writer.WriteAttributeString (prefixAttributeName, NamespacePrefix);
 
73
                        writer.WriteEndElement ();
 
74
                }               
 
75
        }
 
76
}