Skip() public method

public Skip ( ) : void
return void
        internal static WindowsPhoneStoreServiceAppImageNode ParseXml(XmlReader reader)
        {
            var node = new WindowsPhoneStoreServiceAppImageNode();

            if (reader.IsEmptyElement)
            {
                reader.Skip();
            }
            else
            {
                reader.ReadStartElement();

                while (reader.NodeType != XmlNodeType.EndElement)
                {
                    switch (reader.LocalName)
                    {
                        case "id":
                            node.Id = reader.ReadElementContentAsUrn();
                            break;

                        case "orientation":
                            node.Orientation = reader.ReadElementContentAsInt();
                            break;

                        default:
                            reader.Skip();
                            break;
                    }
                }

                reader.ReadEndElement();
            }

            return node;
        }
        internal static LoggingConfig Load(XmlReader reader)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");

            LoggingConfig result = new LoggingConfig();

            reader.GoToElement();
            if (!reader.IsEmptyElement)
            {
                reader.ReadStartElement();
                while (reader.GoToSibling())
                {
                    switch (reader.LocalName)
                    {
                        default:
                            reader.Skip();
                            break;
                    }
                }
                reader.ReadEndElement();
            }
            else
                reader.Skip();

            return result;
        }
        internal static ApplicationManifestTaskNodeBase ParseXml(XmlReader reader)
        {
            switch (reader.Name)
            {
                case "DefaultTask":
                    var node = new ApplicationManifestDefaultTaskNode()
                    {
                        Name = reader.GetAttribute("Name"),
                        NavigationPage = reader.GetAttribute("NavigationPage")
                    };

                    reader.Skip();

                    return node;

                case "ExtendedTask":
                    var node2 = new ApplicationManifestExtendedTaskNode
                    {
                        Name = reader.GetAttribute("Name"),
                        BackgroundServiceAgents = reader.ReadElementContentAsArray(ApplicationManifestBackgroundServiceAgentNode.ParseXml)
                    };

                    return node2;

                default:
                    reader.Skip();

                    return null;
            }
        }
Example #4
0
 /// <summary>
 /// Recupera os dados do xml.
 /// </summary>
 /// <param name="reader"></param>
 public void ReadXml(System.Xml.XmlReader reader)
 {
     if (reader.MoveToAttribute("name"))
     {
         Name = reader.ReadContentAsString();
         reader.MoveToElement();
     }
     if (reader.MoveToAttribute("address"))
     {
         Address = reader.ReadContentAsString();
         reader.MoveToElement();
     }
     reader.ReadStartElement();
     while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
     {
         if (reader.Name == "Configuration")
         {
             if (!reader.IsEmptyElement)
             {
                 var config = new ServiceAddressNode();
                 config.ReadXml(reader);
                 Configuration = config;
             }
             else
             {
                 reader.Skip();
             }
         }
         else
         {
             reader.Skip();
         }
     }
     reader.ReadEndElement();
 }
Example #5
0
 public void AddXmlDocumentation(XmlReader xml)
 {
     while (xml.Read()) {
         if (xml.NodeType == XmlNodeType.Element) {
             string elname = xml.Name.ToLowerInvariant();
             switch (elname) {
                 case "filterpriority":
                 case "remarks":
                     xml.Skip();
                     break;
                 case "example":
                     ret.Append(Environment.NewLine);
                     ret.Append("Example:");
                     ret.Append(Environment.NewLine);
                     break;
                 case "exception":
                     ret.Append(Environment.NewLine);
                     ret.Append(GetCref(xml["cref"]));
                     ret.Append(": ");
                     break;
                 case "returns":
                     xml.Skip();
                     break;
                 case "see":
                     ret.Append(GetCref(xml["cref"]));
                     ret.Append(xml["langword"]);
                     break;
                 case "seealso":
                     ret.Append(Environment.NewLine);
                     ret.Append("See also: ");
                     ret.Append(GetCref(xml["cref"]));
                     break;
                 case "paramref":
                     ret.Append(xml["name"]);
                     break;
                 case "param":
                     ret.Append(Environment.NewLine);
                     ret.Append(whitespace.Replace(xml["name"].Trim()," "));
                     ret.Append(": ");
                     break;
                 case "typeparam":
                     ret.Append(Environment.NewLine);
                     ret.Append(whitespace.Replace(xml["name"].Trim()," "));
                     ret.Append(": ");
                     break;
                 case "value":
                     ret.Append(Environment.NewLine);
                     ret.Append("Value: ");
                     ret.Append(Environment.NewLine);
                     break;
                 case "br":
                 case "para":
                     ret.Append(Environment.NewLine);
                     break;
             }
         } else if (xml.NodeType == XmlNodeType.Text) {
             ret.Append(whitespace.Replace(xml.Value, " "));
         }
     }
 }
