Ver Mensaje Individual
  #17  
Antiguo 08-03-2020
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 280
Reputación: 8
manelb Va por buen camino
Smile

Pues supongo que alguien habrá que pueda contestarte con más criterio que yo, o por lo menos constatar que mis argumentos son correctos, pero intentaré razonarte mi código.

El caso es que si te fijas como están declaradas las dos variables del ejemplo:
Código Delphi [-]
AccountID: IXMLAdditionalAccountIDType_cbc;
PartyName: IXMLPartyNameType_cac;

y te fijas en el tipo de la propiedad que queremos asignar:
Código Delphi [-]
property AdditionalAccountID: IXMLAdditionalAccountIDType_cbcList read Get_AdditionalAccountID;
property PartyName: IXMLPartyNameType_cacList read Get_PartyName;

pues te das cuenta que son propiedades tipo lista:
Código Delphi [-]
IXMLAdditionalAccountIDType_cbcList = interface(IXMLNodeCollection)
IXMLPartyNameType_cacList = interface(IXMLNodeCollection)

Por lo tanto, tenemos que crear una instancia de la clase que se espera en esa lista para poder asignarla a la propiedad.

En cuanto a lo de identificar Raíz, Nodo, Atributo…, etc., con este sistema, a mi entender, no lo necesitas.
Tu trabajas con la estructura del xml como si se tratara de cualquier otra clase, y te olvidas de los nombres de cada nodo, ya que la interface creada te permite trabajar con los nombres como propiedades.

Imagina la de errores sintácticos que se pueden cometer creando un xml complejo a pelo…
o incluso creando los nodos a mano, tipo AddChild('cacigitalSignatureAttachment'),
i lo que puede costar después depurar y encontrar un fallo de este tipo.

Supongo que, como todo, es cuestión de gustos, pero creo que las ventajas de hacerlo así son considerables.


Par cualquier cosa que necesites, pongo mis modestos conocimientos a tu disposición

Saludos
Responder Con Cita