Hi, (1) I'm trying to generate: <Host xlink:type="simple" xlink:href="#SomeElement1"/> I'm not able to set namespaces for attributes such as xlink:type in the above example. (2) Next I need to populate the values for xlink:href to some other xml elements within the document. What would be possible ways to achieve this? (a) One way would be to have a Map/LookupTable which I can query to retrieve the right element I need to link to, with which I can populate xlink:href. How do I do this?
Hi! Thanks Pedro. Basically my output is of the following format: <root xmlns:xlink="http://www.w3.org/1999/xlink"> <SomeElement1 id="1" > <Host xlink:type="simple" xlink:href="nil"/> ... </SomeElement1> <SomeElement2 id="2"> <Host xlink:type="simple" xlink:href="#1"/> ... </SomeElement2> <SomeElement3 id="3"> <Host xlink:type="simple" xlink:href="#2"/> ... </SomeElement3> </root> Case 1: I'm using tAdvancedFileOutputXML, my input is an interfaceRegEx. In the "Configure XML Tree option", I added xlink namespace on the root element. However there was no way to "specify" a namespace for the attribute "type" in the element "Host". So i just clicked on add attribute and typed "xlink:type". My point here is Talend does not intelligently allow me to add a namespace to an attribute. This is however not a problem yet. Case 2: In the above XML snippet, you can see that each element is referencing some other element using xlink SomeElement1 with id="1" is referencing nil. SomeElement2 with id="2" is referencing SomeElement1 (xlink:href="#1") SomeElement3 with id="3" is referencing SomeElement3 Now the information of which element references any other element should be stored in a map like this: key Value SomeElement1 nil SomeElement2 #1 SomeElement3 #2 Next in my XML Output, as you can see above, as per the values in the map, I want to populate the xlink:href attribute of the host element. Example: when generating <SomeElement2 id="2">, it should check the map and retrieve the value #1, and then this value should be populated in the href attribute of its host subelement. Which component do I use to populate/create a map? How do I query the map to fill up the values of the href attribute. Hope I made things clear, and my question is probably very preliminary, in that case only provide the components and approach, I'll try working with it
Sorry if I have confused you. Let me make it clear. Input: A flat file which I'm using RegEx to extract data (details not required) Output: XML file. The output is the XML file, I'm not trying to "retrieve the value from 'SomeElement' dynamically." (1) Given Input from any file, I want to create a map as shown above. (2) From the map I want to populate the href field of the xml.
Hi For case 1, you can right click on the Attribute 'xmlns:link', choose 'Set A Fixed Value' and type 'http://www.w3.org/1999/xlink'. For case 2, I can come up with one way. Create a lookup table as follows.
id href 1 nil 2 #1 3 #2 4 #3 5 #4 ...
Then use component tMap to join your input file and this lookup file. You may find more details in the following images. Best regards! Pedro