I'm not familiar with Civil3D, so they may be using XSL term as something else. If they are using it for actual XSL, I might be able to help with that.
XML is a nice, structured data format using tagged elements. XSL is an instructional language used to transform XML into other forms, whether its HTML, CSV, or a different arrangement of XML. Typically what would happen is a program generates a report in XML, either as data or as as XML file. If the XML is just data, the XSL can be applied to transform the content to a text stream which is written to a file (for example, HTML). If the XML is saved to a file, then it can be read back in and transformed, or a pointer to the XSL file can be added to the XML header, which causes the stylesheet to be applied when the file is double-clicked.
In theory, if the program like Civil3D stores the XSL stylesheet separately you could customize report format by changing the XSL contents without touching the internal program structure.
Look
here and
here.