Example #1
0
		public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, object oldValue, ref object value)
		{
			if (node.ClrType != typeof(object))
				XmlTypeSerializer.For(node.ClrType).SetValue(node, parent, accessor, oldValue, ref value);
			else
				node.Clear();
		}
Example #2
0
 private void PushParentNamespaces(IXmlNode node, XmlNamespaceManager manager)
 {
   List<IXmlNode> list = (List<IXmlNode>) null;
   IXmlNode xmlNode1 = node;
   while ((xmlNode1 = xmlNode1.ParentNode) != null)
   {
     if (xmlNode1.NodeType == XmlNodeType.Element)
     {
       if (list == null)
         list = new List<IXmlNode>();
       list.Add(xmlNode1);
     }
   }
   if (list == null)
     return;
   list.Reverse();
   foreach (IXmlNode xmlNode2 in list)
   {
     manager.PushScope();
     foreach (IXmlNode xmlNode3 in (IEnumerable<IXmlNode>) xmlNode2.Attributes)
     {
       if (xmlNode3.NamespaceUri == "http://www.w3.org/2000/xmlns/" && xmlNode3.LocalName != "xmlns")
         manager.AddNamespace(xmlNode3.LocalName, xmlNode3.Value);
     }
   }
 }
Example #3
0
		public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
		{
            using (var reader = new XmlSubtreeReader(node, Root))
                return serializer.CanDeserialize(reader)
                    ? serializer.Deserialize(reader)
                    : null;
		}
Example #4
0
		public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, ref object value)
		{
			var source      = (Array) value;
			var target      = (Array) null;
			var itemType    = source.GetType().GetElementType();
			var subaccessor = accessor.GetCollectionAccessor(itemType);
			var cursor      = subaccessor.SelectCollectionItems(node, true);
			var serializer  = subaccessor.Serializer;
			var references  = XmlAdapter.For(parent).References;

			for (var i = 0; i < source.Length; i++)
			{
				var originalItem = source.GetValue(i);
				var assignedItem = originalItem;

				subaccessor.SetValue(cursor, parent, references, cursor.MoveNext(), null /* TODO: Get Value */, ref assignedItem);

				if (target != null)
				{
					target.SetValue(assignedItem, i);
				}
				else if (!Equals(assignedItem, originalItem))
				{
					target = Array.CreateInstance(itemType, source.Length);
					Array.Copy(source, target, i);
					target.SetValue(assignedItem, i);
				}
			}

			cursor.RemoveAllNext();

			if (target != null)
				value = target;
		}
Example #5
0
		public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, object oldValue, ref object value)
		{
			var newNode = (XmlNode) value;

			using (var writer = new XmlSubtreeWriter(node))
				newNode.WriteTo(writer);
		}
Example #6
0
        public XmlSubtreeWriter(IXmlNode node)
        {
            if (node == null)
                throw Error.ArgumentNull("node");

            this.node = node;
        }
		public override IXmlCursor SelectPropertyNode(IXmlNode node, bool mutable)
		{
			var flags = Serializer.Kind == XmlTypeKind.Simple
				? CursorFlags.AllNodes
				: CursorFlags.Elements;
			return node.SelectChildren(KnownTypes, Context, flags.MutableIf(mutable));
		}