Example #6
0
		/// <summary>
		///		Parses the WDDX element and returns the deserialized
		///		content as a <see cref="System.String"/> object, advancing the reader to the next
		///		element.
		/// </summary>
		/// <param name="input">The pre-initialized <see cref="System.Xml.XmlTextReader"/> pointing to the WDDX to be parsed.</param>
		public object ParseElement(XmlReader input)
		{
			if (input.IsEmptyElement)
			{
				input.Skip();
				return String.Empty;
			}

			StringBuilder output = new StringBuilder();
			input.Read();
			
			while (!(input.Name == "string" && input.NodeType == XmlNodeType.EndElement))
			{
				if (input.NodeType == XmlNodeType.Text || input.NodeType == XmlNodeType.Whitespace)
				{
					output.Append(input.ReadString());
				}
				else if (input.Name == "char")
				{
					// parse out the <char code="xx"/> tag
					output.Append((char)Int32.Parse(input.GetAttribute("code"), NumberStyles.AllowHexSpecifier));
					input.Skip();
				}
			}

			input.ReadEndElement();

			return output.ToString();
		}
        //public static Oids.Oid Deserialize(XmlReader reader, Oids.Oid oid)
        /// <summary>
        /// Deserializes Oid from an XML stream.
        /// </summary>
        /// <param name="reader">XML stream.</param>
        /// <returns>Oid.</returns>
        public static Oids.Oid Deserialize(XmlReader reader)
        {
            Oids.Oid lResult = null;
            if (reader.IsStartElement(DTD.TagOID))
            {
                string lClassName = reader.GetAttribute(DTD.OID.TagClass);
                List<KeyValuePair<ModelType,object>> lFields = new List<KeyValuePair<ModelType,object>>();

                if (!reader.IsEmptyElement)
                {
                    reader.ReadStartElement();
                    do
                    {
                    #region Process tag <OID.Field>.
                    if (reader.IsStartElement(DTD.OID.TagOIDField))
                    {
                        if (!reader.IsEmptyElement)
                        {
                            ModelType lType = Convert.StringTypeToMODELType(reader.GetAttribute(DTD.OID.TagType));
                            lFields.Add(new KeyValuePair<ModelType, object>(lType, Convert.XmlToType(lType, reader.ReadString())));
                        }
                        else
                        {
                            throw new ArgumentException("Xml Reader have one OID.Field with empty Element.", "XmlReader reader");
                        }
                    }
                    #endregion Process tag <OID.Field>.
                    else
                    {
                        #region Process tag <?>
                        reader.Skip();
                        if (reader.NodeType == XmlNodeType.None)
                        {
                            break;
                        }
                        else
                        {
                            continue;
                        }
                        #endregion Process tag <?>
                    }
                    } while (reader.Read());
                }
                else
                {
                    reader.Skip();
                }

                if(lClassName.Length > 0)
                {
                    lResult = ServerConnection.CreateOid(lClassName,lFields);
                }
            }
            else
            {
                throw new ArgumentException("Xml Reader don't have the OID in Start Element.", "XmlReader reader");
            }
            return lResult;
        }
        public static ServiceResponse Deserialize(XmlReader reader, ServiceResponse serviceResponse)
        {
            if (reader.IsStartElement(DTD.Response.TagServiceResponse))
            {
                if (serviceResponse == null)
                {
                    serviceResponse = new ServiceResponse();
                }

                if (!reader.IsEmptyElement)
                {
                    reader.ReadStartElement();
                    do
                    {
                        #region <ERROR>
                        if (reader.IsStartElement(DTD.Response.ServiceResponse.TagError))
                        {
                            if(int.Parse(reader.GetAttribute(DTD.Error.TagNumber))!=0)
                            {
                                throw XMLErrorSerializer.Deserialize(reader.ReadSubtree());
                            }
                            else
                            {
                                reader.Skip();
                            }
                        }
                        #endregion <ERROR>

                        #region <OID>
                        if (reader.IsStartElement(DTD.TagOID))
                        {
                            serviceResponse.Oid = XMLAdaptorOIDSerializer.Deserialize(reader.ReadSubtree());
                        }
                        #endregion <OID>

                        #region <Arguments>
                        if (reader.IsStartElement(DTD.Response.ServiceResponse.TagArguments))
                        {
                            serviceResponse.Arguments = XMLArgumentsSerializer.Deserialize(reader.ReadSubtree());
                        }
                        #endregion <Arguments>
                    } while (reader.Read());
                }
                else
                {
                    reader.Skip();
                }
            }
            else
            {
                throw new ArgumentException("Xml Reader don't have the Service.Response in Start Element.", "XmlReader reader");
            }
            return serviceResponse;
        }
        /// <summary>
        /// Generates a serializable continuation token from its XML representation.
        /// </summary>
        /// <param name="reader">The <see cref="T:System.Xml.XmlReader"/> stream from which the continuation token is deserialized.</param>
        public void ReadXml(XmlReader reader)
        {
            CommonUtility.AssertNotNull("reader", reader);

            reader.MoveToContent();

            if (reader.IsEmptyElement)
            {
                reader.Skip();
            }
            else
            {
                reader.ReadStartElement();
                while (reader.IsStartElement())
                {
                    if (reader.IsEmptyElement)
                    {
                        reader.Skip();
                    }
                    else
                    {
                        switch (reader.Name)
                        {
                            case Constants.ContinuationConstants.VersionElement:
                                string version = reader.ReadElementContentAsString();
                                if (version != Constants.ContinuationConstants.CurrentVersion)
                                {
                                    throw new XmlException(string.Format(CultureInfo.InvariantCulture, SR.UnexpectedElement, version));
                                }

                                break;

                            case Constants.ContinuationConstants.NextMarkerElement:
                                this.NextMarker = reader.ReadElementContentAsString();
                                break;

                            case Constants.ContinuationConstants.TypeElement:
                                string continuationType = reader.ReadElementContentAsString();
                                if (Constants.ContinuationConstants.QueueType != continuationType)
                                {
                                    throw new XmlException(SR.UnexpectedContinuationType);
                                }

                                break;

                            default:
                                throw new XmlException(string.Format(CultureInfo.InvariantCulture, SR.UnexpectedElement, reader.Name));
                        }
                    }
                }

                reader.ReadEndElement();
            }
        }
 /// <summary>
 /// Implementação da leitura de xml para a interface <see cref="IXmlSerializable"/>
 /// </summary>
 /// <param name="reader"></param>
 public void ReadXml(System.Xml.XmlReader reader)
 {
     reader.ReadStartElement();
     while (reader.NodeType != XmlNodeType.EndElement)
     {
         if (!reader.IsEmptyElement && reader.LocalName == "Result")
         {
             reader.MoveToElement();
             Result = new QueryResult();
             ((System.Xml.Serialization.IXmlSerializable)Result).ReadXml(reader);
         }
         else if (!reader.IsEmptyElement && reader.LocalName == "Parameters")
         {
             reader.ReadStartElement("Parameters", Namespaces.Query);
             Parameters = new QueryParameterCollection();
             while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
             {
                 var parameter = new QueryParameter();
                 ((System.Xml.Serialization.IXmlSerializable)parameter).ReadXml(reader);
                 Parameters.Add(parameter);
             }
             reader.ReadEndElement();
         }
         else
         {
             reader.Skip();
         }
     }
     reader.ReadEndElement();
 }
Example #11
0
        public void ReadFromXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement) { reader.Read(); return; }

            semesterStart = DateTime.Parse(reader.GetAttribute("semesterStart"));

            reader.Read();
            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    if (reader.Name == "weekday")
                    {
                        var weekday = new ScheduleWeekday();
                        weekday.ReadFromXml(reader);
                        weekdays.Add(weekday);
                    }
                    else
                    {
                        reader.Skip();
                    }
                }
                else
                {
                    reader.Read();
                    break;
                }
            }
        }
