WmsException.cs
上传用户:sex100000
上传日期:2013-11-09
资源大小:1377k
文件大小:4k
源码类别:

GIS编程

开发平台:

C#

  1. // Copyright 2005, 2006 - Morten Nielsen (www.iter.dk)
  2. //
  3. // This file is part of SharpMap.
  4. // SharpMap is free software; you can redistribute it and/or modify
  5. // it under the terms of the GNU Lesser General Public License as published by
  6. // the Free Software Foundation; either version 2 of the License, or
  7. // (at your option) any later version.
  8. // 
  9. // SharpMap is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. // GNU Lesser General Public License for more details.
  13. // You should have received a copy of the GNU Lesser General Public License
  14. // along with SharpMap; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Text;
  19. using System.Xml;
  20. namespace SharpMap.Web.Wms
  21. {
  22. /// <summary>
  23. /// Class for throwing WMS exceptions to client
  24. /// </summary>
  25. internal class WmsException
  26. {
  27. /// <summary>
  28. /// WMS Exception codes
  29. /// </summary>
  30. internal enum WmsExceptionCode
  31. {
  32. /// <summary>
  33. /// Request contains a Format not offered by the server.
  34. /// </summary>
  35. InvalidFormat,
  36. /// <summary>
  37. /// Request contains a CRS not offered by the server for one or more of the
  38. /// Layers in the request.
  39. /// </summary>
  40. InvalidCRS,
  41. /// <summary>
  42. /// GetMap request is for a Layer not offered by the server, or GetFeatureInfo
  43. /// request is for a Layer not shown on the map.
  44. /// </summary>
  45. LayerNotDefined,
  46. /// <summary>
  47. /// Request is for a Layer in a Style not offered by the server.
  48. /// </summary>
  49. StyleNotDefined,
  50. /// <summary>
  51. /// GetFeatureInfo request is applied to a Layer which is not declared queryable.
  52. /// </summary>
  53. LayerNotQueryable,
  54. /// <summary>
  55. /// GetFeatureInfo request contains invalid X or Y value.
  56. /// </summary>
  57. InvalidPoint,
  58. /// <summary>
  59. /// Value of (optional) UpdateSequence parameter in GetCapabilities request is
  60. /// equal to current value of service metadata update sequence number.
  61. /// </summary>
  62. CurrentUpdateSequence,
  63. /// <summary>
  64. /// Value of (optional) UpdateSequence parameter in GetCapabilities request is
  65. /// greater than current value of service metadata update sequence number.
  66. /// </summary>
  67. InvalidUpdateSequence,
  68. /// <summary>
  69. /// Request does not include a sample dimension value, and the server did not
  70. /// declare a default value for that dimension.
  71. /// </summary>
  72. MissingDimensionValue,
  73. /// <summary>
  74. /// Request contains an invalid sample dimension value.
  75. /// </summary>
  76. InvalidDimensionValue,
  77. /// <summary>
  78. /// Request is for an optional operation that is not supported by the server.
  79. /// </summary>
  80. OperationNotSupported,
  81. /// <summary>
  82. /// No error code
  83. /// </summary>
  84. NotApplicable
  85. }
  86. internal static void ThrowWmsException(string Message)
  87. {
  88. ThrowWmsException(WmsException.WmsExceptionCode.NotApplicable, Message);
  89. }
  90. internal static void ThrowWmsException(WmsExceptionCode code, string Message)
  91. {
  92. System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
  93. Response.Clear();
  94. Response.ContentType = "text/xml";
  95. Response.Write("<?xml version="1.0" encoding="utf-8" ?>n");
  96. Response.Write("<ServiceExceptionReport version="1.3.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">n");
  97. Response.Write("<ServiceException");
  98. if(code!=WmsExceptionCode.NotApplicable)
  99. Response.Write(" code="" + code.ToString() + """);
  100. Response.Write(">" + Message + "</ServiceException>n");
  101. Response.Write("</ServiceExceptionReport>");
  102. Response.End();
  103. }
  104. //private static System.Xml.Schema.XmlSchema GetExceptionSchema()
  105. //{
  106. //    //Get XML Schema
  107. //    System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SharpMap.Web.Wms.Schemas._1._3._0.exceptions_1_3_0.xsd");
  108. //    System.Xml.Schema.XmlSchema schema = System.Xml.Schema.XmlSchema.Read(stream, null);
  109. //    stream.Close();
  110. //    return schema;
  111. //}
  112. }
  113. }