コード例 #1
0
        protected void XukOutRegisteredTypes(XmlWriter destination, Uri baseUri, progress.IProgressHandler handler)
        {
            foreach (TypeAndQNames tp in mRegisteredTypeAndQNames)
            {
                destination.WriteStartElement(Type_NAME.z(PrettyFormat), XukAble.XUK_NS);
                destination.WriteAttributeString(XukLocalName_NAME.z(PrettyFormat), tp.QName.LocalName.z(PrettyFormat));
                destination.WriteAttributeString(XukNamespaceUri_NAME.z(PrettyFormat), tp.QName.NamespaceUri);
                if (tp.BaseQName != null)
                {
                    DebugFix.Assert(!string.IsNullOrEmpty(tp.BaseQName.LocalName.Pretty) ||
                                    !string.IsNullOrEmpty(tp.BaseQName.LocalName.Ugly));

                    destination.WriteAttributeString(BaseXukLocalName_NAME.z(PrettyFormat), tp.BaseQName.LocalName.z(PrettyFormat));
                    destination.WriteAttributeString(BaseXukNamespaceUri_NAME.z(PrettyFormat), tp.BaseQName.NamespaceUri);
                }
                if (tp.Type != null)
                {
                    tp.AssemblyName = tp.Type.Assembly.GetName();
                    tp.ClassName    = tp.Type.FullName;
                }
                if (tp.AssemblyName != null)
                {
                    destination.WriteAttributeString(AssemblyName_NAME.z(PrettyFormat), tp.AssemblyName.Name);
                    destination.WriteAttributeString(AssemblyVersion_NAME.z(PrettyFormat), tp.AssemblyName.Version.ToString());
                }
                if (tp.ClassName != null)
                {
                    destination.WriteAttributeString(FullName_NAME.z(PrettyFormat), tp.ClassName);
                }
                destination.WriteEndElement();
            }
        }
コード例 #2
0
 /// <summary>
 /// Reads a child of a XukAble xuk element.
 /// </summary>
 /// <param name="source">The source <see cref="XmlReader"/></param>
 /// <param name="handler">The handler of progress</param>
 protected override void XukInChild(XmlReader source, progress.IProgressHandler handler)
 {
     if (RegisteredTypes_NAME.Match(source.LocalName) &&
         source.NamespaceURI == XukAble.XUK_NS)
     {
         XukInRegisteredTypes(source, handler);
         return;
     }
     base.XukInChild(source, handler);
 }
コード例 #3
0
        /// <summary>
        /// Write the child elements of a XukAble element.
        /// </summary>
        /// <param name="destination">The destination <see cref="XmlWriter"/></param>
        /// <param name="baseUri">
        /// The base <see cref="Uri"/> used to make written <see cref="Uri"/>s relative,
        /// if <c>null</c> absolute <see cref="Uri"/>s are written
        /// </param>
        /// <param name="handler">The handler for progress</param>
        protected override void XukOutChildren(XmlWriter destination, Uri baseUri, progress.IProgressHandler handler)
        {
            destination.WriteStartElement(RegisteredTypes_NAME.z(PrettyFormat), XukAble.XUK_NS);

            XukOutRegisteredTypes(destination, baseUri, handler);

            destination.WriteEndElement();

            base.XukOutChildren(destination, baseUri, handler);
        }
コード例 #4
0
        protected override void XukInChild(XmlReader source, progress.IProgressHandler handler)
        {
            if (source.LocalName == XukStrings.RegisteredTypes && source.NamespaceURI == XukAble.XUK_NS)
            {
                XukInRegisteredTypes(source, handler);
            }
            else if (!Presentation.Project.PrettyFormat)
            {
                XukInRegisteredType(source);
            }

            //we're replacing the super class method completely
            //base.XukInChild(source, handler);
        }
コード例 #5
0
        protected override void XukOutChildren(XmlWriter destination, Uri baseUri, progress.IProgressHandler handler)
        {
            if (Presentation.Project.PrettyFormat)
            {
                destination.WriteStartElement(XukStrings.RegisteredTypes, XukAble.XUK_NS);
            }

            XukOutRegisteredTypes(destination, baseUri, handler);

            if (Presentation.Project.PrettyFormat)
            {
                destination.WriteEndElement();
            }
            //we're replacing the super class method completely
            //base.XukOutChildren(destination, baseUri, handler);
        }
コード例 #6
0
 protected void XukInRegisteredTypes(XmlReader source, progress.IProgressHandler handler)
 {
     if (!source.IsEmptyElement)
     {
         while (source.Read())
         {
             if (source.NodeType == XmlNodeType.Element)
             {
                 XukInRegisteredType(source);
             }
             else if (source.NodeType == XmlNodeType.EndElement)
             {
                 break;
             }
             if (source.EOF)
             {
                 throw new XukException("Unexpectedly reached EOF");
             }
         }
     }
 }