Example #12
0
        public void ReadFromXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement) { reader.Read(); return; }

            num = int.Parse(reader.GetAttribute("number"));

            reader.Read();
            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    if (reader.Name == "class")
                    {
                        var sClass = new ScheduleClass();
                        sClass.ReadFromXml(reader);
                        classes.Add(sClass);
                    }
                    else
                    {
                        reader.Skip();
                    }
                }
                else
                {
                    reader.Read();
                    break;
                }
            }
        }
Example #13
0
File: User.cs Project: liquidboy/X
        void IFlickrParsable.Load(XmlReader reader)
        {
            if (reader.LocalName != "user")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "nsid":
                    case "id":
                        UserId = reader.Value;
                        break;
                    case "username":
                        UserName = reader.Value;
                        break;
                    case "fullname":
                        FullName = reader.Value;
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            if (reader.NodeType != XmlNodeType.EndElement)
            {
                UserName = reader.ReadElementContentAsString();
                reader.Skip();
            }
        }
Example #14
0
        public override void ReadXml(XmlReader reader)
        {
            if (CheckEmptyNode(reader, "ContactPersonPrimary", Namespace))
                return;

            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    var isEmpty = reader.IsEmptyElement;
                    switch (reader.LocalName)
                    {
                        case "ContactPerson":
                            ContactPerson = isEmpty ? string.Empty : reader.ReadElementContentAsString();
                            break;
                        case "ContactOrganization":
                            ContactOrganization = isEmpty ? string.Empty : reader.ReadElementContentAsString();
                            break;

                        default:
                            reader.Skip();
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    reader.ReadEndElement();
                    return;
                }
                else
                {
                    reader.Read();
                }
            }
        }
Example #15
0
        private void ReadSubItems(System.Xml.XmlReader reader, ArrayList result, bool securityTrimmingEnabled)
        {
            int depth = reader.Depth + 1;

            while (reader.Read())
            {
                if (reader.Depth == depth)
                {
                    if (reader.NodeType == System.Xml.XmlNodeType.Element)
                    {
                        var aResult = ReadResult(reader, securityTrimmingEnabled);
                        if (aResult != null)
                        {
                            result.Add(aResult);
                        }
                    }
                    else if (reader.NodeType == XmlNodeType.EndElement)
                    {
                    }
                }
                else if (reader.Depth > depth)
                {
                    reader.Skip();
                }
                else if (reader.Depth < depth)
                {
                    break;
                }
            }
        }
Example #16
0
 void IFlickrParsable.Load(XmlReader reader)
 {
     if (!(reader.LocalName != "photos"))
     ;
       while (reader.MoveToNextAttribute())
       {
     switch (reader.LocalName)
     {
       case "total":
     this.Total = string.IsNullOrEmpty(reader.Value) ? 0 : int.Parse(reader.Value, (IFormatProvider) CultureInfo.InvariantCulture);
     continue;
       case "perpage":
       case "per_page":
     this.PerPage = string.IsNullOrEmpty(reader.Value) ? 0 : int.Parse(reader.Value, (IFormatProvider) CultureInfo.InvariantCulture);
     continue;
       case "page":
     this.Page = string.IsNullOrEmpty(reader.Value) ? 0 : int.Parse(reader.Value, (IFormatProvider) CultureInfo.InvariantCulture);
     continue;
       case "pages":
     this.Pages = string.IsNullOrEmpty(reader.Value) ? 0 : int.Parse(reader.Value, (IFormatProvider) CultureInfo.InvariantCulture);
     continue;
       default:
     continue;
     }
       }
       reader.Read();
       while (reader.LocalName == "photo")
       {
     Photo photo = new Photo();
     photo.Load(reader);
     if (!string.IsNullOrEmpty(photo.PhotoId))
       this.Add(photo);
       }
       reader.Skip();
 }
Example #17
0
		/// <summary>
		///		Parses the WDDX element and returns the deserialized
		///		content as a <see cref="Hashtable"/> object, advancing the reader to the next
		///		element.
		/// </summary>
		/// <param name="input">The pre-initialized <see cref="System.Xml.XmlTextReader"/> pointing to the WDDX to be parsed.</param>
		public object ParseElement(XmlReader input)
		{
			Hashtable thisTable = new Hashtable();

			if (input.IsEmptyElement)
			{
				input.Skip();
				return thisTable;
			}

			string elementName;
			object elementValue;
			IWddxElementDeserializer deserializer;
			while (input.Read() && (!(input.Name == "struct" && input.NodeType == XmlNodeType.EndElement)))
			{
				if (input.Name == "var" && input.NodeType != XmlNodeType.EndElement)
				{
					elementName = input.GetAttribute("name");
					input.Read();  // move to contents of <var>
					deserializer = WddxElementDeserializerFactory.GetDeserializer(input.Name);
					elementValue = deserializer.ParseElement(input);
					thisTable.Add(elementName, elementValue);
				}
			}
			input.ReadEndElement();

			return thisTable;
		}
        /// <summary>
        /// Obtains the type and value of a parameter from an XML Error file.
        /// </summary>
        /// <param name="reader">XML Error file.</param>
        /// <param name="parameter">Parameter to obtain.</param>
        /// <returns>Parameter.</returns>
        public static Parameter Deserialize(XmlReader reader, Parameter parameter)
        {
            if (reader.IsStartElement(DTD.Error.ErrorParams.TagErrorParam))
            {
                if (parameter == null)
                {
                    parameter = new Parameter();
                }

                // Read Attributes of Node.
                parameter.Key = reader.GetAttribute(DTD.Error.ErrorParams.TagKey);
                switch (reader.GetAttribute(DTD.Error.ErrorParams.TagType))
                {
                    case ResponseException.ErrorKey:
                        parameter.Type = ErrorParamType.Key;
                        break;
                    case ResponseException.ErrorLiteral:
                        parameter.Type = ErrorParamType.Literal;
                        break;
                }

                if (!reader.IsEmptyElement)
                {
                    parameter.Text = reader.ReadString();
                }
                else
                {
                    reader.Skip();
                }
            }
            return parameter;
        }
