How do you currently communicate between systems? If you have some kind of messaging or event manager, you could have a create_entity message that gets send to all systems along with the parsed XML tree. Each systemsSystems looks for its propertiestags describing their components and createdcreate them if found.
You could also share the propertycomponent arrays between systems. For example you can create a PropertyCollectionsComponentCollections class and pass a reference to the constructors of your systems. It can be related and doesn't need to know about your propertycomponent types. This way, a system can create complete entities. You may want one dedicated system to load and create entities though so that the other systems depend on as few propertiescomponents as possible.
This is also useful if the RenderSystem wants to access the world position of objects that is updated by the PhysicsSystem.
By the way, if you want cache-locality, the propertiescomponents must be stored consecutively in memory i.e. in an array or vector rather than a map. You can however have a map from entity id to vector index for random access.