Your "Access Violation" is a memory access error. In other words, your program accessed memory it didn't own. This is probably caused by your parser trying to read beyond the bounds of the memory allocated to the file, or, like jdehaan suggests, your MapViewOfFile function is returning NULL.
UPDATE:
If MapViewOfFile is not returning NULL, then the problem is probably that you are accessing beyond the allocated range for the mapped file. You seemed to indicate in your comments on this question that the parsing operation is also modifying the xml document by adding some terminating tags. This will undoubtedly increase the length of the file and, thus, write past the end of the file's block in memory. That would cause the error you are seeing.
If it isn't that, then perhaps you didn't call CreateFileMapping with the proper access specifiers. The documentation for MapViewOfFile says that you need to specify the PAGE_EXECUTE_READWRITE option when you create the file mapping object if you want a map view which allows read/write access.
If it isn't that, then I would suspect that Hans' answer could be the key. What system are you running this on? Is it 32-bit Windows, or 64-bit? If the file is larger than 2GB, you won't be able to map it.