Example #8
0
        private void ParsePartwise(IXmlNode element)
        {
            var version = element.GetAttribute("version");
            if (!string.IsNullOrEmpty(version) && version != "2.0")
            {
                throw new UnsupportedFormatException();
            }

            element.IterateChildren(c =>
            {
                if (c.NodeType == XmlNodeType.Element)
                {
                    switch (c.LocalName)
                    {
                        case "movement-title":
                            _score.Title = Std.GetNodeValue(c.FirstChild);
                            break;
                        case "identification":
                            ParseIdentification(c);
                            break;
                        case "part-list":
                            ParsePartList(c);
                            break;
                        case "part":
                            ParsePart(c);
                            break;
                    }
                }
            });
        }
        public static XmlRpcValue Parse(IXmlNode node)
        {
            switch (node.NodeName.ToLower())
            {
                case "array":
                    return new XmlRpcArray(node);
                    break;
                case "struct":
                    return new XmlRpcStruct(node);
                    break;
                case "boolean":
                    return new XmlRpcBoolean(node);
                    break;
                case "int":
                    return new XmlRpcInt(node);
                    break;
                case "i4":
                    return new XmlRpcInt(node);
                    break;
                case "double":
                    return new XmlRpcDouble(node);
                    break;
                case "datetime.iso8601":
                    return new XmlRpcDateTime(node);
                    break;
                default:
                    return new XmlRpcString(node);
            }

            return null;
        }
		private object GetValueCore(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
		{
			var itemType    = node.ClrType.GetGenericArguments()[0];
			var listType    = ListTypeConstructor.MakeGenericType(itemType);
			var subaccessor = accessor.GetCollectionAccessor(itemType);
			return Activator.CreateInstance(listType, node, parent, subaccessor);
		}
Example #11
0
		private void PopulateIdentity(int id, IXmlNode node)
		{
			Entry entry;
			if (!entriesById.TryGetValue(id, out entry))
				entriesById.Add(id, new Entry(id, node));
			if (nextId <= id)
				nextId = ++id;
		}
Example #12
0
 private string ResolveFullName(IXmlNode node, XmlNamespaceManager manager)
 {
   string str = node.NamespaceUri == null || node.LocalName == "xmlns" && node.NamespaceUri == "http://www.w3.org/2000/xmlns/" ? (string) null : manager.LookupPrefix(node.NamespaceUri);
   if (!string.IsNullOrEmpty(str))
     return str + ":" + node.LocalName;
   else
     return node.LocalName;
 }
Example #13
0
		public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
		{
			var source = node.AsRealizable<XmlNode>();

			return (source != null && source.IsReal)
				? source.Value
				: null;
		}
Example #14
0
		private void PopulateReference(int id, IXmlNode node, ICollection<Reference> references)
		{
			Entry entry;
			if (entriesById.TryGetValue(id, out entry))
				entry.AddReference(node);
			else
				references.Add(new Reference(id, node));
		}
        public XmlRpcDouble(IXmlNode node)
        {
            double val = -1;

            double.TryParse(node.InnerText, out val);

            Value = val;
        }
Example #16
0
		public XmlReferenceManager(IXmlNode root, IXmlReferenceFormat format)
		{
			entriesById    = new        Dictionary<int,    Entry>();
			entriesByValue = new WeakKeyDictionary<object, Entry>(ReferenceEqualityComparer<object>.Instance);
			this.format    = format;
			this.nextId    = 1;

			Populate(root);
		}
        private void AddSuggestionFromNode(IXmlNode node, SearchSuggestionCollection suggestions)
        {
            string text = "";
            string description = "";
            string url = "";
            string imageUrl = "";
            string imageAlt = "";

            foreach (IXmlNode subNode in node.ChildNodes)
            {
                if (subNode.NodeType != NodeType.ElementNode)
                {
                    continue;
                }
                if (subNode.NodeName.Equals("Text", StringComparison.CurrentCultureIgnoreCase))
                {
                    text = subNode.InnerText;
                }
                else if (subNode.NodeName.Equals("Description", StringComparison.CurrentCultureIgnoreCase))
                {
                    description = subNode.InnerText;
                }
                else if (subNode.NodeName.Equals("Url", StringComparison.CurrentCultureIgnoreCase))
                {
                    url = subNode.InnerText;
                }
                else if (subNode.NodeName.Equals("Image", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (subNode.Attributes.GetNamedItem("source") != null)
                    {
                        imageUrl = subNode.Attributes.GetNamedItem("source").InnerText;
                    }
                    if (subNode.Attributes.GetNamedItem("alt") != null)
                    {
                        imageAlt = subNode.Attributes.GetNamedItem("alt").InnerText;
                    }
                }
            }

            if (string.IsNullOrWhiteSpace(text))
            {
                // No proper suggestion item exists
            }
            else if (string.IsNullOrWhiteSpace(url))
            {
                suggestions.AppendQuerySuggestion(text);
            }
            else
            {
                // The following image should not be used in your application for Result Suggestions.  Replace the image with one that is tailored to your content
                Uri uri = string.IsNullOrWhiteSpace(imageUrl) ? new Uri("ms-appx:///Assets/SDK_ResultSuggestionImage.png") : new Uri(imageUrl);
                RandomAccessStreamReference imageSource = RandomAccessStreamReference.CreateFromUri(uri);
                suggestions.AppendResultSuggestion(text, description, url, imageSource, imageAlt);
                Debug.WriteLine("\n                   Search Result ({0}): {1}", text, description);
            }
        }
Example #18
0
		private void Populate(IXmlNode node)
		{
			var references = new List<Reference>();
			var iterator   = node.SelectSubtree();

			while (iterator.MoveNext())
				PopulateFromNode(iterator, references);

			PopulateDeferredReferences(references);
		}
        static void SetNodeValueString(string str, IXmlDocument xmldoc, IXmlNode node) {
            IXmlText textNode;
            int res = xmldoc.CreateTextNode(str, out textNode);
            ComFunctions.CheckHRESULT(res);

            IXmlNode textNodeAsNode = (IXmlNode)textNode;
            IXmlNode appendedChild;
            res = node.AppendChild(textNodeAsNode, out appendedChild);
            ComFunctions.CheckHRESULT(res);
        }
Example #20
0
        public XmlSubtreeReader(IXmlNode node, string rootLocalName, string rootNamespaceUri)
        {
            if (null == node)
                throw Error.ArgumentNull("node");
            if (null == rootLocalName)
                throw Error.ArgumentNull("rootLocalName");

            this.reader           = node.ReadSubtree();
            this.rootLocalName    = reader.NameTable.Add(rootLocalName);
			this.rootNamespaceURI = rootNamespaceUri ?? string.Empty;
        }
Example #21
0
 private static void ParseTied(IXmlNode element, Note note)
 {
     if (element.GetAttribute("type") == "start")
     {
         note.IsTieOrigin = true;
     }
     else
     {
         note.IsTieDestination = true;
     }
 }
Example #22
0
		public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
		{
			var items      = new ArrayList();
			var itemType   = node.ClrType.GetElementType();
			var references = XmlAdapter.For(parent).References;

			accessor
				.GetCollectionAccessor(itemType)
				.GetCollectionItems(node, parent, references, items);

			return items.ToArray(itemType);
		}
Example #23
0
 private void LoadConferenceData(IXmlNode nodeConference)
 {
     Conference.Title = nodeConference.SelectSingleNode("title").InnerText;
     Conference.Subtitle = nodeConference.SelectSingleNode("subtitle").InnerText;
     Conference.Venue = nodeConference.SelectSingleNode("venue").InnerText;
     Conference.City = nodeConference.SelectSingleNode("city").InnerText;
     Conference.Start = DateTime.Parse(nodeConference.SelectSingleNode("start").InnerText);
     Conference.End = DateTime.Parse(nodeConference.SelectSingleNode("end").InnerText);
     Conference.NumberOfDays = int.Parse(nodeConference.SelectSingleNode("days").InnerText);
     Conference.DayChange = TimeSpan.Parse(nodeConference.SelectSingleNode("day_change").InnerText);
     Conference.TimeslotDuration = TimeSpan.Parse(nodeConference.SelectSingleNode("timeslot_duration").InnerText);
 }
Example #24
0
		public SysXmlSubtreeIterator(IXmlNode parent, IXmlNamespaceSource namespaces)
			: base(namespaces, parent)
		{
			if (null == parent)
				throw Error.ArgumentNull("parent");

			var source = parent.RequireRealizable<XmlNode>();
			if (source.IsReal)
				node = source.Value;

			type = typeof(object);
		}
Example #25
0
			private bool ConsumeNode()
			{
				var result = true;
				var path = Node.Path;
				if (path != null)
					result = ConsumeFirstStep(path);
				else
					Name = Node.Name;

				Node = Node.Parent;
				return result;
			}
Example #26
0
        private void LoadConferenceDayData(IXmlNode nodeDay)
        {
            Day day = new Day();
            day.Index = int.Parse(nodeDay.Attributes.GetNamedItem("index").InnerText);
            day.Date = DateTime.Parse(nodeDay.Attributes.GetNamedItem("date").InnerText);
            Conference.Days.Add(day);

            XmlNodeList nodesRooms = nodeDay.SelectNodes("room");
            foreach (IXmlNode item in nodesRooms)
            {
                LoadConferenceRoomData(item, day);
            }
        }
Example #27
0
		public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
		{
            var serializable = (IXmlSerializable) Activator.CreateInstance(node.ClrType);

			using (var reader = new XmlSubtreeReader(node, XmlDefaultSerializer.Root))
			{
				// Do NOT pre-read containing element
				// ...IXmlSerializable is not a symmetric contract
				serializable.ReadXml(reader);
			}

            return serializable;
		}
Example #28
0
		public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, object oldValue, ref object value)
		{
		    var serializable = (IXmlSerializable) value;
			var root = XmlDefaultSerializer.Root;

			using (var writer = new XmlSubtreeWriter(node))
			{
				// Pre-write containing element
				writer.WriteStartElement(string.Empty, root.ElementName, root.Namespace);
				serializable.WriteXml(writer);
				writer.WriteEndElement();
			}
		}
Example #29
0
 public static string GetNodeValue(IXmlNode n)
 {
     if (n.NodeType == XmlNodeType.Element || n.NodeType == XmlNodeType.Document)
     {
         var txt = new StringBuilder();
         n.IterateChildren(c =>
         {
             txt.Append(GetNodeValue(c));
         });
         return txt.ToString().Trim();
     }
     return n.Value;
 }
Example #30
0
        private void LoadConferenceEventData(IXmlNode nodeEvent, Day day, Room room)
        {
            Event conferenceEvent = new Event();
            conferenceEvent.Id = nodeEvent.Attributes.GetNamedItem("id").InnerText;
            conferenceEvent.Start = day.Date.Add(DateTime.Parse(nodeEvent.SelectSingleNode("start").InnerText).TimeOfDay);
            conferenceEvent.Duration = TimeSpan.Parse(nodeEvent.SelectSingleNode("duration").InnerText);
            conferenceEvent.Room = room;
            conferenceEvent.Day = day;
            conferenceEvent.Slug = nodeEvent.SelectSingleNode("slug").InnerText;
            conferenceEvent.Title = nodeEvent.SelectSingleNode("title").InnerText;
            conferenceEvent.Subtitle = nodeEvent.SelectSingleNode("subtitle").InnerText;
            string trackName = nodeEvent.SelectSingleNode("track").InnerText;
            conferenceEvent.Track = Conference.Tracks.FirstOrDefault(item => item.Name == trackName);
            if (conferenceEvent.Track == null)
            {
                conferenceEvent.Track = new Track() { Name = trackName };
                Conference.Tracks.Add(conferenceEvent.Track);
            }
            string typeName = nodeEvent.SelectSingleNode("type").InnerText;
            conferenceEvent.Type = Conference.EventTypes.FirstOrDefault(item => item.Name == typeName);
            if (conferenceEvent.Type == null)
            {
                conferenceEvent.Type = new EventType() { Name = typeName };
                Conference.EventTypes.Add(conferenceEvent.Type);
            }
            conferenceEvent.Language = nodeEvent.SelectSingleNode("language").InnerText;
            conferenceEvent.Abstract = nodeEvent.SelectSingleNode("abstract").InnerText;
            conferenceEvent.Description = nodeEvent.SelectSingleNode("description").InnerText;

            conferenceEvent.Persons = new List<Person>();
            IXmlNode nodesPersons = nodeEvent.SelectSingleNode("persons");
            XmlNodeList nodesPersonList = nodesPersons.SelectNodes("person");
            foreach (IXmlNode item in nodesPersonList)
            {
                Person person = LoadConferencePersonData(item);
                conferenceEvent.Persons.Add(person);
            }

            conferenceEvent.Links = new List<Link>();
            IXmlNode nodesLinks = nodeEvent.SelectSingleNode("links");
            XmlNodeList nodesLinkList = nodesLinks.SelectNodes("link");
            foreach (IXmlNode item in nodesLinkList)
            {
                Link link = new Link();
                link.Name = item.InnerText;
                link.Url = item.Attributes.GetNamedItem("href").InnerText;
                conferenceEvent.Links.Add(link);
            }

            Conference.Events.Add(conferenceEvent);
        }
 public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
 {
     return(GetValueCore(node.Save(), parent, accessor));
 }
 protected abstract IXmlCursor Cursor(IXmlNode parent, CompiledXPath path, IXmlIncludedTypeMap includedTypes, CursorFlags flags);
Example #33
0
 public bool UnderlyingPositionEquals(IXmlNode node)
 {
     return(this.node.UnderlyingPositionEquals(node));
 }
        public override IXmlCursor SelectPropertyNode(IXmlNode node, bool create)
        {
            var flags = CursorFlags.AllNodes.MutableIf(create);

            return(node.Select(path, this, Context, flags));
        }
 private object GetPropertyValueCore(IXmlNode parentNode, IDictionaryAdapter parentObject, XmlReferenceManager references, bool orStub)
 {
     return(SelectsNodes
                         ? base.GetPropertyValue(parentNode, parentObject, references, orStub)
                         : Evaluate(parentNode));
 }
Example #36
0
 public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, object oldValue, ref object value)
 {
     node.Value = value.ToString();
 }
        public override IXmlCursor SelectCollectionItems(IXmlNode node, bool create)
        {
            var flags = CursorFlags.AllNodes.MutableIf(create) | CursorFlags.Multiple;

            return(node.Select(path, this, Context, flags));
        }
