示例#1
0
		public override void WriteStartDocument (Encoding encoding, StandaloneType standalone)
		{
#if docent
			if (standalone == StandaloneType.NONE)
				writer.WriteStartDocument ();
			else
				writer.WriteStartDocument (standalone == StandaloneType.YES);
#else
			string standaloneStr = "";
			switch (standalone) {
			case StandaloneType.YES:
				standaloneStr = " standalone=\"yes\"";
				break;
			case StandaloneType.NO:
				standaloneStr = " standalone=\"no\"";
				break;
			}

			if (encoding == null)
				writer.WriteProcessingInstruction ("xml", "version=\"1.0\"" + standaloneStr);
			else
				writer.WriteProcessingInstruction ("xml", 
					"version=\"1.0\" encoding=\"" 
					+ encoding.WebName + "\"" 
					+ standaloneStr);
#endif
		}
        public override void WriteStartDocument(Encoding encoding, StandaloneType standalone)
        {
#if docent
            if (standalone == StandaloneType.NONE)
            {
                writer.WriteStartDocument();
            }
            else
            {
                writer.WriteStartDocument(standalone == StandaloneType.YES);
            }
#else
            string standaloneStr = "";
            switch (standalone)
            {
            case StandaloneType.YES:
                standaloneStr = " standalone=\"yes\"";
                break;

            case StandaloneType.NO:
                standaloneStr = " standalone=\"no\"";
                break;
            }

            if (encoding == null)
            {
                writer.WriteProcessingInstruction("xml", "version=\"1.0\"" + standaloneStr);
            }
            else
            {
                writer.WriteProcessingInstruction("xml",
                                                  "version=\"1.0\" encoding=\""
                                                  + encoding.WebName + "\""
                                                  + standaloneStr);
            }
#endif
        }
        public override void WriteStartDocument(Encoding encoding, StandaloneType standalone)
        {
            string text = string.Empty;

            if (standalone != StandaloneType.YES)
            {
                if (standalone == StandaloneType.NO)
                {
                    text = " standalone=\"no\"";
                }
            }
            else
            {
                text = " standalone=\"yes\"";
            }
            if (encoding == null)
            {
                this.writer.WriteProcessingInstruction("xml", "version=\"1.0\"" + text);
            }
            else
            {
                this.writer.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"" + encoding.WebName + "\"" + text);
            }
        }
