Вы должны просто заменить [XmlArray("Users")]
на [XmlElement("User")]
Этот атрибут сообщает сериализатору, что вы хотите сохранить все эти элементы пользователя под определенным узлом «Пользователи», если вы замените его на XmlElement
, serialzer сохранит всех этих пользователей встроенными (прямо под первым тегом пользователя) так же, как вы нравится.
Что касается xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
пространств имен. Они добавляются автоматически, но они безвредны, поскольку все ваши элементы находятся в пространстве имен по умолчанию. Вы можете добавить следующий код к вашему звонку XmlSerializer
, чтобы удалить их:
var xns = new XmlSerializerNamespaces();
var serializer = new XmlSerializer(users.GetType());
xns.Add(string.Empty, string.Empty);
//...
serializer.Serialize(stream, users, xns);