Example #38
0
 public Entry(int id, IXmlNode node) : this(node)
 {
     Id = id;
 }
Example #39
0
 public Entry(IXmlNode node)
 {
     Node = node.Save();
 }
Example #40
0
        public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
        {
            var adapter = new XmlAdapter(node.Save(), XmlAdapter.For(parent).References);

            return(parent.CreateChildAdapter(node.ClrType, adapter));
        }
Example #41
0
 public Reference(int id, IXmlNode node)
 {
     Id   = id;
     Node = node;
 }
Example #42
0
 public virtual IXmlCursor SelectPropertyNode(IXmlNode parentNode, bool mutable)
 {
     throw Error.NotSupported();
 }
Example #43
0
 public virtual IXmlCursor SelectCollectionNode(IXmlNode parentNode, bool mutable)
 {
     return(SelectPropertyNode(parentNode, mutable));
 }
Example #44
0
 public virtual IXmlCursor SelectCollectionItems(IXmlNode parentNode, bool mutable)
 {
     throw Error.NotSupported();
 }
Example #45
0
 public void SetAttributeNode(IXmlNode attribute)
 {
     this._element.SetAttributeNode((XmlAttribute)((XmlNodeWrapper)attribute).WrappedNode);
 }
Example #46
0
        public bool OnAssigningNull(IXmlNode node, object oldValue)
        {
            object token, newValue = null;

            return(OnAssigningValue(node, oldValue, ref newValue, out token));
        }
        public void SetAttributeNode(IXmlNode attribute)
        {
            XmlNodeWrapper xmlNodeWrapper = (XmlNodeWrapper)attribute;

            this._element.SetAttributeNode((XmlAttribute)xmlNodeWrapper.WrappedNode);
        }
