I'm in favor of the most flexibility with getters & setters, I do agree that the document is strongly related to the content but I think that properties you can set via constructor should be settable via public method as well. Methods that set attributes internally should be protected.

That's why I have setStringDocument & setType as public, and all others on protected.