Sketches, and any files referenced in a sketch, and any source files that go with them, are copied to a temp. directory for compiling. If you do not include OneWire.h in the sketch, it is not copied. Then, when the compiler tries to compile code that references temp.h (a really lousy name, by the way), it can’t find OneWire.h
So, any libraries that your library needs, must be included in the sketch, too.
I opened your file in Notepad++, and collapsed the comments and setup_sd() functions. What is left is this:
// include the SD library:
// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;
void setup_sd()
{
It appears that you ignored the first C++ style comment. Therefore, the compiler has no idea what a Sd2Card, SdVolume, and SdFile are. Hence the complaint.