Пример #1
0
 private void CreateNodes(XmlDocument doc, XmlElement inTreeNode, object o, bool bParentIsArray, ref uint iNodeCount)
 {
     if (o is ArrayList)
     {
         ArrayList arrayList = o as ArrayList;
         if (arrayList.Count <= 0)
         {
             return;
         }
         if (bParentIsArray)
         {
             XmlElement node = doc.CreateElement("Array");
             inTreeNode.AppendChild(node);
             inTreeNode = node;
             ++iNodeCount;
         }
         foreach (object o1 in arrayList)
         {
             this.CreateNodes(doc, inTreeNode, o1, true, ref iNodeCount);
         }
     }
     else if (o is Hashtable)
     {
         Hashtable hashtable = o as Hashtable;
         if (hashtable.Count <= 0)
         {
             return;
         }
         if (bParentIsArray && hashtable.Count > 1)
         {
             XmlElement node = doc.CreateElement("Object");
             inTreeNode.AppendChild(node);
             inTreeNode = node;
             ++iNodeCount;
         }
         foreach (DictionaryEntry dictionaryEntry in new SortedList((IDictionary)hashtable))
         {
             string     sText = dictionaryEntry.Key.ToString();
             XmlElement node  = doc.CreateElement(XmlConvert.EncodeNmToken(sText));
             inTreeNode.AppendChild(node);
             ++iNodeCount;
             this.CreateNodes(doc, node, dictionaryEntry.Value, false, ref iNodeCount);
         }
     }
     else
     {
         string sText = o != null ? (!(o is DateTime) ? (!(o is double) ? o.ToString() : ((double)o).ToString("R", (IFormatProvider)CultureInfo.InvariantCulture)) : ((DateTime)o).ToString("r")) : "(null)";
         if (bParentIsArray)
         {
             XmlElement node = doc.CreateElement(XmlConvert.EncodeLocalName(sText));
             inTreeNode.AppendChild(node);
             ++iNodeCount;
         }
         else
         {
             inTreeNode.InnerText = sText;
         }
     }
 }
Пример #2
0
 public void EncodeNmToken()
 {
     Assert.IsNull(XmlConvert.EncodeNmToken(null));
     AssertNmToken("Test", "Test");
     AssertNmToken("Hello_x0020_my_x0020_friends.", "Hello my friends.");
     AssertNmToken("123", "123");
     AssertNmToken("_x005F_x0031_23", "_x0031_23");
 }
Пример #3
0
 //[Variation("DecodeName with uppercase/lowercase")]
 public int v4()
 {
     CError.Equals(XmlConvert.EncodeName("_xFF71__xff71_"), "_x005F_xFF71__x005F_xff71_", "EncodeName");
     CError.Equals(XmlConvert.EncodeLocalName("_xFF71__xff71_"), "_x005F_xFF71__x005F_xff71_", "EncodeLocalName");
     CError.Equals(XmlConvert.EncodeNmToken("_xFF71__xff71_"), "_x005F_xFF71__x005F_xff71_", "EncodeNmToken");
     CError.Equals(XmlConvert.DecodeName("_xFF71__xff71_"), "\uFF71\uFF71", "DecodeName");
     return(TEST_PASS);
 }
        public int XmlEncodeName2()
        {
            int    i        = ((CurVariation.id) - 1) * 2;
            string strEnVal = String.Empty;

            strEnVal = XmlConvert.EncodeNmToken((BitConverter.ToChar(_byte_EmbeddedNull, i)).ToString());
            CError.Compare(strEnVal, _Expbyte_EmbeddedNull[i / 2], "Comparison failed at " + i);
            return(TEST_PASS);
        }
        internal ExportResult Export(ICollection <LocalizationResource> resources, CultureInfo fromLanguage, CultureInfo toLanguage)
        {
            if (resources == null)
            {
                throw new ArgumentNullException(nameof(resources));
            }
            if (fromLanguage == null)
            {
                throw new ArgumentNullException(nameof(fromLanguage));
            }
            if (toLanguage == null)
            {
                throw new ArgumentNullException(nameof(toLanguage));
            }

            var doc = new XliffDocument(fromLanguage.Name)
            {
                TargetLanguage = toLanguage.Name
            };

            var file = new File("f1");

            doc.Files.Add(file);

            var unit = new Unit("u1");

            file.Containers.Add(unit);

            foreach (var resource in resources)
            {
                var segment = new Segment(XmlConvert.EncodeNmToken(resource.ResourceKey))
                {
                    Source = new Source(),
                    Target = new Target()
                };

                segment.Source.Text.Add(new CDataTag(resource.Translations.ByLanguage(fromLanguage.Name, false)));
                segment.Target.Text.Add(new CDataTag(resource.Translations.ByLanguage(toLanguage.Name, false)));

                unit.Resources.Add(segment);
            }

            var dest = new MemoryStream();

            var settings = new XliffWriterSettings();

            settings.Validators.Clear();

            var writer = new XliffWriter(settings);

            writer.Serialize(dest, doc);
            dest.Position = 0;

            var reader = new StreamReader(dest);

            return(new ExportResult(reader.ReadToEnd(), "application/x-xliff+xml", $"{fromLanguage.Name}-{toLanguage.Name}-{DateTime.UtcNow:yyyyMMdd}.xliff"));
        }
