«XSD, из которого он был создан (основан на необработанном xml):» немного сбивает с толку .... Из контекста можно предположить, что был XSD (который вы перечисляете), из которого был сгенерирован XML, но Я не понимаю, что означает «на основе сырого XML» ... Вы говорите, что XSD был сгенерирован из чего-то? Или, что XSD был основан на «сыром xml» ... Другими словами, XSD, возможно, должен проверять XML, используемый в качестве входных данных для вашего преобразования?
В качестве еще одной опции для добавления к уже предоставленным ответам, вот XSD, который соответствует вашему преобразованному XML; разница здесь в том, что схема имеет целевое пространство имен, которое соответствует пространству имен, используемому вашим «преобразованным XML» ...
<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema xmlns="Widget.xsd" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="Widget.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Widget">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Foo" type="xsd:string" />
<xsd:element name="Bar" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>