Example #1
0
        // [NOCPP[

        internal void ProcessNonNcNames <T>(TreeBuilder <T> treeBuilder, XmlViolationPolicy namePolicy) where T : class
        {
            for (int i = 0; i < length; i++)
            {
                AttributeName attName = names[i];
                if (!attName.IsNcName(mode))
                {
                    string name = attName.GetLocal(mode);
                    switch (namePolicy)
                    {
                    case XmlViolationPolicy.AlterInfoset:
                        names[i] = AttributeName.Create(NCName.EscapeName(name));
                        goto case XmlViolationPolicy.Allow;                                 // fall through

                    case XmlViolationPolicy.Allow:
                        if (attName != AttributeName.XML_LANG)
                        {
                            treeBuilder.Warn("Attribute \u201C" + name + "\u201D is not serializable as XML 1.0.");
                        }
                        break;

                    case XmlViolationPolicy.Fatal:
                        treeBuilder.Fatal("Attribute \u201C" + name + "\u201D is not serializable as XML 1.0.");
                        break;
                    }
                }
            }
        }