Пример #6
0
        public int XmlEncodeName2()
        {
            int    i        = (CurVariation.id) - 1;
            string strEnVal = string.Empty;

            CError.WriteLine(strEncode[i]);
            strEnVal = XmlConvert.EncodeNmToken(strEncode[i]);
            CError.Compare(strEnVal, strExpEncodeNmToken[i], "Comparison failed at " + i);
            return(TEST_PASS);
        }
        public int XmlEncodeName2()
        {
            int    i        = ((CurVariation.id) - 1) * 2;
            string strEnVal = string.Empty;

            char c = (char)BinaryPrimitives.ReadUInt16LittleEndian(new Span <byte>(_byte_EmbeddedNull, i, 2));

            strEnVal = XmlConvert.EncodeNmToken(c.ToString());
            CError.Compare(strEnVal, _Expbyte_EmbeddedNull[i / 2], "Comparison failed at " + i);
            return(TEST_PASS);
        }
        public int XmlEncodeName2()
        {
            int    i        = ((CurVariation.id) - 1) * 2;
            string strEnVal = String.Empty;

            strEnVal = XmlConvert.EncodeNmToken((BitConverter.ToChar(_byte_Digit, i)).ToString());
            if (_Expbyte_Digit[i / 2] != "_x0A70_")
            {
                CError.Compare(strEnVal, _Expbyte_Digit[i / 2], "Comparison failed at " + i);
            }
            return(TEST_PASS);
        }
Пример #9
0
 //[Variation("EncodeName with null and String.Empty")]
 public int v1()
 {
     CError.Compare(XmlConvert.EncodeName(null), null, " en null");
     CError.Compare(XmlConvert.EncodeName(string.Empty), string.Empty, "en empty");
     CError.Compare(XmlConvert.EncodeLocalName(null), null, "eln null");
     CError.Compare(XmlConvert.EncodeLocalName(string.Empty), string.Empty, "eln empty");
     CError.Compare(XmlConvert.DecodeName(null), null, " de null");
     CError.Compare(XmlConvert.DecodeName(string.Empty), string.Empty, "de empty");
     CError.Compare(XmlConvert.EncodeNmToken(null), null, " ent null");
     CError.Compare(XmlConvert.EncodeNmToken(string.Empty), string.Empty, "ent empty");
     return(TEST_PASS);
 }