Example #19
0
        public override void ReadXml(XmlReader reader)
        {
            Keyword.Clear();

            var subReader = reader.ReadSubtree();

            if (CheckEmptyNode(subReader, "KeywordList", string.Empty, true))
                return;

            while (!subReader.EOF)
            {
                subReader.MoveToContent();
                if (subReader.LocalName == "Keyword")
                {
                    var att = subReader.GetAttribute("vocabulary");
                    reader.ReadStartElement("Keyword");
                    var val = reader.ReadContentAsString();
                    reader.ReadEndElement();
                    Keyword.Add(new Keyword { Vocabulary = att, Value = val });
                }
                else
                {
                    subReader.ReadEndElement();
                }
            }

            reader.Skip();
        }
Example #20
0
 void IFlickrParsable.Load(XmlReader reader)
 {
     reader.Read();
       while (reader.LocalName != "photos")
       {
     switch (reader.LocalName)
     {
       case "firstdatetaken":
     this.FirstTakenDate = UtilityMethods.ParseDateWithGranularity(reader.ReadElementContentAsString());
     continue;
       case "firstdate":
     this.FirstDate = UtilityMethods.UnixTimestampToDate(reader.ReadElementContentAsString());
     continue;
       case "count":
     this.PhotoCount = reader.ReadElementContentAsInt();
     continue;
       case "views":
     this.Views = reader.ReadElementContentAsInt();
     continue;
       default:
     reader.Skip();
     continue;
     }
       }
       reader.Read();
 }
Example #21
0
        public override void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement) { reader.Read(); return; }

            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    switch (reader.LocalName)
                    {
                        case "Format":
                            Format = reader.ReadElementContentAsString();
                            break;
                        case "OnlineResource":
                            OnlineResource = new OnlineResource();
                            OnlineResource.ReadXml(reader);
                            break;
                        default:
                            reader.Skip();
                            break;
                    }
                }
                else
                {
                    reader.Read();
                }
            }
        }
Example #22
0
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();

            Repeat = Convert.ToInt32(reader["Repeat"], CultureInfo.InvariantCulture);

            if (reader.IsEmptyElement) {
                reader.ReadStartElement();
                return;
            }

            reader.ReadStartElement();
            while (!reader.EOF) {
                if (reader.IsStartElement()) {
                    switch (reader.Name) {
                        case "Frames":
                            ReadFramesXml(reader);
                            break;

                        default:
                            reader.Skip();
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement) {
                    reader.ReadEndElement();
                    break;
                }
                else
                    reader.Read();
            }
        }
		/// <summary>
		/// Reads XML from the configuration file.
		/// </summary>
		/// <param name="xmlReader">The XmlReader object, which reads from the configuration file.</param>
		protected internal override void DeserializeSection(XmlReader xmlReader)
		{
			if (RawXml == null)
				RawXml = xmlReader.ReadOuterXml();
			else
				xmlReader.Skip();
		}
Example #24
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "service")
            {
                UtilityMethods.CheckParsingException(reader);
            }

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                case "id":
                    Id = reader.Value;
                    break;

                default:
                    UtilityMethods.CheckParsingException(reader);
                    break;
                }
            }

            reader.Read();

            Name = reader.ReadContentAsString();

            reader.Skip();
        }
Example #25
0
        /// <summary>
        /// Decodes an <see cref="Error"/> object from its XML representation.
        /// </summary>
        public static Error Decode(XmlReader reader)
        {
            if (reader == null) throw new ArgumentNullException("reader");
            if (!reader.IsStartElement()) throw new ArgumentException("Reader is not positioned at the start of an element.", "reader");

            //
            // Read out the attributes that contain the simple
            // typed state.
            //

            var error = new Error();
            ReadXmlAttributes(reader, error);

            //
            // Move past the element. If it's not empty, then
            // read also the inner XML that contains complex
            // types like collections.
            //

            var isEmpty = reader.IsEmptyElement;
            reader.Read();

            if (!isEmpty)
            {
                ReadInnerXml(reader, error);
                while (reader.NodeType != XmlNodeType.EndElement)
                    reader.Skip();
                reader.ReadEndElement();
            }

            return error;
        }
Example #26
0
        public override void ReadXml(XmlReader reader)
        {
            if (CheckEmptyNode(reader, "HTTP", Namespace))
                return;

            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    switch (reader.LocalName)
                    {
                        case "Get":
                            Get = new Get();
                            Get.ReadXml(reader);
                            break;
                        case "Post":
                            _postField = new Post();
                            Post.ReadXml(reader);
                            break;
                        default:
                            reader.Skip();
                            break;
                    }
                }
                else
                    reader.Read();
            }
        }
        protected override SecurityKeyIdentifier ReadKeyIdentifierCore(XmlReader reader)
        {
            var result = new SecurityKeyIdentifier();

            reader.ReadStartElement("KeyInfo", SignedXml.XmlDsigNamespaceUrl);

            while (reader.IsStartElement())
            {
                if (reader.IsStartElement("X509Data", SignedXml.XmlDsigNamespaceUrl))
                {
                    foreach (var clause in ReadX509Data(reader))
                    {
                        result.Add(clause);
                    }
                }
                else
                {
                    if (reader.IsStartElement("KeyName", SignedXml.XmlDsigNamespaceUrl))
                    {
                        result.Add(ReadKeyNameClause(reader));
                    }
                    else
                    {
                        reader.Skip();
                    }
                }
            }

            reader.ReadEndElement();

            return result;
        }
