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