The diagram only indicates how the information flows. The conversion functions mapping ROS messages to DDS messages are being generated for each DDS implementation (using their native vendor-specific DDS types). As input these templates only need the message definitions - it doesn't need any information from the .idl files - since those are generated from the message definitions themselves they don't contain any more information.
I am not sure what "read and write operations" you are intending to do. You will find the .idl files after building a package under <install>/share/<pkgname>/msg|srv/dds_connext|dds_opensplice. They are being generated and installed by the rosidl_generator_dds_idl package.