Deserializar xml anidado en objetos C #

Estoy recuperando datos xml de una solicitud web http y deserializando los datos en objetos.

Aquí hay una muestra de estructura xml.

<users>
    <user>
        <name>...</name>
        <orders>
            <order>
                <number>...</number>
            </order>        
            ...
        </orders>
    </user>
    <user>
        <name>...</name>
        <orders></orders>
    </user>
    ...
</users>

Tengo cuatro clases

public class Users
{
    [XmlElement("user")]
    public User[] UserList { get; set; }
}

public class User
{
    [XmlElement("name")]
    public string Name { get; set; }

    [XmlArray("orders")]
    public Orders OrderList { get; set; }
}

public class Orders
{
    [XmlElement("order")]
    public Order[] Order { get; set; }
}

public class Order
{
    [XmlElement("number")]
    public string Number { get; set; }
}

Siento que tres clases deberían ser suficientes: tener un pedido [] en la clase de usuario y deshacerse de la clase de "pedidos". ¿Es eso posible? Lo que intenté no funcionó.

Gracias.