示例#4
0
文件: XslOutput.cs 项目: nobled/mono
		private void ProcessAttribute (XPathNavigator nav)
		{
			// skip attributes from non-default namespace
			if (nav.NamespaceURI != string.Empty) {
				return;
			}

			string value = nav.Value;

			switch (nav.LocalName) {
			case "cdata-section-elements":
				if (value.Length > 0) {
					cdSectsList.AddRange (XslNameUtil.FromListString (value, nav));
				}
				break;
			case "method":
				if (value.Length == 0) {
					break;
				}

				switch (value) {
					case "xml":
						method = OutputMethod.XML;
						break;
					case "html":
						omitXmlDeclaration = true;
						method = OutputMethod.HTML;
						break;
					case "text":
						omitXmlDeclaration = true;
						method = OutputMethod.Text;
						break;
					default:
						method = OutputMethod.Custom;
						customMethod = XslNameUtil.FromString (value, nav);
						if (customMethod.Namespace == String.Empty) {
							IXmlLineInfo li = nav as IXmlLineInfo;
							throw new XsltCompileException (new ArgumentException (
								"Invalid output method value: '" + value + "'. It" +
								" must be either 'xml' or 'html' or 'text' or QName."),
								nav.BaseURI,
								li != null ? li.LineNumber : 0,
								li != null ? li.LinePosition : 0);
						}
						break;
				}
				break;
			case "version":
				if (value.Length > 0) {
					this.version = value;
				}
				break;
			case "encoding":
				if (value.Length > 0) {
					try {
						this.encoding = System.Text.Encoding.GetEncoding (value);
					} catch (ArgumentException) {
						// MS.NET just leaves the default encoding when encoding is unknown
					} catch (NotSupportedException) {
						// Workaround for a bug in System.Text, it throws invalid exception
					}
				}
				break;
			case "standalone":
				switch (value) {
					case "yes":
						this.standalone = StandaloneType.YES;
						break;
					case "no":
						this.standalone = StandaloneType.NO;
						break;
					default:
						if (stylesheetVersion != "1.0")
							break;

						IXmlLineInfo li = nav as IXmlLineInfo;
						throw new XsltCompileException (new XsltException (
							"'" + value + "' is an invalid value for 'standalone'" +
							" attribute.", (Exception) null),
							nav.BaseURI,
							li != null ? li.LineNumber : 0,
							li != null ? li.LinePosition : 0);
				}
				break;
			case "doctype-public":
				this.doctypePublic = value;
				break;
			case "doctype-system":
				this.doctypeSystem = value;
				break;
			case "media-type":
				if (value.Length > 0) {
					this.mediaType = value;
				}
				break;
			case "omit-xml-declaration":
				switch (value) {
					case "yes":
						this.omitXmlDeclaration = true;
						break;
					case "no":
						this.omitXmlDeclaration = false;
						break;
					default:
						if (stylesheetVersion != "1.0")
							break;

						IXmlLineInfo li = nav as IXmlLineInfo;
						throw new XsltCompileException (new XsltException (
							"'" + value + "' is an invalid value for 'omit-xml-declaration'" +
							" attribute.", (Exception) null),
							nav.BaseURI,
							li != null ? li.LineNumber : 0,
							li != null ? li.LinePosition : 0);
				}
				break;
			case "indent":
				indent = value;
				if (stylesheetVersion != "1.0")
					break;
				switch (value) {
				case "yes":
				case "no":
					break;
				default:
					switch (method) {
					case OutputMethod.Custom:
						break;
					default:
						throw new XsltCompileException (String.Format ("Unexpected 'indent' attribute value in 'output' element: '{0}'", value), null, nav);
					}
					break;
				}
				break;
			default:
				if (stylesheetVersion != "1.0")
					break;

				IXmlLineInfo xli = nav as IXmlLineInfo;
				throw new XsltCompileException (new XsltException (
					"'" + nav.LocalName + "' is an invalid attribute for 'output'" +
					" element.", (Exception) null),
					nav.BaseURI,
					xli != null ? xli.LineNumber : 0,
					xli != null ? xli.LinePosition : 0);
			}
		}
        private void ProcessAttribute(XPathNavigator nav)
        {
            // skip attributes from non-default namespace
            if (nav.NamespaceURI != string.Empty)
            {
                return;
            }

            string value = nav.Value;

            switch (nav.LocalName)
            {
            case "cdata-section-elements":
                if (value.Length > 0)
                {
                    cdSectsList.AddRange(XslNameUtil.FromListString(value, nav));
                }
                break;

            case "method":
                if (value.Length == 0)
                {
                    break;
                }

                switch (value)
                {
                case "xml":
                    method = OutputMethod.XML;
                    break;

                case "html":
                    omitXmlDeclaration = true;
                    method             = OutputMethod.HTML;
                    break;

                case "text":
                    omitXmlDeclaration = true;
                    method             = OutputMethod.Text;
                    break;

                default:
                    method       = OutputMethod.Custom;
                    customMethod = XslNameUtil.FromString(value, nav);
                    if (customMethod.Namespace == String.Empty)
                    {
                        IXmlLineInfo li = nav as IXmlLineInfo;
                        throw new XsltCompileException(new ArgumentException(
                                                           "Invalid output method value: '" + value + "'. It" +
                                                           " must be either 'xml' or 'html' or 'text' or QName."),
                                                       nav.BaseURI,
                                                       li != null ? li.LineNumber : 0,
                                                       li != null ? li.LinePosition : 0);
                    }
                    break;
                }
                break;

            case "version":
                if (value.Length > 0)
                {
                    this.version = value;
                }
                break;

            case "encoding":
                if (value.Length > 0)
                {
                    try
                    {
                        this.encoding = System.Text.Encoding.GetEncoding(value);
                    }
                    catch (ArgumentException)
                    {
                        // MS.NET just leaves the default encoding when encoding is unknown
                    }
                    catch (NotSupportedException)
                    {
                        // Workaround for a bug in System.Text, it throws invalid exception
                    }
                }
                break;

            case "standalone":
                switch (value)
                {
                case "yes":
                    this.standalone = StandaloneType.YES;
                    break;

                case "no":
                    this.standalone = StandaloneType.NO;
                    break;

                default:
                    if (stylesheetVersion != "1.0")
                    {
                        break;
                    }

                    IXmlLineInfo li = nav as IXmlLineInfo;
                    throw new XsltCompileException(new XsltException(
                                                       "'" + value + "' is an invalid value for 'standalone'" +
                                                       " attribute.", (Exception)null),
                                                   nav.BaseURI,
                                                   li != null ? li.LineNumber : 0,
                                                   li != null ? li.LinePosition : 0);
                }
                break;

            case "doctype-public":
                this.doctypePublic = value;
                break;

            case "doctype-system":
                this.doctypeSystem = value;
                break;

            case "media-type":
                if (value.Length > 0)
                {
                    this.mediaType = value;
                }
                break;

            case "omit-xml-declaration":
                switch (value)
                {
                case "yes":
                    this.omitXmlDeclaration = true;
                    break;

                case "no":
                    this.omitXmlDeclaration = false;
                    break;

                default:
                    if (stylesheetVersion != "1.0")
                    {
                        break;
                    }

                    IXmlLineInfo li = nav as IXmlLineInfo;
                    throw new XsltCompileException(new XsltException(
                                                       "'" + value + "' is an invalid value for 'omit-xml-declaration'" +
                                                       " attribute.", (Exception)null),
                                                   nav.BaseURI,
                                                   li != null ? li.LineNumber : 0,
                                                   li != null ? li.LinePosition : 0);
                }
                break;

            case "indent":
                indent = value;
                if (stylesheetVersion != "1.0")
                {
                    break;
                }
                switch (value)
                {
                case "yes":
                case "no":
                    break;

                default:
                    switch (method)
                    {
                    case OutputMethod.Custom:
                        break;

                    default:
                        throw new XsltCompileException(String.Format("Unexpected 'indent' attribute value in 'output' element: '{0}'", value), null, nav);
                    }
                    break;
                }
                break;

            default:
                if (stylesheetVersion != "1.0")
                {
                    break;
                }

                IXmlLineInfo xli = nav as IXmlLineInfo;
                throw new XsltCompileException(new XsltException(
                                                   "'" + nav.LocalName + "' is an invalid attribute for 'output'" +
                                                   " element.", (Exception)null),
                                               nav.BaseURI,
                                               xli != null ? xli.LineNumber : 0,
                                               xli != null ? xli.LinePosition : 0);
            }
        }
 public override void WriteStartDocument(Encoding encoding, StandaloneType standalone)
 {
 }
