XML is a very useful technology for moving data between different databases or between databases and other programs. However, it is not itself a database. XML is a data interchange format. One can have XML parsing libraries that can query a DOM with XPath expressions but that is not the same thing as a DBMS.
I would prefer to use any DBMS over XML.
Here I have found another stackoverflow question regarding this which has good answer:
âXML is not a database. It was never meant to be a database. It is
never going to be a database. Relational databases are proven
technology with more than 20 years of implementation experience. They
are solid, stable, useful products. They are not going away. XML is a
very useful technology for moving data between different databases or
between databases and other programs. However, it is not itself a
database. Don't use it like one.â
https://stackoverflow.com/questions/201568/when-would-i-use-xml-instead-of-sql#:~:text=XML%20is%20a%20very%20useful,is%20not%20itself%20a%20database.&text=XML%20is%20a%20data%20interchange,same%20thing%20as%20a%20DBMS.
You can create three tables:
Country (ID int, Name varchar(200));
State (ID int, Name varchar(200), CountryID int);
City (ID int, Name varchar(200), StateID int);
ID field of all three tables can be auto incremented primary key column. CountryID in State table will be foreign key to ID column in Country table and StateID in city table will be foreign key to ID column of State table.
You can also add code column to all three tables to add country code, state code and city code to you data.