Esto es lo que utilizo para generar mi catalogo de cuentas solo me hace falta el atributo de la naturaleza de las cuentas pero lo agregue como un campo de usuario en el maestro en las cuentas de mayor espero les sirva de algo.
select
'1.0' as [@Version]
,'' as [@RFC]
,0 as [@TotalCtas]
,'09' as [@Mes]
,'2014' as [@Ano]
,(SELECT
CASE Levels
WHEN 1 THEN SUBSTRING(AcctCode,1,1)
WHEN 5 THEN Segment_0
ELSE AcctCode
END AS [@CodAgrup]
,CASE Levels
WHEN 1 THEN SUBSTRING(AcctCode,1,1)
WHEN 5 THEN Segment_0
ELSE AcctCode
END [@NumCta]
,AcctName as [@Desc]
,CASE Levels
WHEN 2 THEN SUBSTRING(FatherNum,1,1)
ELSE FatherNum
END as [@SubCtaDe]
,Levels as [@Nivel]
FROM OACT
ORDER BY CASE Levels
WHEN 1 THEN SUBSTRING(AcctCode,1,1)
WHEN 5 THEN SUBSTRING(Segment_0,1,1)
ELSE SUBSTRING(AcctCode,1,1)
END
, Levels
FOR XML PATH ('Ctas'),TYPE)
FOR XML PATH ('Catalogo')