Example #28
0
 void IFlickrParsable.Load(XmlReader reader)
 {
     if (!(reader.LocalName != "tag"))
     ;
       while (reader.MoveToNextAttribute())
       {
     switch (reader.LocalName)
     {
       case "id":
     this.TagId = reader.Value;
     continue;
       case "author":
     this.AuthorId = reader.Value;
     continue;
       case "authorname":
     this.AuthorName = reader.Value;
     continue;
       case "raw":
     this.Raw = reader.Value;
     continue;
       case "machine_tag":
     this.IsMachineTag = reader.Value == "1";
     continue;
       default:
     continue;
     }
       }
       reader.Read();
       this.TagText = reader.ReadContentAsString();
       reader.Skip();
 }
        internal static MarketplaceAppImageNode ParseXml(XmlReader reader)
        {
            var node = new MarketplaceAppImageNode();

            reader.ReadStartElement();

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                switch (reader.LocalName)
                {
                    case "id":
                        node.Id = reader.ReadElementContentAsUrn();
                        break;

                    case "orientation":
                        node.Orientation = reader.ReadElementContentAsInt();
                        break;

                    default:
                        reader.Skip();
                        break;
                }
            }

            reader.ReadEndElement();

            return node;
        }
        void IFlickrParsable.Load(XmlReader reader)
        {
            if (reader.LocalName != "referrer")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "url":
                        Url = reader.Value;
                        break;
                    case "searchterm":
                        SearchTerm = reader.Value;
                        break;
                    case "views":
                        Views = int.Parse(reader.Value, NumberFormatInfo.InvariantInfo);
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Skip();
        }
Example #31
0
        ICustomXmlSerializer ICustomXmlSerializer.ReadFrom(System.Xml.XmlReader reader)
        {
            storedVars = new List <string> ();

            reader.MoveToContent();
            if (reader.IsEmptyElement)
            {
                reader.Read();
                return(null);
            }
            reader.ReadStartElement();
            reader.MoveToContent();
            while (reader.NodeType != XmlNodeType.EndElement)
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    storedVars.Add(reader.ReadElementString());
                }
                else
                {
                    reader.Skip();
                }
            }
            reader.ReadEndElement();
            return(null);
        }
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement) {
                reader.ReadStartElement();
                return;
            }

            reader.ReadStartElement();
            while (!reader.EOF) {
                if (reader.IsStartElement()) {
                    switch (reader.Name) {
                        case "Transform":
                            XmlTransformElement transform = new XmlTransformElement();
                            transform.ReadXml(reader);
                            Transform = transform;
                            break;

                        default:
                            reader.Skip();
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement) {
                    reader.ReadEndElement();
                    break;
                }
                else
                    reader.Read();
            }
        }
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();

            DefaultAnimation = reader["DefaultAnimation"];

            if (reader.IsEmptyElement) {
                reader.ReadStartElement();
                return;
            }

            reader.ReadStartElement();
            while (!reader.EOF) {
                if (reader.IsStartElement()) {
                    switch (reader.Name) {
                        case "Activity":
                            XmlActivityElement activity = new XmlActivityElement();
                            activity.ReadXml(reader);
                            Activities.Add(activity);
                            break;

                        default:
                            reader.Skip();
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement) {
                    reader.ReadEndElement();
                    break;
                }
                else
                    reader.Read();
            }
        }
        protected virtual void ReadXml(XmlReader reader, SyndicationFeed result)
        {
            if (result == null)
                throw new ArgumentNullException("result");
            else if (reader == null)
                throw new ArgumentNullException("reader");

            reader.ReadStartElement();              // Read in <RDF>
            reader.ReadStartElement("channel");     // Read in <channel>
            while (reader.IsStartElement())         // Process <channel> children
            {
                if (reader.IsStartElement("title"))
                    result.Title = new TextSyndicationContent(reader.ReadElementString());
                else if (reader.IsStartElement("link"))
                    result.Links.Add(new SyndicationLink(new Uri(reader.ReadElementString())));
                else if (reader.IsStartElement("description"))
                    result.Description = new TextSyndicationContent(reader.ReadElementString());
                else
                    reader.Skip();
            }
            reader.ReadEndElement();                // Read in </channel>

            while (reader.IsStartElement())
            {
                if (reader.IsStartElement("item"))
                {
                    result.Items = this.ReadItems(reader, result);

                    break;
                }
                else
                    reader.Skip();
            }
        }
Example #35
0
        void IFlickrParsable.Load(XmlReader reader)
        {
            if (reader.LocalName != "set")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "id":
                        SetId = reader.Value;
                        break;
                    case "title":
                        Title = reader.Value;
                        break;
                    case "description":
                        Description = reader.Value;
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;

                }
            }

            reader.Skip();
        }
Example #36
0
        public void ReadXmlContent(System.Xml.XmlReader reader, Func <Type, WSTableSource> getTSource)
        {
            base.ReadXmlContent(reader);

            bool done = false;

            while (reader.MoveToContent() == XmlNodeType.Element)
            {
                switch (reader.Name)
                {
                case "params":
                {
                    if (reader.ReadToDescendant("param"))
                    {
                        while (reader.MoveToContent() == XmlNodeType.Element)
                        {
                            string  pName = reader.GetAttribute("name");
                            WSParam param = GetXParam(pName, null, getTSource);
                            if (param == null)
                            {
                                reader.Skip();
                                continue;
                            }
                            else
                            {
                                if (param is WSTableParam)
                                {
                                    ((WSTableParam)param).ReadXml(reader);
                                }
                                else
                                {
                                    param.ReadXml(reader);
                                }
                            }

                            reader.MoveToContent();
                            if (!reader.Read())
                            {
                                break;
                            }
                        }
                    }
                    break;
                }

                default:
                {
                    done = true;
                    break;
                }
                }
                reader.MoveToContent();
                if (done || !reader.Read())
                {
                    break;
                }
            }
        }
 /// <summary>
 /// Recupera os dados contidos no xml informado.
 /// </summary>
 /// <param name="reader"></param>
 public void ReadXml(System.Xml.XmlReader reader)
 {
     if (reader.MoveToAttribute("name"))
     {
         Name = reader.ReadContentAsString();
     }
     reader.MoveToElement();
     reader.ReadStartElement();
     while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
     {
         if (reader.Name == "Parameters")
         {
             if (!reader.IsEmptyElement)
             {
                 ((System.Xml.Serialization.IXmlSerializable)Parameters).ReadXml(reader);
             }
             else
             {
                 reader.Skip();
             }
         }
         else if (reader.Name == "Children")
         {
             if (!reader.IsEmptyElement)
             {
                 ReadChildrenXml(reader);
             }
             else
             {
                 reader.Skip();
             }
         }
         else
         {
             reader.Skip();
         }
     }
     reader.ReadEndElement();
 }
