private static void WriteStartElement(XmlWriter writer, QName name, PrefixTable prefixTable)
 {
     if (name.HasNamespace)
     {
         writer.WriteStartElement(prefixTable.GetPrefix(name.Namespace),
                                  name.LocalName, name.Namespace);
     }
     else
     {
         writer.WriteStartElement(name.LocalName);
     }
 }
        public void WriteAttribute(SimpleAttributeAttribute attribute, object writer,
                                   object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            if (ObjectUtil.IsDefaultValue(attribute.DefaultValue, value))
            {
                return;
            }

            XmlWriter xmlWriter = writer.Convert <XmlWriter>();
            QName     name      = info.QName;

            if (name.HasNamespace)
            {
                PrefixTable prefix = serializerData.Convert <PrefixTable>();
                xmlWriter.WriteAttributeString(prefix.GetPrefix(name.Namespace), name.LocalName,
                                               name.Namespace, ObjectUtil.ToString(info.Converter, value, settings));
            }
            else
            {
                xmlWriter.WriteAttributeString(name.LocalName,
                                               ObjectUtil.ToString(info.Converter, value, settings));
            }
        }