示例#7
0
 internal static Standalone Create(StandaloneType type,string arguments,bool log = false)
 {
     Standalone executable = new Standalone();
     switch(type)
     {
     case StandaloneType.Calibration:
         executable.StartInfo = new ProcessStartInfo()
         {
             FileName = CalibrationExe,
             Arguments = arguments,
             WorkingDirectory = CalibrationWorkingDir,
             UseShellExecute = false,
             RedirectStandardOutput = true,
             RedirectStandardError = true,
             CreateNoWindow = true
         };
         break;
     case StandaloneType.Reconstruction:
         var workingdir = Path.GetDirectoryName(ReconstructionExe);
         executable.StartInfo = new ProcessStartInfo()
         {
             FileName = ReconstructionExe,
             WorkingDirectory = workingdir,
             //Arguments = workingdir + " " + arguments,
             Arguments = arguments + DefaultReconstructionParameters,
             UseShellExecute = false,
             RedirectStandardOutput = true,
             RedirectStandardError = true,
             //CreateNoWindow = true
         };
         break;
     case StandaloneType.Synchronization:
         executable.StartInfo = new ProcessStartInfo()
         {
             FileName = SynchronizationExe,
             Arguments = arguments,
             UseShellExecute = false,
             RedirectStandardOutput = true,
             RedirectStandardError = true,
             CreateNoWindow = true
         };
         break;
         //					case StandaloneType.Evaluation:
         //						break;
     case StandaloneType.None:
     default:
         break;
     }
     if(log)
     {
         executable.IsLogging = true;
         executable.logger = new StreamWriter(Path.Combine(arguments.Split(new string[]{" "},StringSplitOptions.RemoveEmptyEntries)[1],LogFile));
         executable.process.OutputDataReceived += (sender, e) =>
         {
             executable.logger.WriteLine(e.Data);
             Console.Standalone.Log(e.Data);
         };
         executable.process.ErrorDataReceived += (sender, e) =>
         {
             executable.logger.WriteLine(e.Data);
             Console.Standalone.Error(e.Data);
         };
     }
     return executable;
 }
