la forma de crearlo dinamicamente depende de varios factores pero principalmente son: la fuente de donde vienen los datos y las herramientas que utilizaras para crearlo dinamicamente. por ejemplo, si la fuente es una base de datos por obligacion necesitas un lenguaje servidor para comunicarte con la base de datos. a la misma vez vas creando esa estructura. si la fuente fuera un archivo xml -como el ejemplo que expones- puedes usar javascript, pero tambien existe la tendencia de usar librerias. aunque el resultado final es el mismo, el acercamiento es distinto. es decir, mientras que en javascript utilizas directamente funciones del DOM en las librerias utilizas ciertas funciones. la forma correcta depende de tus gustos o necesidades.
por ultimo, la estructura que estas viendo se conoce como
JSON (javascript object notation) el cual no es otra cosa mas que el uso de definiciones literales para diferentes tipos de datos. en el ejemplo que expones lo que ves son string
" ", objetos
{ } y array
[ ].