Obtener Vínculo |
Superior Previo Próximo |
Puede recuperar información acerca de un vínculo en Enterprise Architect usando la interfaz GetLink. Esta toma el GUID de un Vínculo obtenido desde el método EnumLinks y devuelve un documento XML conteniendo detalles completos acerca de un vínculo UML.
La interfaz se define como GetLink(const VARIANT FAR& LinkGUID) -y devuelve un documento XML de un vínculo.
Ejemplo en XML de una llamada a GetLink
<?xml version="1.0"?> <Document xmlns:UML="omg.org/UML1.3"> <Link> <UML:Association xmi.id="EAID_23D317E7_B50A_45a5_AEE8_081A26CEA18D" visibility="public" isRoot="false" isLeaf="false" isAbstract="false"> <UML:ModelElement.taggedValue> <UML:TaggedValue tag="style" value="1" /> <UML:TaggedValue tag="ea_type" value="UseCase" /> <UML:TaggedValue tag="linemode" value="1" /> <UML:TaggedValue tag="seqno" value="0" /> <UML:TaggedValue tag="documentation" value="A customer uses the login use case to access the book store" /> </UML:ModelElement.taggedValue> <UML:Association.connection> <UML:AssociationEnd visibility="public" aggregation="none" isOrdered="false" targetScope="instance" isNavigable="true" Type="EAID_2F73E1ED_B7E2_4ce4_8758_02223B6C17B2"> <UML:ModelElement.taggedValue> <UML:TaggedValue tag="containment" value="Unspecified" /> </UML:ModelElement.taggedValue> </UML:AssociationEnd> <UML:AssociationEnd visibility="public" aggregation="none" isOrdered="false" targetScope="instance" isNavigable="true" Type="EAID_B00C2EA6_3DD4_4e7b_886E_A8B7D2B17AEA"> <UML:ModelElement.taggedValue> <UML:TaggedValue tag="containment" value="Unspecified" /> </UML:ModelElement.taggedValue> </UML:AssociationEnd> </UML:Association.connection> </UML:Association> </Link> </Document>
Un ejemplo en Visual Basic de recuperación de información de un Vínculo utilizando un GUID de Vínculo
Private Sub GetLink(LinkGUID As String) On Error GoTo errLink
'obtener detalles de un único vínculo
Dim xmlNode As MSXML2.IXMLDOMNode Dim xmlElement As New MSXML2.DOMDocument Dim xmlDoc As New MSXML2.DOMDocument Dim xmlTagged As MSXML2.IXMLDOMNode Dim n As Integer
Dim str As String str = EAProject.GetLink(LinkGUID) Debug.Print str
xmlElement.loadXML EAProject.GetLink(LinkGUID)
Set xmlNode = xmlElement.selectSingleNode("Document/Link")
If (xmlNode Is Nothing) Then Exit Sub End If
Debug.Print xmlElement.xml
'ir al primer elemento - será el elemento actual (ej. UML:Actor) Set xmlNode = xmlNode.firstChild()
AddToDebugList " " AddToDebugList xmlNode.nodeName
'obtener primero los atributos For n = 0 To xmlNode.Attributes.length - 1 AddToDebugList xmlNode.Attributes.item(n).nodeName + " =: " + xmlNode.Attributes.item(n).Text Next n
'y luego obtener los valores etiquetados Set xmlTagged = xmlNode.selectSingleNode("UML:ModelElement.taggedValue/UML:TaggedValue") Do While (Not xmlTagged Is Nothing) AddToDebugList xmlTagged.Attributes(0).Text + " =:" + xmlTagged.Attributes(1).Text Set xmlTagged = xmlTagged.nextSibling Loop
AddToDebugList " "
Exit Sub
errLink: AddToDebugList Error$ End Sub |