示例#8
0
 public abstract void WriteStartDocument(Encoding encoding, StandaloneType standalone);
示例#9
0
        private void ProcessAttribute(XPathNavigator nav)
        {
            if (nav.NamespaceURI != string.Empty)
            {
                return;
            }
            string value     = nav.Value;
            string localName = nav.LocalName;

            switch (localName)
            {
            case "cdata-section-elements":
                if (value.Length > 0)
                {
                    this.cdSectsList.AddRange(XslNameUtil.FromListString(value, nav));
                }
                return;

            case "method":
            {
                if (value.Length == 0)
                {
                    return;
                }
                string text = value;
                switch (text)
                {
                case "xml":
                    this.method = OutputMethod.XML;
                    goto IL_269;

                case "html":
                    this.omitXmlDeclaration = true;
                    this.method             = OutputMethod.HTML;
                    goto IL_269;

                case "text":
                    this.omitXmlDeclaration = true;
                    this.method             = OutputMethod.Text;
                    goto IL_269;
                }
                this.method       = OutputMethod.Custom;
                this.customMethod = XslNameUtil.FromString(value, nav);
                if (this.customMethod.Namespace == string.Empty)
                {
                    IXmlLineInfo xmlLineInfo = nav as IXmlLineInfo;
                    throw new XsltCompileException(new ArgumentException("Invalid output method value: '" + value + "'. It must be either 'xml' or 'html' or 'text' or QName."), nav.BaseURI, (xmlLineInfo == null) ? 0 : xmlLineInfo.LineNumber, (xmlLineInfo == null) ? 0 : xmlLineInfo.LinePosition);
                }
IL_269:
                return;
            }

            case "version":
                if (value.Length > 0)
                {
                    this.version = value;
                }
                return;

            case "encoding":
                if (value.Length > 0)
                {
                    try
                    {
                        this.encoding = Encoding.GetEncoding(value);
                    }
                    catch (ArgumentException)
                    {
                    }
                    catch (NotSupportedException)
                    {
                    }
                }
                return;

            case "standalone":
            {
                string text = value;
                if (text != null)
                {
                    if (XslOutput.< > f__switch$map20 == null)
                    {
                        XslOutput.< > f__switch$map20 = new Dictionary <string, int>(2)
                        {
                            {
                                "yes",
                                0
                            },
                            {
                                "no",
                                1
                            }
                        };
                    }
                    int num2;
                    if (XslOutput.< > f__switch$map20.TryGetValue(text, out num2))
                    {
                        if (num2 == 0)
                        {
                            this.standalone = StandaloneType.YES;
                            goto IL_397;
                        }
                        if (num2 == 1)
                        {
                            this.standalone = StandaloneType.NO;
                            goto IL_397;
                        }
                    }
                }
                if (!(this.stylesheetVersion != "1.0"))
                {
                    IXmlLineInfo xmlLineInfo2 = nav as IXmlLineInfo;
                    throw new XsltCompileException(new XsltException("'" + value + "' is an invalid value for 'standalone' attribute.", null), nav.BaseURI, (xmlLineInfo2 == null) ? 0 : xmlLineInfo2.LineNumber, (xmlLineInfo2 == null) ? 0 : xmlLineInfo2.LinePosition);
                }
IL_397:
                return;
            }

            case "doctype-public":
                this.doctypePublic = value;
                return;

            case "doctype-system":
                this.doctypeSystem = value;
                return;

            case "media-type":
                if (value.Length > 0)
                {
                    this.mediaType = value;
                }
                return;

            case "omit-xml-declaration":
            {
                string text = value;
                if (text != null)
                {
                    if (XslOutput.< > f__switch$map21 == null)
                    {
                        XslOutput.< > f__switch$map21 = new Dictionary <string, int>(2)
                        {
                            {
                                "yes",
                                0
                            },
                            {
                                "no",
                                1
                            }
                        };
                    }
                    int num2;
                    if (XslOutput.< > f__switch$map21.TryGetValue(text, out num2))
                    {
                        if (num2 == 0)
                        {
                            this.omitXmlDeclaration = true;
                            goto IL_4AF;
                        }
                        if (num2 == 1)
                        {
                            this.omitXmlDeclaration = false;
                            goto IL_4AF;
                        }
                    }
                }
                if (!(this.stylesheetVersion != "1.0"))
                {
                    IXmlLineInfo xmlLineInfo3 = nav as IXmlLineInfo;
                    throw new XsltCompileException(new XsltException("'" + value + "' is an invalid value for 'omit-xml-declaration' attribute.", null), nav.BaseURI, (xmlLineInfo3 == null) ? 0 : xmlLineInfo3.LineNumber, (xmlLineInfo3 == null) ? 0 : xmlLineInfo3.LinePosition);
                }
IL_4AF:
                return;
            }

            case "indent":
            {
                this.indent = value;
                if (this.stylesheetVersion != "1.0")
                {
                    return;
                }
                string text = value;
                if (text != null)
                {
                    if (XslOutput.< > f__switch$map22 == null)
                    {
                        XslOutput.< > f__switch$map22 = new Dictionary <string, int>(2)
                        {
                            {
                                "yes",
                                0
                            },
                            {
                                "no",
                                0
                            }
                        };
                    }
                    int num2;
                    if (XslOutput.< > f__switch$map22.TryGetValue(text, out num2))
                    {
                        if (num2 == 0)
                        {
                            goto IL_568;
                        }
                    }
                }
                OutputMethod outputMethod = this.method;
                if (outputMethod != OutputMethod.Custom)
                {
                    throw new XsltCompileException(string.Format("Unexpected 'indent' attribute value in 'output' element: '{0}'", value), null, nav);
                }
IL_568:
                return;
            }
            }
            if (!(this.stylesheetVersion != "1.0"))
            {
                IXmlLineInfo xmlLineInfo4 = nav as IXmlLineInfo;
                throw new XsltCompileException(new XsltException("'" + nav.LocalName + "' is an invalid attribute for 'output' element.", null), nav.BaseURI, (xmlLineInfo4 == null) ? 0 : xmlLineInfo4.LineNumber, (xmlLineInfo4 == null) ? 0 : xmlLineInfo4.LinePosition);
            }
        }
示例#10
0
		public override void WriteStartDocument (Encoding encoding, StandaloneType standalone)
		{
			// do nothing
		}
示例#11
0
文件: Emitter.cs 项目: nobled/mono
		public abstract void WriteStartDocument (Encoding encoding, StandaloneType standalone);