protected void CompileDecimalFormat(Compiler compiler) { NumberFormatInfo info = new NumberFormatInfo(); DecimalFormat format = new DecimalFormat(info, '#', '0', ';'); XmlQualifiedName Name = null; NavigatorInput input = compiler.Input; if (input.MoveToFirstAttribute()) { do { Debug.TraceAttribute(input); if (!Keywords.Equals(input.Prefix, input.Atoms.Empty)) { continue; } string name = input.LocalName; string value = input.Value; if (Keywords.Equals(name, input.Atoms.Name)) { Name = compiler.CreateXPathQName(value); } else if (Keywords.Equals(name, input.Atoms.DecimalSeparator)) { info.NumberDecimalSeparator = value; } else if (Keywords.Equals(name, input.Atoms.GroupingSeparator)) { info.NumberGroupSeparator = value; } else if (Keywords.Equals(name, input.Atoms.Infinity)) { info.PositiveInfinitySymbol = value; } else if (Keywords.Equals(name, input.Atoms.MinusSign)) { info.NegativeSign = value; } else if (Keywords.Equals(name, input.Atoms.NaN)) { info.NaNSymbol = value; } else if (Keywords.Equals(name, input.Atoms.Percent)) { info.PercentSymbol = value; } else if (Keywords.Equals(name, input.Atoms.PerMille)) { info.PerMilleSymbol = value; } else if (Keywords.Equals(name, input.Atoms.Digit)) { if (CheckAttribute(value.Length == 1, compiler)) { format.digit = value[0]; } } else if (Keywords.Equals(name, input.Atoms.ZeroDigit)) { if (CheckAttribute(value.Length == 1, compiler)) { format.zeroDigit = value[0]; } } else if (Keywords.Equals(name, input.Atoms.PatternSeparator)) { if (CheckAttribute(value.Length == 1, compiler)) { format.patternSeparator = value[0]; } } }while(input.MoveToNextAttribute()); info.NegativeInfinitySymbol = String.Concat(info.NegativeSign, info.PositiveInfinitySymbol); if (Name == null) { Name = new XmlQualifiedName(null, null); } compiler.AddDecimalFormat(Name, format); input.ToParent(); } }
protected void CompileDecimalFormat(Compiler compiler){ NumberFormatInfo info = new NumberFormatInfo(); DecimalFormat format = new DecimalFormat(info, '#', '0', ';'); XmlQualifiedName Name = null; NavigatorInput input = compiler.Input; if (input.MoveToFirstAttribute()) { do { Debug.TraceAttribute(input); if (! Keywords.Equals(input.Prefix, input.Atoms.Empty)) continue; string name = input.LocalName; string value = input.Value; if (Keywords.Equals(name, input.Atoms.Name)) { Name = compiler.CreateXPathQName(value); } else if (Keywords.Equals(name, input.Atoms.DecimalSeparator)) { info.NumberDecimalSeparator = value; } else if (Keywords.Equals(name, input.Atoms.GroupingSeparator)) { info.NumberGroupSeparator = value; } else if (Keywords.Equals(name, input.Atoms.Infinity)) { info.PositiveInfinitySymbol = value; } else if (Keywords.Equals(name, input.Atoms.MinusSign)) { info.NegativeSign = value; } else if (Keywords.Equals(name, input.Atoms.NaN)) { info.NaNSymbol = value; } else if (Keywords.Equals(name, input.Atoms.Percent)) { info.PercentSymbol = value; } else if (Keywords.Equals(name, input.Atoms.PerMille)) { info.PerMilleSymbol = value; } else if (Keywords.Equals(name, input.Atoms.Digit)) { if (CheckAttribute(value.Length == 1, compiler)) { format.digit = value[0]; } } else if (Keywords.Equals(name, input.Atoms.ZeroDigit)) { if (CheckAttribute(value.Length == 1, compiler)) { format.zeroDigit = value[0]; } } else if (Keywords.Equals(name, input.Atoms.PatternSeparator)) { if (CheckAttribute(value.Length == 1, compiler)) { format.patternSeparator = value[0]; } } } while(input.MoveToNextAttribute()); info.NegativeInfinitySymbol = String.Concat(info.NegativeSign, info.PositiveInfinitySymbol); if (Name == null) { Name = new XmlQualifiedName(null, null); } compiler.AddDecimalFormat(Name, format); input.ToParent(); } }