Enumerar |
Superior Previo Próximo |
Una vez que obtuvo una lista de vistas, puede iterar recursivamente a través de los paquetes dentro de cada vista usando la interfaz EnumPackages para obtener una lista de los paquetes hijos para cada paquete/vista padre.
EA provee la interfaz EnumPackages(const VARIANT FAR& PackageGUID) para obtener una representación XML de todos los paquetes hijos de otro paquete/vista. El XML contiene un nodo para cada paquete -y cada nodo contiene un Nombre y un elemento GUID-. El elemento GUID se usa para obtener más información sobre un paquete (incluyendo los paquetes listados dentro de un paquete).
El siguiente es un ejemplo del XML devuelto por esta interfaz:
<?xml version="1.0"?> <Document xmlns:UML="omg.org/UML1.3"> <Package> <Name>UC01: Use Case Model</Name> <GUID>EAID_508A37AC_5B27_4b98_8BBE_81D6AA03E8B4</GUID> </Package> </Document>
El siguiente código Visual Basic ilustra cómo acceder y usar la interfaz EnumPackages:
Private Sub GetPackage(PackageGUID As String, Offset As String)
Dim xmlDoc As New MSXML2.DOMDocument Dim xmlPkg As New MSXML2.DOMDocument Dim xmlView As MSXML2.IXMLDOMNode Dim xmlPkgNode As MSXML2.IXMLDOMNode
'lista todos los diagramas en este paquete GetDiagrams PackageGUID, Offset
'muestra todos los elementos en este paquete GetElements PackageGUID, Offset
'luego carga la lista de paquetes para este paquete xmlPkg.loadXML EAProject.EnumPackages(PackageGUID) Set xmlPkgNode = xmlPkg.selectSingleNode("Document/Package")
'mientras haya paquetes para procesar Do While (Not xmlPkgNode Is Nothing) AddToTreeList " " & xmlPkgNode.selectSingleNode("Name").Text GetPackage xmlPkgNode.selectSingleNode("GUID").Text, Indent + Offset Set xmlPkgNode = xmlPkgNode.nextSibling Loop
End Sub |