Go can't parse a correct xml file with declared entities, keep getting this error:
error: XML syntax error on line 47: invalid character entity &n;
The line being <pos>&n;</pos> and the entity defined as <!ENTITY n "noun (common) (futsuumeishi)">
Here is the program in Go: http://play.golang.org/p/94_60srVne
You can pass entities in if you create a Decoder and mess with its Entity map. I suspect the package doesn't actually parse DTDs, just from poking around xml.go; I see a comment saying it accumulates entities for the caller, but nothing that itself sets entries in d.Entity.
(It would be tricky for encoding/xml to safely provide that, even, because there is a built-in shared HTML entity map. Updating it for one doc would affect parsing of others.)
There's a little more paperwork to create a Decoder with custom entities than there is for regular xml.Unmarshal, but not too much:
func main() {
    jmd := JMdict{}
    d := xml.NewDecoder(bytes.NewReader([]byte(str)))
    d.Entity = map[string]string{
        "n": "(noun)",
    }
    err := d.Decode(&jmd)
    if err != nil {
        fmt.Printf("error: %v", err)
        return
    }
    fmt.Println(jmd)
}
Here's a Playground link with the Entity trick and some output code to show the object as JSON.
The previous answer is the "right" answer, but I believe, depending on what you are really trying to accomplish, a "quick" answer is to disable Strict. e.g.:
d := xml.NewDecoder(os.Stdin)
d.Strict = false            
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With