Example #1
0
        private static Element ReadValue(XmlReader reader)
        {
            XName type = null;

            // Read value type
            if (reader.MoveToFirstAttribute())
            {
                do
                {
                    var attrName = reader.XName();
                    if (attrName == Xsi.Type)
                    {
                        type = reader.ValueAsXName();
                    }
                } while (reader.MoveToNextAttribute());

                reader.MoveToElement();
            }

            if (reader.IsEmptyElement)
            {
                return Value.Empty;
            }

            var value = Value.Empty;

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Text)
                {
                    if (type == Xsd.Integer)
                    {
                        value = reader.Value.AsInt32();
                    }
                    else if (type == Xsd.Decimal)
                    {
                        value = reader.Value.AsFloat();
                    }
                    else if (type == Xsd.QName)
                    {
                        value = reader.ValueAsXName();
                    }
                    else
                    {
                        value = reader.Value;
                    }
                }
                else if (reader.NodeType == XmlNodeType.Element)
                {
                    reader.Skip();
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    break;
                }
            }

            return value;
        }
Example #2
0
 public static Element ReadElement(XmlReader reader)
 {
     XName tagName = reader.XName();
     if (tagName == Psf.Feature) return ReadFeature(reader);
     else if (tagName == Psf.Option) return ReadOption(reader);
     else if (tagName == Psf.ParameterDef) return ReadParameterDef(reader);
     else if (tagName == Psf.ParameterInit) return ReadParameterInit(reader);
     else if (tagName == Psf.ParameterRef) return ReadParameterRef(reader);
     else if (tagName == Psf.Property) return ReadProperty(reader);
     else if (tagName == Psf.ScoredProperty) return ReadScoredProperty(reader);
     else if (tagName == Psf.Value) return ReadValue(reader);
     else reader.Skip();
     return null;
 }
Example #3
0
        public static Ticket ReadTicket(XmlReader reader)
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    break;
                }
            }

            var tagName = reader.XName();
            if (tagName != Psf.PrintTicket)
                return null;

            var pt = new PrintSchemaTicket();

            pt.Add(ReadNamespaceDeclarations(reader));

            foreach (var child in ReadChildren(reader))
            {
                pt.Add(child);
            }

            return pt.GetResult();
        }
Example #4
0
        public static Capabilities ReadCapabilities(XmlReader reader)
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    break;
                }
            }

            var tagName = reader.XName();
            if (tagName != Psf.PrintCapabilities)
                return null;

            var pc = new PrintSchemaCapabilities();

            pc.Add(ReadNamespaceDeclarations(reader));

            foreach (var child in ReadChildren(reader))
            {
                pc.Add(child);
            }

            return pc.GetResult();
        }