After being able to mark-up text and validate its structure according to a document type specification, we may start thinking it would be natural to be able to validate some non- structural issues in the documents. This paper is to formally discuss semantic-related aspects. In that context, we introduce a domain specific language developed for such a purpose: XCSL. XCSL is not just a language, it is also a processing model. Furthermore, we discuss the general philosophy underlying the proposed approach, presenting the architecture of our semantic vali- dation system, and we detail the respective processor. To illustrate the use of XCSL language and the subsequent processing, we present two case-studies. Nowadays, we can find some other languages to restrict XML documents to those semantically valid — namely Schematron and XML-Schema. So, before concluding the paper, we compare XCSL to those approaches.