Insert text file only after the first match with SED

Hello,

I'm new in Shell scripting but i should write a script, which inserts the license header out of a txt-File into the files in our Projekt. For the Java classes it runs without Problems but for XML files not. At xml-files i have to put the license Header after the xml-Header (?xml version="1.0" ... ?) but the xml Header is not only one line all the time, it could be about 2 or 3 lines.
first i tried with this.

sed '/?>/ r License_Header.txt' < xml-Datei.xml > tempFile.txt
mv tempFile.txt xml-Datei.xml

This is searching for the expression "?>" an insert the license Header after this expression and it also runs.
But if this Expression is in the file one more time, f.e. in another xml-header whis is in a comment, the shouldn't be insert again.

so i try to find a way, that only the first match was taken to consideration and hope that somebody can help me

thanks and sry for my verry bad english

Something like this?

awk '/?>/ && !f{system("cat License_Header.txt");f=1;next}1' xml-Datei.xml > tempFile.txt
mv tempFile.txt xml-Datei.xml