Example #48
0
 public abstract void   SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, object oldValue, ref object value);
Example #49
0
 public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
 {
     return(node.Value);
 }
Example #50
0
 public abstract object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor);
 public override IXmlCursor SelectCollectionNode(IXmlNode node, bool create)
 {
     return(node.SelectSelf(ClrType));
 }
Example #52
0
 public virtual object GetStub(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
 {
     throw Error.NotSupported();
 }
 private object GetDefaultPropertyValue(IXmlNode parentNode, IDictionaryAdapter parentObject, XmlReferenceManager references, bool orStub)
 {
     return(defaultAccessor != null
                         ? defaultAccessor.GetPropertyValue(parentNode, parentObject, references, orStub)
                         : null);
 }
Example #54
0
 public XmlSelfCursor(IXmlNode node, Type clrType)
 {
     this.node    = node;
     this.clrType = clrType;
     Reset();
 }
 public override bool IsPropertyDefined(IXmlNode parentNode)
 {
     return(SelectsNodes &&
            base.IsPropertyDefined(parentNode));
 }
 public override object GetPropertyValue(IXmlNode parentNode, IDictionaryAdapter parentObject, XmlReferenceManager references, bool orStub)
 {
     return(GetPropertyValueCore(parentNode, parentObject, references, orStub)
            ?? GetDefaultPropertyValue(parentNode, parentObject, references, orStub));
 }