Пример #10
0
        internal static void WriteElementToXml(XmlWriter writer, WiniumElement element)
        {
            if (element == null)
            {
                return;
            }

            var className = element.ClassName;
            var tagName   = XmlConvert.EncodeNmToken(className);

            writer.WriteStartElement(tagName);
            var rect       = element.GetRect();
            var attributes = new Dictionary <string, string>
            {
                { "name", element.AutomationName },
                { "id", element.AutomationId },
                { "class_name", className },
                { "xname", element.XName },
                {
                    "visible",
                    element.IsUserVisible().ToString().ToLowerInvariant()
                },
                { "value", element.GetText() },
                { "x", rect.X.ToString(CultureInfo.InvariantCulture) },
                { "y", rect.Y.ToString(CultureInfo.InvariantCulture) },
                {
                    "width",
                    rect.Width.ToString(CultureInfo.InvariantCulture)
                },
                {
                    "height",
                    rect.Height.ToString(CultureInfo.InvariantCulture)
                },
                {
                    "clickable_point",
                    element.GetCoordinatesInView()
                    .ToString(CultureInfo.InvariantCulture)
                }
            };

            foreach (var attribute in attributes)
            {
                writer.WriteAttributeString(attribute.Key, attribute.Value);
            }

            foreach (var child in element.Find(TreeScope.Children, x => true))
            {
                WriteElementToXml(writer, child);
            }

            writer.WriteEndElement();
        }
        public int XmlEncodeName5()
        {
            int    i        = ((CurVariation.id) - 1) * 2;
            string strEnVal = string.Empty;

            strEnVal = XmlConvert.EncodeNmToken((BitConverter.ToChar(_byte_BaseChar, i)).ToString());

            if (_Expbyte_BaseChar[i / 2] != "_x0387_" && _Expbyte_BaseChar[i / 2] != "_x0640_" && _Expbyte_BaseChar[i / 2] != "_x064B_" && _Expbyte_BaseChar[i / 2] != "_x0670_" && _Expbyte_BaseChar[i / 2] != "_x06D6_" && _Expbyte_BaseChar[i / 2] != "_x06E4_" && _Expbyte_BaseChar[i / 2] != "_x06E7_" && _Expbyte_BaseChar[i / 2] != "_x093C_" && _Expbyte_BaseChar[i / 2] != "_x093E_" && _Expbyte_BaseChar[i / 2] != "_x0962_" && _Expbyte_BaseChar[i / 2] != "_x09E2_" && _Expbyte_BaseChar[i / 2] != "_x09EF_" && _Expbyte_BaseChar[i / 2] != "_x0A71_" && _Expbyte_BaseChar[i / 2] != "_x0ABC_" && _Expbyte_BaseChar[i / 2] != "_x0ABE_" && _Expbyte_BaseChar[i / 2] != "_x0B3C_" && _Expbyte_BaseChar[i / 2] != "_x0B3E_" && _Expbyte_BaseChar[i / 2] != "_x0E31_" && _Expbyte_BaseChar[i / 2] != "_x0E34_" && _Expbyte_BaseChar[i / 2] != "_x0E46_" && _Expbyte_BaseChar[i / 2] != "_x0EB1_" && _Expbyte_BaseChar[i / 2] != "_x0EB4_" && _Expbyte_BaseChar[i / 2] != "_x0EBC_" && _Expbyte_BaseChar[i / 2] != "_x0F3F_")
            {
                CError.Compare(strEnVal, _Expbyte_BaseChar[i / 2], "Comparison failed at " + i);
            }
            return(TEST_PASS);
        }
Пример #12
0
        /// <summary>
        /// Pseudo-globablizes given string.
        /// </summary>
        /// <param name="text">String to pseudo-globilize</param>
        /// <param name="isPropertyName">Indicates if the item is a property name</param>
        /// <returns>String with Unicode characters appended to the end</returns>
        public string PseudoLocalize(string text, bool isPropertyName)
        {
            var appendix = this.stringGenerator.GenerateString(this.random, this.MinGlobalizationLength, this.MaxGlobalizationLength);

            appendix = this.RemoveUnsupportedChars(appendix);
            if (isPropertyName)
            {
                // TODO: Make sure the text is valid for xml names in case it is written in an xml response payload
                appendix = XmlConvert.EncodeNmToken(text);
            }

            return(text += appendix);
        }
