using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace WSDLParser
{
/// <summary>
/// Summary description for NamespaceHandler.
/// </summary>
public class SchemaHelper
{
public static string[] simpleTypes = new string[] {
"anyURI",
"base64Binary",
"boolean",
"byte",
"date",
"dateTime",
"decimal",
"double",
"duration",
"ENTITY",
"float",
"gDay",
"gMonth",
"gMonthDay",
"gYear",
"gYearMonth",
"hexBinary",
"ID",
"IDREF",
"integer",
"int",
"language",
"long",
"Name",
"NCName",
"negativeInteger",
"NMTOKEN",
"nonNegativeInteger",
"nonPositiveInteger",
"normalizedString",
"NOTATION",
"positiveInteger",
"QName",
"short",
"string",
"time",
"token",
"unsignedByte",
"unsignedInt",
"unsignedLong",
"unsignedShort"};
public SchemaHelper()
{
}
public static bool IsNotEmpty(object obj)
{
return (obj != null && (string)obj != String.Empty);
}
static bool IsSorted = false;
public static bool IsSimple(string str)
{
if (!IsSorted)
{
IsSorted = true;
Array.Sort(simpleTypes);
}
int index = Array.BinarySearch(simpleTypes, str.Trim());
if (index >= 0 && index < simpleTypes.Length)
return true;
else
return false;
}
internal static string LoopupPrefix(XmlSerializerNamespaces namespaces, string ns)
{
if (ns == string.Empty ) return string.Empty;
XmlQualifiedName[] XmlQualifiedNameList =namespaces.ToArray();
foreach (XmlQualifiedName XmlQualifiedName in XmlQualifiedNameList )
{
if (!XmlQualifiedName.IsEmpty && XmlQualifiedName.Namespace.Equals(ns) )
{
return XmlQualifiedName.Name;
}
}
return string.Empty;
}
internal static string LookupNamespace(XmlSerializerNamespaces namespaces,string prefix)
{
if (prefix != string.Empty) return string.Empty;
XmlQualifiedName[] XmlQualifiedNameList =namespaces.ToArray();
foreach (XmlQualifiedName XmlQualifiedName in XmlQualifiedNameList )
{
if (!XmlQualifiedName.IsEmpty && XmlQualifiedName.Name.Equals(prefix) )
{
return XmlQualifiedName.Namespace;
}
}
return string.Empty;
}
}
}