Example #38
0
        void ITwentyThreeParsable.Load(System.Xml.XmlReader reader)
        {
            reader.ReadToDescendant("tag");

            while (reader.LocalName == "tag")
            {
                var member = new RawTag();
                ((ITwentyThreeParsable)member).Load(reader);
                Add(member);
            }

            reader.Skip();
        }
Example #39
0
        void System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
        {
            reader.ReadStartElement();
            var records = new List <Record>();

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                if (!reader.IsEmptyElement && reader.LocalName == "Descriptor")
                {
                    reader.MoveToElement();
                    _descriptor = new Record.RecordDescriptor();
                    ((System.Xml.Serialization.IXmlSerializable)_descriptor).ReadXml(reader);
                }
                else if (!reader.IsEmptyElement && reader.LocalName == "Records")
                {
                    reader.ReadStartElement();
                    while (reader.NodeType != XmlNodeType.EndElement)
                    {
                        if (reader.LocalName == "Record")
                        {
                            var record = new Record(_descriptor);
                            ((IXmlSerializable)record).ReadXml(reader);
                            records.Add(record);
                        }
                        else
                        {
                            reader.Skip();
                        }
                    }
                    reader.ReadEndElement();
                }
                else
                {
                    reader.Skip();
                }
            }
            reader.ReadEndElement();
            _records = records;
        }
Example #40
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            reader.ReadToDescendant("tag");

            while (reader.LocalName == "tag")
            {
                RawTag member = new RawTag();
                ((IFlickrParsable)member).Load(reader);
                Add(member);
            }

            reader.Skip();
        }
Example #41
0
        private void LoadElements(System.Xml.XmlReader reader)
        {
            if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "photo")
            {
                return;
            }

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                switch (reader.LocalName)
                {
                case "neighbourhood":
                    Neighbourhood = new Place();
                    ((IFlickrParsable)Neighbourhood).Load(reader);
                    break;

                case "locality":
                    Locality = new Place();
                    ((IFlickrParsable)Locality).Load(reader);
                    break;

                case "county":
                    County = new Place();
                    ((IFlickrParsable)County).Load(reader);
                    break;

                case "region":
                    Region = new Place();
                    ((IFlickrParsable)Region).Load(reader);
                    break;

                case "country":
                    Country = new Place();
                    ((IFlickrParsable)Country).Load(reader);
                    break;

                case "shapedata":
                    ShapeData = new ShapeData();
                    ((IFlickrParsable)ShapeData).Load(reader);
                    break;

                default:
                    UtilityMethods.CheckParsingException(reader);
                    reader.Skip();
                    break;
                }
            }

            reader.Read();
        }
Example #42
0
 /// <summary>
 /// Recupera os dados do xml.
 /// </summary>
 /// <param name="reader"></param>
 public void ReadXml(System.Xml.XmlReader reader)
 {
     if (reader.MoveToAttribute("name"))
     {
         Name = reader.ReadContentAsString();
         reader.MoveToElement();
     }
     if (reader.MoveToAttribute("value"))
     {
         Value = reader.ReadContentAsString();
         reader.MoveToElement();
     }
     reader.Skip();
 }
Example #43
0
        /// <summary>
        /// Reads the error data in child nodes.
        /// </summary>

        private static void ReadInnerXml(XmlReader reader, Error error)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }

            //
            // Loop through the elements, reading those that we
            // recognize. If an unknown element is found then
            // this method bails out immediately without
            // consuming it, assuming that it belongs to a subclass.
            //

            while (reader.IsStartElement())
            {
                //
                // Optimization Note: This block could be re-wired slightly
                // to be more efficient by not causing a collection to be
                // created if the element is going to be empty.
                //

                NameValueCollection collection;

                switch (reader.Name)
                {
                case "serverVariables": collection = error.ServerVariables; break;

                case "queryString": collection = error.QueryString; break;

                case "form": collection = error.Form; break;

                case "cookies": collection = error.Cookies; break;

                default: reader.Skip(); continue;
                }

                if (reader.IsEmptyElement)
                {
                    reader.Read();
                }
                else
                {
                    UpcodeTo(reader, collection);
                }
            }
        }
Example #44
0
        /// <summary>
        /// Decodes an <see cref="Error"/> object from its XML representation.
        /// </summary>

        public static Error Decode(XmlReader reader)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }

            //
            // Reader must be positioned on an element!
            //

            if (!reader.IsStartElement())
            {
                throw new ArgumentException("Reader is not positioned at the start of an element.", "reader");
            }

            //
            // Read out the attributes that contain the simple
            // typed state.
            //

            Error error = new Error();

            ReadXmlAttributes(reader, error);

            //
            // Move past the element. If it's not empty, then
            // read also the inner XML that contains complex
            // types like collections.
            //

            bool isEmpty = reader.IsEmptyElement;

            reader.Read();

            if (!isEmpty)
            {
                ReadInnerXml(reader, error);
                while (reader.NodeType != XmlNodeType.EndElement)
                {
                    reader.Skip();
                }
                reader.ReadEndElement();
            }

            return(error);
        }
Example #45
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "contacts")
            {
                UtilityMethods.CheckParsingException(reader);
            }

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                case "page":
                    Page = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                case "total":
                    Total = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                case "pages":
                    Pages = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                case "per_page":
                case "perpage":
                    PerPage = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                default:
                    UtilityMethods.CheckParsingException(reader);
                    break;
                }
            }

            reader.Read();

            while (reader.LocalName == "contact")
            {
                Contact contact = new Contact();
                ((IFlickrParsable)contact).Load(reader);
                Add(contact);
            }

            reader.Skip();
        }
 /// <summary>
 /// Lê os filhos do nó.
 /// </summary>
 /// <param name="reader"></param>
 private void ReadChildrenXml(System.Xml.XmlReader reader)
 {
     reader.ReadStartElement();
     while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
     {
         if (reader.Name == "Node")
         {
             var node = new ServiceAddressNode();
             ((System.Xml.Serialization.IXmlSerializable)node).ReadXml(reader);
             this.Add(node);
         }
         else
         {
             reader.Skip();
         }
     }
     reader.ReadEndElement();
 }
