-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Here is a minimum reproducible example:
consider the mre.xml file (this is a modified version of an xbrl file that I cropped ):
<XML>
<ROCRA>
<RAN contextRef="m1">Moody's Investors Service</RAN>
<FCD contextRef="m1">2022-04-15</FCD>
<OD>
<OSC contextRef="m1">Financial</OSC>
<OBNAME contextRef="m1">MUFG Securities (Europe) N.V.</OBNAME>
<OI contextRef="m1">830986287</OI>
<OIS contextRef="m1">NRSRO</OIS>
<ORD>
<IP contextRef="m1">true</IP>
<R contextRef="m1">A1</R>
<RAD contextRef="m1">2018-10-25</RAD>
<RAC contextRef="m1">NW</RAC>
<RT contextRef="m1">Organization</RT>
<RTT contextRef="m1">LT Issuer Rating</RTT>
</ORD>
<ORD>
<IP contextRef="m1">true</IP>
<R contextRef="m1">B1</R>
<RAD contextRef="m1">2019-10-21</RAD>
<RAC contextRef="m1">NW</RAC>
<RT contextRef="m1">Organization</RT>
<RTT contextRef="m1">LT Issuer Rating</RTT>
</ORD>
</OD>
<ISD>
<SSC contextRef="m1">Financial</SSC>
<ISSNAME contextRef="m1">MUFG Securities (Europe) N.V.</ISSNAME>
<ISI contextRef="m1">830986287</ISI>
<ISIS contextRef="m1">NRSRO</ISIS>
</ISD>
</ROCRA>
</XML>
If I run mre.xml %>% toRelational() I get the following:
$XML
ID_XML FKID_ROCRA
1 13320 5294
$ROCRA
ID_ROCRA RAN FCD FKID_OD FKID_ISD
1 5294 Moody's Investors Service 2022-04-15 947669 90193
$OD
ID_OD OSC OBNAME OI OIS FKID_ORD
1 947669 Financial MUFG Securities (Europe) N.V. 830986287 NRSRO 103000
$ORD
ID_ORD IP R RAD RAC RT RTT
1 182003 true A1 2018-10-25 NW Organization LT Issuer Rating
2 103000 true B1 2019-10-21 NW Organization LT Issuer Rating
$ISD
ID_ISD SSC ISSNAME ISI ISIS
1 90193 Financial MUFG Securities (Europe) N.V. 830986287 NRSRO
I want to join the OD and ORD tables to create a dataframe with two rows from the ORD table joined with the relevant information from the OD table, i.e. the following:
OSC OBNAME OI OIS IP R RAD RAC RT RTT
1 Financial MUFG Securities (Europe) N.V. 830986287 NRSRO true A1 2018-10-25 NW Organization LT Issuer Rating
2 Financial MUFG Securities (Europe) N.V. 830986287 NRSRO true B1 2019-10-21 NW Organization LT Issuer Rating
I admit I am not very experienced in relational databases, but I guess logically I should be able to get this by matching a foreign key from the ORD table that points to a primary key in the OD table (i.e. the parent node) and not the other way round. But instead, it is the parent table that is giving one single key that matches with only one of its children.
Thanks
Metadata
Metadata
Assignees
Labels
No labels