I'm not a schema expert, but the schema that that code assumes looks like this
Code:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="kb">
<xsd:annotation>
<xsd:documentation>Root element of each Pact Knowledge Base</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="class" type="classType" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>A class represents a single PACT object</xsd:documentation>
</xsd:annotation>
<xsd:unique name="Attrib_Name_Unique">
<xsd:selector xpath="attrib"/>
<xsd:field xpath="@name"/>
</xsd:unique>
</xsd:element>
<xsd:element name="resource" type="resourceType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="kb-id" type="xsd:string" use="required"/>
<xsd:attribute name="kb-version" type="xsd:string" use="required"/>
</xsd:complexType>