I'm using %XML.Reader  to open an XML file and use it's correlate method to try and convert it to a class. The conversion fails with an error of: > ERROR #6277: Type attribute, LimitedFreeTextFieldInstance, does not specify valid type for XML input tag: Field (ending at line 3 character 118).</p></blockquote> > >

> This is the XML >

> >
&lt;span class="hljs-tag">&lt;&lt;span class="hljs-name">Fields&lt;/span> &lt;span class="hljs-attr">xmlns:xsi&lt;/span>=&lt;span class="hljs-string">"http://www.w3.org/2001/XMLSchema-instance"&lt;/span> >&lt;/span>
    &lt;span class="hljs-tag">&lt;&lt;span class="hljs-name">Field&lt;/span> &lt;span class="hljs-attr">xsi:type&lt;/span>=&lt;span class="hljs-string">"UDFLookupFieldInstance"&lt;/span> &lt;span class="hljs-attr">ID&lt;/span>=&lt;span class="hljs-string">"2925"&lt;/span> &lt;span class="hljs-attr">Description&lt;/span>=&lt;span class="hljs-string">"FIRE ALARM ACTIVE"&lt;/span> &lt;span class="hljs-attr">Suffix&lt;/span>=&lt;span class="hljs-string">"FDT_ACTIVATE"&lt;/span>/>&lt;/span>
&lt;span class="hljs-tag">&lt;/&lt;span class="hljs-name">Fields&lt;/span>>&lt;/span>
> >

> This error is produced when xsi:type is any value, when it is left blank conversion using the code listed below is successful.  >

> >

> The XML I'm working with is produced by a third party and can't changed. >

> >

> I can't figure out why. Can anyone help? >

> >

> The classes are as follows: >

> >
&lt;span class="hljs-keyword">Class&lt;/span> Field &lt;span class="hljs-keyword">Extends&lt;/span> (&lt;span class="hljs-built_in">%Persistent&lt;/span>, &lt;span class="hljs-built_in">%XML.Adaptor&lt;/span>)
{
    &lt;span class="hljs-keyword">Parameter&lt;/span> XMLFORMAT = &lt;span class="hljs-string">"literal"&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Parameter&lt;/span> XMLNAME = &lt;span class="hljs-string">"Field"&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Parameter&lt;/span> NAMESPACE = &lt;span class="hljs-string">"http://www.civica.co.uk/ParisConnect/ConnectXml/1.0/Messaging"&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Property&lt;/span> Type &lt;span class="hljs-keyword">As&lt;/span> &lt;span class="hljs-built_in">%String&lt;/span>(XMLNAME = &lt;span class="hljs-string">"xsi:type"&lt;/span>, XMLPROJECTION = &lt;span class="hljs-string">"ATTRIBUTE"&lt;/span>)&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Property&lt;/span> Suffix &lt;span class="hljs-keyword">As&lt;/span> &lt;span class="hljs-built_in">%String&lt;/span>(XMLNAME = &lt;span class="hljs-string">"Suffix"&lt;/span>, XMLPROJECTION = &lt;span class="hljs-string">"ATTRIBUTE"&lt;/span>)&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Property&lt;/span> Description &lt;span class="hljs-keyword">As&lt;/span> &lt;span class="hljs-built_in">%String&lt;/span>(XMLNAME = &lt;span class="hljs-string">"Description"&lt;/span>, XMLPROJECTION = &lt;span class="hljs-string">"ATTRIBUTE"&lt;/span>)&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Property&lt;/span> ID &lt;span class="hljs-keyword">As&lt;/span> &lt;span class="hljs-built_in">%String&lt;/span>(XMLNAME = &lt;span class="hljs-string">"ID"&lt;/span>, XMLPROJECTION = &lt;span class="hljs-string">"ATTRIBUTE"&lt;/span>)&lt;span class="hljs-comment">;&lt;/span>
}

&lt;span class="hljs-keyword">Class&lt;/span> Fields &lt;span class="hljs-keyword">Extends&lt;/span> (&lt;span class="hljs-built_in">%Persistent&lt;/span>, &lt;span class="hljs-built_in">%XML.Adaptor&lt;/span>)
{
    &lt;span class="hljs-keyword">Parameter&lt;/span> XMLFORMAT = &lt;span class="hljs-string">"literal"&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Parameter&lt;/span> XMLNAME = &lt;span class="hljs-string">"Fields"&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Parameter&lt;/span> XMLSEQUENCE = &lt;span class="hljs-number">1&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Parameter&lt;/span> NAMESPACE = &lt;span class="hljs-string">"http://www.civica.co.uk/ParisConnect/ConnectXml/1.0/Messaging"&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Parameter&lt;/span> SUPPRESSTYPEPREFIX = &lt;span class="hljs-number">1&lt;/span>&lt;span class="hljs-comment">;&lt;/span>
    &lt;span class="hljs-keyword">Property&lt;/span> Fields &lt;span class="hljs-keyword">As&lt;/span> list Of Field(XMLNAME = &lt;span class="hljs-string">"Field"&lt;/span>, XMLPROJECTION = &lt;span class="hljs-string">"ELEMENT"&lt;/span>)&lt;span class="hljs-comment">;&lt;/span>
}
> >

> And I test with >

> >
&lt;span class="hljs-keyword">ClassMethod&lt;/span> TestFieldsCorrelate()
{
    &lt;span class="hljs-keyword">Set&lt;/span> reader = &lt;span class="hljs-keyword">##class&lt;/span>(&lt;span class="hljs-built_in">%XML.Reader&lt;/span>).&lt;span class="hljs-built_in">%New&lt;/span>()
    &lt;span class="hljs-keyword">Set&lt;/span> tSc=reader.OpenFile(&lt;span class="hljs-string">"E:\temp\Fields.xml"&lt;/span>)
    &lt;span class="hljs-keyword">#dim&lt;/span> match &lt;span class="hljs-keyword">as&lt;/span> Fields
    &lt;span class="hljs-keyword">Do&lt;/span> reader.Correlate(&lt;span class="hljs-string">"Fields"&lt;/span>,&lt;span class="hljs-string">"Fields"&lt;/span>)		 	
    &lt;span class="hljs-keyword">While&lt;/span> reader.Next(.match,.tSc) {
        &lt;span class="hljs-keyword">w&lt;/span> !, &lt;span class="hljs-string">"Hurrah"&lt;/span>
    }
    &lt;span class="hljs-keyword">If&lt;/span> &lt;span class="hljs-built_in">$$$ISERR&lt;/span>(tSc) {
        &lt;span class="hljs-keyword">w&lt;/span> !,  &lt;span class="hljs-built_in">$SYSTEM&lt;/span>.Status.GetErrorText(tSc)
    }
}
> >

> Any feedback, thoughts, comments would be greatfuly received. >

> >

> Cheers >

> >

> Andy >

</body></html>