Пример #13
0
        public void XliffWriter_InvalidSegmentId()
        {
            var unit    = new Unit("u1");
            var segment = new Segment(XmlConvert.EncodeNmToken("/this/is/legacy/id"))
            {
                Source = new Source(),
                Target = new Target()
            };

            segment.Source.Text.Add(new CDataTag("from-source"));
            segment.Target.Text.Add(new CDataTag("to-target"));

            unit.Resources.Add(segment);

            var segment2 = new Segment(XmlConvert.EncodeNmToken("this+is+nested"))
            {
                Source = new Source(),
                Target = new Target()
            };

            segment2.Source.Text.Add(new CDataTag("from-source-nested"));
            segment2.Target.Text.Add(new CDataTag("to-target-nested"));

            unit.Resources.Add(segment2);

            var segment3 = new Segment(XmlConvert.EncodeNmToken("this.is.normal.id"))
            {
                Source = new Source(),
                Target = new Target()
            };

            segment3.Source.Text.Add(new CDataTag("from-source-normal"));
            segment3.Target.Text.Add(new CDataTag("to-target-normal"));

            unit.Resources.Add(segment3);

            _document.Files.Add(new File("f1"));
            _document.Files[0].Containers.Add(unit);

            var actualValue = Serialize();

            var reader = new XliffReader();
            var doc    = reader.Deserialize(AsStream(actualValue));

            var resources = doc.Files[0].Containers.OfType <Unit>().First().Resources;

            Assert.NotNull(resources.FirstOrDefault(r => XmlConvert.DecodeName(r.Id) == "this+is+nested"));
            Assert.NotNull(resources.FirstOrDefault(r => XmlConvert.DecodeName(r.Id) == "/this/is/legacy/id"));
            Assert.NotNull(resources.FirstOrDefault(r => XmlConvert.DecodeName(r.Id) == "this.is.normal.id"));
        }
        public int XmlEncodeName()
        {
            int    i        = ((CurVariation.id) - 1) * 2;
            string strEnVal = string.Empty;

            char c = (char)BinaryPrimitives.ReadUInt16LittleEndian(new Span <byte>(_byte_Ideographic, i, 2));

            strEnVal = XmlConvert.EncodeNmToken(c.ToString());
            if (_Expbyte_Ideographic[i / 2] != "_x302A_")
            {
                CError.Compare(strEnVal, _Expbyte_Ideographic[i / 2], "Comparison failed at " + i);
            }
            return(TEST_PASS);
        }
Пример #15
0
        public int XmlEncodeName5()
        {
            int    i        = ((CurVariation.id) - 1) * 2;
            string strEnVal = string.Empty;

            char c = (char)BinaryPrimitives.ReadUInt16LittleEndian(new Span <byte>(_byte_BaseChar, i, 2));

            strEnVal = XmlConvert.EncodeNmToken(c.ToString());

            if (_Expbyte_BaseChar[i / 2] != "_x0387_" && _Expbyte_BaseChar[i / 2] != "_x0640_" && _Expbyte_BaseChar[i / 2] != "_x064B_" && _Expbyte_BaseChar[i / 2] != "_x0670_" && _Expbyte_BaseChar[i / 2] != "_x06D6_" && _Expbyte_BaseChar[i / 2] != "_x06E4_" && _Expbyte_BaseChar[i / 2] != "_x06E7_" && _Expbyte_BaseChar[i / 2] != "_x093C_" && _Expbyte_BaseChar[i / 2] != "_x093E_" && _Expbyte_BaseChar[i / 2] != "_x0962_" && _Expbyte_BaseChar[i / 2] != "_x09E2_" && _Expbyte_BaseChar[i / 2] != "_x09EF_" && _Expbyte_BaseChar[i / 2] != "_x0A71_" && _Expbyte_BaseChar[i / 2] != "_x0ABC_" && _Expbyte_BaseChar[i / 2] != "_x0ABE_" && _Expbyte_BaseChar[i / 2] != "_x0B3C_" && _Expbyte_BaseChar[i / 2] != "_x0B3E_" && _Expbyte_BaseChar[i / 2] != "_x0E31_" && _Expbyte_BaseChar[i / 2] != "_x0E34_" && _Expbyte_BaseChar[i / 2] != "_x0E46_" && _Expbyte_BaseChar[i / 2] != "_x0EB1_" && _Expbyte_BaseChar[i / 2] != "_x0EB4_" && _Expbyte_BaseChar[i / 2] != "_x0EBC_" && _Expbyte_BaseChar[i / 2] != "_x0F3F_")
            {
                CError.Compare(strEnVal, _Expbyte_BaseChar[i / 2], "Comparison failed at " + i);
            }
            return(TEST_PASS);
        }
