If you have to use the namespace URIs of your CM Schemas in your
SemanticEntity annotations, you are apparently using the retrofit mode. See https://docs.sdl.com/LiveContent/content/en-US/SDL%20DXA-v10/GUID-C0AD6DCC-ED65-441F-B361-928A18B2896D
In regular mapping mode, mapping tp CM Schema can be done largely implicity (i.e. without annotations), but in retrofit mode you indeed have to explicitly map all you View Model Types to CM Schema namespace URIs.
In regular mode, the assumption is that the root element names of all your CM Schemas are distinct. This may not be the case if you’re retrofitting DXA on an existing content model (worst case, the root element name of all your CM Schemas is
Content). The retrofit mode was introduced to facilitate use of DXA on such existing content models.
Note: for such “internal”
SemanticEnity annotations, which are only intended for mapping to CM Schemas, you should not set
Public=true, because that causes the semantic type to be output in RDFa artributes in the HTML. It only makes sense to do that for public vocabularies (such as schema.org)