示例#1
0
            private bool ConsumeStep()
            {
                Name = new XmlName(Step.LocalName, Node.LookupNamespaceUri(Step.Prefix));

                Step = Step.PreviousNode;
                return(true);
            }
 private static string GeneratePrefix(IXmlNode node)
 {
     for (var i = 0; ; i++)
     {
         var prefix       = "p" + i;
         var namespaceUri = node.LookupNamespaceUri(prefix);
         if (string.IsNullOrEmpty(namespaceUri))
         {
             return(prefix);
         }
     }
 }
 private bool TryGetPreferredPrefix(IXmlNode node, string namespaceUri, out string prefix)
 {
     prefix = this.LookupPrefix(namespaceUri);
     if (string.IsNullOrEmpty(prefix))
     {
         return(Try.Failure(out prefix));                // No preferred prefix
     }
     namespaceUri = node.LookupNamespaceUri(prefix);
     return(string.IsNullOrEmpty(namespaceUri)
                         ? true                      // Can use preferred prefix
                         : Try.Failure(out prefix)); // Preferred prefix already in use
 }
示例#4
0
文件: Xsi.cs 项目: belav/Core
        public static XmlName GetXsiType(this IXmlNode node)
        {
            var type = node.GetAttribute(Xsi.Type);

            if (type == null)
            {
                return(XmlName.Empty);
            }

            var xsiType = XmlName.ParseQName(type);

            if (xsiType.NamespaceUri != null)
            {
                var namespaceUri = node.LookupNamespaceUri(xsiType.NamespaceUri);
                xsiType = xsiType.WithNamespaceUri(namespaceUri);
            }
            return(xsiType);
        }
        public string GetElementPrefix(IXmlNode node, string namespaceUri)
        {
            string prefix;

            if (namespaceUri == node.LookupNamespaceUri(string.Empty))
            {
                return(string.Empty);
            }
            if (TryGetDefinedPrefix(node, namespaceUri, out prefix))
            {
                return(prefix);
            }
            if (!TryGetPreferredPrefix(node, namespaceUri, out prefix))
            {
                return(string.Empty);
            }
            if (!ShouldDefineOnRoot(prefix, namespaceUri))
            {
                return(string.Empty);
            }

            node.DefineNamespace(prefix, namespaceUri, true);
            return(prefix);
        }
示例#6
0
		private static string GeneratePrefix(IXmlNode node)
		{
			for (var i = 0; ; i++)
			{
				var prefix = "p" + i;
				var namespaceUri = node.LookupNamespaceUri(prefix);
				if (string.IsNullOrEmpty(namespaceUri))
					return prefix;
			}
		}
示例#7
0
		private bool TryGetPreferredPrefix(IXmlNode node, string namespaceUri, out string prefix)
		{
			prefix = this.LookupPrefix(namespaceUri);
			if (string.IsNullOrEmpty(prefix))
				return Try.Failure(out prefix); // No preferred prefix

			namespaceUri = node.LookupNamespaceUri(prefix);
			return string.IsNullOrEmpty(namespaceUri)
				? true                     // Can use preferred prefix
				: Try.Failure(out prefix); // Preferred prefix already in use
		}
示例#8
0
		public string GetElementPrefix(IXmlNode node, string namespaceUri)
		{
			string prefix;
			if (namespaceUri == node.LookupNamespaceUri(string.Empty))
				return string.Empty;
			if (TryGetDefinedPrefix(node, namespaceUri, out prefix))
				return prefix;
			if (!TryGetPreferredPrefix(node, namespaceUri, out prefix))
				return string.Empty;
			if (!ShouldDefineOnRoot(prefix, namespaceUri))
				return string.Empty;

			node.DefineNamespace(prefix, namespaceUri, true);
			return prefix;
		}
示例#9
0
 public string LookupNamespaceUri(string prefix)
 {
     return(node.LookupNamespaceUri(prefix));
 }