Пример #16
0
        //[Variation("EncodeName in uppercase")]
        public int v3()
        {
            byte[] _dbyte = { 0x71, 0xFF };
            string strUni = string.Empty;

            for (int i = 0; i < _dbyte.Length; i = i + 2)
            {
                strUni += (BitConverter.ToChar(_dbyte, i)).ToString();
            }
            CError.WriteLine(strUni + " " + XmlConvert.EncodeName(strUni));
            CError.Compare(XmlConvert.EncodeName(strUni), "_xFF71_", "EncodeName");
            CError.Compare(XmlConvert.EncodeLocalName(strUni), "_xFF71_", "EncodeLocalName");
            CError.Compare(XmlConvert.EncodeNmToken(strUni), "_xFF71_", "EncodeNmToken");

            return(TEST_PASS);
        }
Пример #17
0
        //[Variation("EncodeName in uppercase")]
        public int v3()
        {
            byte[] _dbyte = { 0x71, 0xFF };
            string strUni = string.Empty;

            for (int i = 0; i < _dbyte.Length; i = i + 2)
            {
                char c = (char)BinaryPrimitives.ReadUInt16LittleEndian(new Span <byte>(_dbyte, i, 2));
                strUni += c.ToString();
            }
            CError.WriteLine(strUni + " " + XmlConvert.EncodeName(strUni));
            CError.Compare(XmlConvert.EncodeName(strUni), "_xFF71_", "EncodeName");
            CError.Compare(XmlConvert.EncodeLocalName(strUni), "_xFF71_", "EncodeLocalName");
            CError.Compare(XmlConvert.EncodeNmToken(strUni), "_xFF71_", "EncodeNmToken");

            return(TEST_PASS);
        }
Пример #18
0
        private int SetSharedString(string value)
        {
            //  Assume the string won't be found (assign it an impossible index):
            var index = -1;

            //  Check to see if the string already exists. If so, retrieve its index.
            //  This search is case-sensitive, but Excel stores differently cased
            //  strings separately within the string file.

            var encodedValue = ReferenceEquals(value, null) ? null : value.Trim();

            if (!string.IsNullOrEmpty(encodedValue))
            {
                encodedValue = XmlConvert.EncodeNmToken(encodedValue);
            }
            var stringNode =
                _xlWorksheet.xlPackage.Workbook.SharedStringsXml.SelectSingleNode(
                    string.Format("//d:si[d:t='{0}']", encodedValue), _xlWorksheet.NameSpaceManager);

            if (stringNode == null)
            {
                //  You didn't find the string in the table, so add it now.
                stringNode = _xlWorksheet.xlPackage.Workbook.SharedStringsXml.CreateElement("si",
                                                                                            ExcelPackage.schemaMain);
                var textNode = _xlWorksheet.xlPackage.Workbook.SharedStringsXml.CreateElement("t",
                                                                                              ExcelPackage.
                                                                                              schemaMain);
                textNode.InnerText = value;
                stringNode.AppendChild(textNode);
                _xlWorksheet.xlPackage.Workbook.SharedStringsXml.DocumentElement.AppendChild(stringNode);
            }
            //  Retrieve the index of the selected node.
            //  To do that, count the number of preceding
            //  nodes by retrieving a reference to those nodes.
            var nodes = stringNode.SelectNodes("preceding-sibling::d:si", _xlWorksheet.NameSpaceManager);

            index = nodes.Count;
            return(index);
        }