Example #47
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "services")
            {
                UtilityMethods.CheckParsingException(reader);
            }

            reader.Read();

            while (reader.LocalName == "service")
            {
                var service = new BlogService();
                ((IFlickrParsable)service).Load(reader);
                Add(service);
            }

            reader.Skip();
        }
        void ITwentyThreeParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "domains")
            {
                UtilityMethods.CheckParsingException(reader);
            }

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                case "page":
                    Page = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                case "total":
                    Total = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                case "pages":
                    Pages = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                case "perpage":
                    PerPage = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                    break;

                default:
                    UtilityMethods.CheckParsingException(reader);
                    break;
                }
            }

            reader.Read();

            while (reader.LocalName == "domain")
            {
                var domain = new StatDomain();
                ((ITwentyThreeParsable)domain).Load(reader);
                Add(domain);
            }

            reader.Skip();
        }
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "people")
            {
                UtilityMethods.CheckParsingException(reader);
            }

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                case "total":
                    Total = reader.ReadContentAsInt();
                    break;

                case "photo_width":
                    PhotoWidth = reader.ReadContentAsInt();
                    break;

                case "photo_height":
                    PhotoHeight = reader.ReadContentAsInt();
                    break;

                default:
                    UtilityMethods.CheckParsingException(reader);
                    break;
                }
            }

            reader.Read();

            while (reader.LocalName == "person")
            {
                var item = new PhotoPerson();
                ((IFlickrParsable)item).Load(reader);
                Add(item);
            }

            reader.Skip();
        }
Example #50
0
 public override void Skip()
 {
     CheckAsync();
     _coreReader.Skip();
 }
Example #51
0
        /// <summary>
        /// Reads Node from the currnt element in the _xmlReader.
        /// </summary>
        /// <returns>Information about parsed node.</returns>
        private NodeInfo ReadNode()
        {
            // id
            string attId = _xmlReader.GetAttribute("id");

            if (attId == null)
            {
                throw new Sys.XmlException("Attribute 'id' is missing.");
            }

            var nodeId = long.Parse(attId, System.Globalization.CultureInfo.InvariantCulture);

            // latitude
            string attLat = _xmlReader.GetAttribute("lat");

            if (attLat == null)
            {
                throw new Sys.XmlException("Attribute 'lat' is missing.");
            }

            double nodeLat = double.Parse(attLat, System.Globalization.CultureInfo.InvariantCulture);

            // longitude
            string attLon = _xmlReader.GetAttribute("lon");

            if (attLon == null)
            {
                throw new Sys.XmlException("Attribute 'lon'is missing.");
            }

            double nodeLon = double.Parse(attLon, System.Globalization.CultureInfo.InvariantCulture);

            EntityMetadata additionalInfo = null;

            if (this.Settings.ReadMetadata)
            {
                additionalInfo = this.ReadMetadata();
            }

            NodeInfo result = new NodeInfo(nodeId, nodeLat, nodeLon, new TagsCollection(), additionalInfo);

            if (_xmlReader.IsEmptyElement == false)
            {
                _xmlReader.Read();

                while (_xmlReader.NodeType != Sys.XmlNodeType.EndElement)
                {
                    if (_xmlReader.NodeType == Sys.XmlNodeType.Element && _xmlReader.Name == "tag")
                    {
                        result.Tags.Add(this.ReadTag());
                    }
                    else
                    {
                        _xmlReader.Skip();
                    }
                }
            }

            _xmlReader.Skip();
            return(result);
        }
Example #52
0
 public override void Skip()
 {
     reader.Skip();
 }
Example #53
0
        private CategoryDirectory ReadResult(System.Xml.XmlReader reader, bool securityTrimmingEnabled)
        {
            CategoryDirectory result = null;

            if (reader.NodeType == System.Xml.XmlNodeType.Element)
            {
                if (reader.LocalName == "category" && reader.NamespaceURI == ns)
                {
                    if (DeterminVisible(reader) && DeterminSecure(securityTrimmingEnabled, reader))
                    {
                        result = new CategoryDirectory();
                        if (reader.MoveToAttribute("name"))
                        {
                            result.Name = reader.Value;
                        }

                        if (reader.MoveToAttribute("title"))
                        {
                            result.Title = reader.Value;
                        }

                        reader.MoveToElement();
                    }
                }
                else if (reader.LocalName == "item" && reader.NamespaceURI == ns)
                {
                    if (DeterminVisible(reader) && DeterminSecure(securityTrimmingEnabled, reader))
                    {
                        result = new CategoryLink();
                        if (reader.MoveToAttribute("name"))
                        {
                            result.Name = reader.Value;
                        }
                        if (reader.MoveToAttribute("title"))
                        {
                            result.Title = reader.Value;
                        }
                        if (reader.MoveToAttribute("group"))
                        {
                            ((CategoryLink)result).Group = reader.ReadContentAsInt();
                        }
                        if (reader.MoveToAttribute("href"))
                        {
                            ((CategoryLink)result).Url = reader.Value;
                        }
                        if (reader.MoveToAttribute("role"))
                        {
                            ((CategoryLink)result).Role = reader.Value;
                        }
                        if (reader.MoveToAttribute("feature"))
                        {
                            ((CategoryLink)result).Feature = reader.Value;
                        }
                    }
                }
                else if (reader.LocalName == "group" && reader.NamespaceURI == ns)
                {
                    if (DeterminVisible(reader) && DeterminSecure(securityTrimmingEnabled, reader))
                    {
                        result = new CategoryGroup();
                        if (reader.MoveToAttribute("name"))
                        {
                            result.Name = reader.Value;
                        }
                        if (reader.MoveToAttribute("title"))
                        {
                            result.Title = reader.Value;
                        }
                        reader.MoveToElement();
                        ArrayList list = new ArrayList();

                        ReadSubItems(reader, list, securityTrimmingEnabled);
                        ((CategoryGroup)result).Categories = (CategoryDirectory[])list.ToArray(typeof(CategoryDirectory));
                    }
                    else
                    {
                        var level = reader.Depth;
                        while (reader.Read() && reader.Depth > level)
                        {
                            reader.Skip(); //跳过其任何子节点
                        }
                    }
                }
            }

            reader.MoveToElement();

            return(result);
        }
