¿Es posible usar esquemas XML internamente, al igual que los DTD?
Tengo el siguiente archivo XML que incluye validación interna de DTD:
<?xml version="1.0"?>
<!DOCTYPE animals [
<!ELEMENT animals (animal)*>
<!ELEMENT animal (skin, noise, eyes, diet, class, weight, special_skill)>
<!ELEMENT skin (#PCDATA)>
<!ELEMENT noise (#PCDATA)>
<!ELEMENT eyes (#PCDATA)>
<!ELEMENT diet (#PCDATA)>
<!ELEMENT class (#PCDATA)>
<!ELEMENT weight (#PCDATA)>
<!ELEMENT special_skill (#PCDATA)>
<!ATTLIST animal name CDATA #REQUIRED >
<!ATTLIST weight unit CDATA "kg">
]>
<animals>
<animal name="cow">
<skin>
Straight fur
</skin>
<noise>
Moo!
</noise>
<eyes>
2
</eyes>
<diet>
Herbivore
</diet>
<class>
Mammalia
</class>
<weight unit="kg">
635-1134
</weight>
<special_skill>
Chewing
</special_skill>
</animal>
<animal name="sheep">
...
</animal>
</animals>
Estaba buscando cómo reemplazar la validación DTD con un XSD pero no pude encontrar ningún ejemplo. Parece que los XSD siempre deben definirse en un archivo separado y el XML debe hacer referencia a ellos. ¿Es cierto que XSD no se puede usar internamente?