Este XML
$ cat Petras.xml
<doc>
<tag1>
<subtag1></subtag1>
<subtag2>something</subtag2>
</tag1>
<tag1>
<subtag1>something</subtag1>
<subtag2>something</subtag2>
</tag1>
</doc>
Pode ser validado contra este XSD
$ cat Petras.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="doc">
<xs:complexType>
<xs:sequence>
<xs:element name="tag1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="subtag1" type="xs:string" minOccurs="1"/>
<xs:element name="subtag2" type="xs:string" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Usando, por exemplo, xmllint
$ xmllint --schema Petras.xsd Petras.xml
<?xml version="1.0"?>
<doc>
<tag1>
<subtag1/>
<subtag2>something</subtag2>
</tag1>
<tag1>
<subtag1>something</subtag1>
<subtag2>something</subtag2>
</tag1>
</doc>
Petras.xml validates