Example #54
0
        public new void ReadXmlContent(System.Xml.XmlReader reader)
        {
            base.ReadXmlContent(reader);

            bool done = false;

            while (reader.MoveToContent() == XmlNodeType.Element)
            {
                switch (reader.Name)
                {
                case "readAccessMode":
                    READ_ACCESS_MODE.ReadXml(reader);
                    break;

                case "writeAccessMode":
                    WRITE_ACCESS_MODE.ReadXml(reader);
                    break;

                case "allowedValues":
                    if (reader.ReadToDescendant("allowedValue"))
                    {
                        List <WSValue> values = new List <WSValue>();
                        while (reader.MoveToContent() == XmlNodeType.Element)
                        {
                            if (!reader.IsEmptyElement)
                            {
                                string aName = reader.GetAttribute("name");
                                if (string.IsNullOrEmpty(aName))
                                {
                                    reader.Skip();
                                }
                                else
                                {
                                    WSValue value = new WSValue(aName);
                                    value.ReadXml(reader);
                                    values.Add(value);
                                }
                            }
                            reader.MoveToContent();
                            if (!reader.Read())
                            {
                                break;
                            }
                        }
                        ALLOWED_VALUES = values;
                    }
                    break;

                default:
                {
                    reader.Skip();
                    done = true;
                    break;
                }
                }
                reader.MoveToContent();
                if (done || !reader.Read())
                {
                    break;
                }
            }
        }
Example #55
0
        /// <summary>
        /// Updates an existing <see cref="NameValueCollection" /> object from
        /// its XML representation.
        /// </summary>

        private static void UpcodeTo(XmlReader reader, NameValueCollection collection)
        {
            if (collection == null)
            {
                throw new ArgumentNullException("collection");
            }

            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }

            Debug.Assert(!reader.IsEmptyElement);
            reader.Read();

            //
            // Add entries into the collection as <item> elements
            // with child <value> elements are found.
            //

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                if (reader.IsStartElement("item"))
                {
                    string name   = reader.GetAttribute("name");
                    bool   isNull = reader.IsEmptyElement;

                    reader.Read(); // <item>

                    if (!isNull)
                    {
                        while (reader.NodeType != XmlNodeType.EndElement)
                        {
                            if (reader.IsStartElement("value")) // <value ...>
                            {
                                string value = reader.GetAttribute("string");
                                collection.Add(name, value);
                                if (reader.IsEmptyElement)
                                {
                                    reader.Read();
                                }
                                else
                                {
                                    reader.Read();
                                    while (reader.NodeType != XmlNodeType.EndElement)
                                    {
                                        reader.Skip();
                                    }
                                    reader.ReadEndElement();
                                }
                            }
                            else
                            {
                                reader.Skip();
                            }

                            reader.MoveToContent();
                        }

                        reader.ReadEndElement(); // </item>
                    }
                    else
                    {
                        collection.Add(name, null);
                    }
                }
                else
                {
                    reader.Skip();
                }

                reader.MoveToContent();
            }

            reader.ReadEndElement();
        }
Example #56
0
        private void ReadSubElements(System.Xml.XmlReader reader, string[] parts, int i, ArrayList result, bool securityTrimmingEnabled)
        {
            string nextName = parts[i];
            int    depth    = reader.Depth + 1;

            while (reader.Read())
            {
                if (reader.Depth == depth)
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Attribute:
                    case System.Xml.XmlNodeType.CDATA:
                    case System.Xml.XmlNodeType.Comment:
                    case System.Xml.XmlNodeType.Whitespace:
                        continue;

                    case System.Xml.XmlNodeType.EndElement:
                        break;

                    case System.Xml.XmlNodeType.Element:
                        break;

                    default:
                        throw new System.Xml.XmlException("读取到错误的节点");
                    }

                    if (reader.NodeType == System.Xml.XmlNodeType.Element)
                    {
                        bool hit = false;
                        if (reader.MoveToAttribute("name"))
                        {
                            hit = reader.Value == nextName;

                            if (hit)
                            {
                                hit = DeterminVisible(reader);
                            }
                            reader.MoveToElement();
                        }

                        if (hit)
                        {
                            i++;
                            if (i < parts.Length)
                            {
                                ReadSubElements(reader, parts, i, result, securityTrimmingEnabled);
                            }
                            else
                            {
                                ReadSubItems(reader, result, securityTrimmingEnabled);
                            }

                            break;
                        }
                        else
                        {
                            //reader.Skip();
                        }
                    }
                }
                else if (reader.Depth > depth)
                {
                    reader.Skip();
                }
                else
                {
                    break;
                }
            }
        }
        public void ReadXml(System.Xml.XmlReader reader)
        {
            try
            {
                string objectType = reader.GetAttribute("type");
                if (objectType != null && objectType.Trim().Length > 0)
                {
                    if (objectType == "MixedCollection")
                    {
                        int index = 0;
                        reader.Read();
                        while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
                        {
                            if (reader.IsStartElement("Item"))
                            {
                                objectType = reader.GetAttribute("type");
                                Type type = ChoType.GetType(objectType);
                                if (type == null)
                                {
                                    throw new ApplicationException(String.Format("Can't find {0} class.", objectType));
                                }

                                reader.ReadStartElement("Item");

                                try
                                {
                                    index++;
                                    XmlSerializer xmlSerializer = new XmlSerializer(type);
                                    Add(xmlSerializer.Deserialize(reader));
                                }
                                catch (Exception ex)
                                {
                                    throw new XmlException(String.Format("Failed to deserialize {0} array item.", index), ex);
                                }

                                reader.ReadEndElement();
                            }
                        }
                        reader.ReadEndElement();
                    }
                    else
                    {
                        Type type = ChoType.GetType(objectType);

                        if (type == null)
                        {
                            throw new ApplicationException(String.Format("Can't find {0} class.", objectType));
                        }

                        reader.Read();
                        while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
                        {
                            //if (reader.IsStartElement(type.Name))
                            //{
                            XmlSerializer xmlSerializer = new XmlSerializer(ChoType.GetType(objectType));
                            Add(xmlSerializer.Deserialize(reader));
                            //}
                        }
                        reader.ReadEndElement();
                    }
                }
                else
                {
                    reader.Skip();
                }
            }
            catch (Exception)
            {
                //ChoStreamProfile.WriteLine(ChoReservedFileName.SerializationIssues.ToString(), ChoApplicationException.ToString(ex));
                throw;
            }
        }