Schema Matching, i.e. the process of discovering semantic correspondences between concepts adopted in different data source schemas, has been a key topic in Database and Artificial Intelligence research areas for many years. In the past, it was largely investigated especially for classical database models (e.g., E/R schemas, relational databases, etc.). However, in the latest years, the widespread adoption of XML in the most disparate application fields pushed a growing number of researchers to design XML-specific Schema Matching approaches, called XML Matchers, aiming at finding semantic matchings between concepts defined in DTDs and XSDs. XML Matchers do not just take wellknown techniques originally designed for other data models and apply them on DTDs/XSDs, but they exploit specific XML features (e.g., the hierarchical structure of a DTD/XSD) to improve the performance of the Schema Matching process. The design of XML Matchers is currently a well-established research area. The main goal of this paper is to provide a detailed description and classification of XML Matchers. We first describe to what extent the specificities of DTDs/XSDs impact on the Schema Matching task. Then we introduce a template, called XML Matcher Template, that describes the main components of an XML Matcher, their role and behavior. We illustrate how each of these components has been implemented in some popular XML Matchers. We consider our XML Matcher Template as the baseline for objectively comparing approaches that, at first glance, might appear as unrelated. The introduction of this template can be useful in the design of future XML Matchers. Finally, we analyze commercial tools implementing XML Matchers and introduce two challenging issues strictly related to this topic, namely XML source clustering and uncertainty management in XML Matchers.To make data exchange easier, organizations like the World Wide Web Consortium (W3C) are increasingly committed to the definition of advanced languages to describe the structure and content of an XML data source. One of the first languages was XML DTD (Document Type Definition) [34]. Later, W3C developed a more complex language called XSD (XML Schema Definition), also known as WXS (W3C Schema Definition), in order to overcome some limitations of DTD [101] 1 .These languages are used to build a schema, i.e. a collection of metadata called schema components or schema elements. A schema specifies a set of rules an XML document must obey in order to be considered valid according to the schema itself. The availability of a schema significantly simplifies data exchange procedures [25]. For instance, there exist simple software programs that can check if a given document satisfies the constraints imposed by a given schema, and, in the positive case, allow for seamless data exchange among the interested parties.Despite the presence of powerful languages like DTD/XSD, the achievement of the full interoperability among applications based on XML data is often illusory. DTDs/XSDs, in fact, provide self-desc...