Пример #19
0
 // Test the "XmlConvert.EncodeNmToken" method.
 public void TestXmlConvertEncodeNmToken()
 {
     AssertNull("EncodeNmToken (1)",
                XmlConvert.EncodeNmToken(null));
     AssertEquals("EncodeNmToken (2)",
                  String.Empty, XmlConvert.EncodeNmToken(""));
     AssertEquals("EncodeNmToken (3)",
                  "foo", XmlConvert.EncodeNmToken("foo"));
     AssertEquals("EncodeNmToken (4)",
                  "foo:bar", XmlConvert.EncodeNmToken("foo:bar"));
     AssertEquals("EncodeNmToken (5)",
                  "foo:bar_x002B_",
                  XmlConvert.EncodeNmToken("foo:bar+"));
     AssertEquals("EncodeNmToken (6)",
                  "2foo", XmlConvert.EncodeNmToken("2foo"));
     AssertEquals("EncodeNmToken (7)",
                  "foo2", XmlConvert.EncodeNmToken("foo2"));
     AssertEquals("EncodeNmToken (8)",
                  "_", XmlConvert.EncodeNmToken("_"));
     AssertEquals("EncodeNmToken (9)",
                  "_x005F_x", XmlConvert.EncodeNmToken("_x"));
 }
 internal static string ToXmlNmToken(string value)
 {
     return(XmlConvert.EncodeNmToken(value));
 }
Пример #21
0
 internal static string FromXmlNmToken(string nmToken)
 {
     return(XmlConvert.EncodeNmToken(nmToken));
 }
Пример #22
0
 public void EncodeNmTokenError()
 {
     XmlConvert.EncodeNmToken(String.Empty);
 }
Пример #23
0
 private void AssertNmToken(string result, string source)
 {
     Assert.AreEqual(result,
                     XmlConvert.EncodeNmToken(source));
 }
Пример #24
0
        public void WriteToXMLWriter(XmlWriter xmlWriter, DAIEbx EbxFile)
        {
            if (Descriptor.FieldName == "$")
            {
                ComplexValue.WriteToXmlWriter(xmlWriter, EbxFile);
                return;
            }

            xmlWriter.WriteStartElement(Descriptor.FieldName);

            switch (ValueType)
            {
            case DAIFieldType.DAI_Complex:
            case DAIFieldType.DAI_Array:
                if (ComplexValue != null)
                {
                    ComplexValue.WriteToXmlWriter(xmlWriter, EbxFile);
                }
                break;

            case DAIFieldType.DAI_String:
                xmlWriter.WriteString(XmlConvert.EncodeNmToken(GetStringValue()));
                break;

            case DAIFieldType.DAI_Int:
                xmlWriter.WriteValue(GetIntValue().ToString("X8"));
                break;

            case DAIFieldType.DAI_UInt:
                xmlWriter.WriteValue(GetUIntValue().ToString("X8"));
                break;

            case DAIFieldType.DAI_Float:
                xmlWriter.WriteValue(GetFloatValue().ToString("F3"));
                break;

            case DAIFieldType.DAI_Short:
                xmlWriter.WriteValue(GetShortValue().ToString("X4"));
                break;

            case DAIFieldType.DAI_UShort:
                xmlWriter.WriteValue(GetUShortValue().ToString("X4"));
                break;

            case DAIFieldType.DAI_Byte:
                xmlWriter.WriteValue(GetByteValue().ToString("X2"));
                break;

            case DAIFieldType.DAI_Long:
                xmlWriter.WriteValue(GetLongValue().ToString("X16"));
                break;

            case DAIFieldType.DAI_LongLong:
                for (int i = 0; i < Value.Length; i++)
                {
                    xmlWriter.WriteValue(Value[i].ToString("X2"));
                }
                break;

            case DAIFieldType.DAI_Enum:
                xmlWriter.WriteString(XmlConvert.EncodeNmToken(GetEnumValue()));
                break;

            case DAIFieldType.DAI_Guid:
            {
                uint UIntValue = GetUIntValue();
                if ((UIntValue >> 31) == 1)
                {
                    /* External Guid */
                    DAIExternalGuid Guid = EbxFile.ExternalGuids.ElementAt((int)(UIntValue & 0x7fffffff));
                    xmlWriter.WriteValue(Guid.ToString());
                }
                else if (UIntValue == 0)
                {
                    /* NULL Guid */
                    xmlWriter.WriteValue("00");
                }
                else
                {
                    /* Internal Guid */
                    byte[] Guid = EbxFile.InternalGuids[(int)(UIntValue - 1)];
                    for (int i = 0; i < Guid.Length; i++)
                    {
                        xmlWriter.WriteValue(Guid[i].ToString("X2"));
                    }
                }
            }
            break;
            }

            xmlWriter.WriteEndElement();
        }