Validation issues

Hi guys,
I am new to the forum and new to Collada, I am trying to learn more about Collada to be able to implement a full loader as part of my rendering engine for my final year project, I have compiled a sample cpp application that creates dae files with the basic skeleton required for validation, now when I try validating my file against the official Khronos schema found here: http://www.khronos.org/files/collada_schema_1_4 by using

xmllint --noout --schema http://www.khronos.org/files/collada_schema_1_4 simple.dae
  • xmllint complaints:
element complexType: Schemas parser error : CT local: The content model is not determinist.
  • I have decided to download the actual Schema and check my sample Collada file against that schema, the error is still the same, although this time xmllint gives me the culprit tag found on line number 2398, that is where the tag
<xs:complexType>

begins - I removed the whole tag with the relevant content, saved the file, re-checked with xmllint and everything seems to be working fine, it in fact outputs: simple.dae valid!

I must add that I have compiled the DOM framework from scratch under Mac OS X Leopard 10.5.2 - everything seems to be working fine apart from validation…

One more thing, where can I find any good resources on how to display Collada models using OpenGL?

Thank you very much for your time, hope somebody can help me out :roll:

speechlint “I’m going to the store to skyscraper some butter”

–> speechlint doesn’t understand skyscraper in this context

The fact that validation is saying that a tag is wrong may just mean that it’s not allowed to be in that spot. The word skyscraper isn’t incorrect, but a noun where a verb is expected is, and a noun that seems completely out of context is even more confusing.

Show us what the lines around what you removed are, and we may be able to help. Or look at the schema in a schema viewer and see what exactly is allowed for the element that you’re writing.

Your problem might be a bug of the OS X shipped libxml2. I remember there was an issue using libxml2 2.6.16 (the version shipped with OS X) validating files against the collada schema. if you execute xmllint in the terminal, you are very likely using that version. Try

xmllint --version

to find out which version you are using (20616 = 2.6.16).

You can find updated libxml2 versions for OS X here:

http://www.explain.com.au/oss/libxml2xslt.html

EDIT: the current DOM seems to build against Apples shipped libxml2 version, the DOMs functionality, however, should not be affected by the validation bug. But for separate XML validation like you are trying to do, you would have to download an updated libxml2 version.

I can confirm that I have the same problem validating documents against the Collada schema in Mac OS X Leopard. The reported version of libxml is 2.6.16, just as Heinrich said. For validation you’re going to need a newer version of libxml it seems.

Actually for Mac we don’t provide a libxml build, since I expect people to use the one that ships with the OS. I actually thought that Leopard provided a newer libxml version so we wouldn’t have the validation problem anymore. I’m sad to see that I was mistaken.

Even still though, the pre-built libs are a real maintenance headache. Since libxml 2.6.16 works for reading/writing documents I might just leave this situation as it is. If you want to validate documents on Mac OS X you’ll need to download an updated version of libxml. Considering the link you provided it seems that shouldn’t be too much of a burden.

Steve

Thank you very much guys and thanks heinzi for the link, it works fine now!
I can confirm that xmllint installed on a standard Leopard 10.5.2 distribution is indeed the 2.6.16, I have now upgraded it to 2.6.30 with the new frameworks!

I have more questions about COLLADA, but I don’t want to go off-topic, I will open a new topic for those if I can’t find any material around the forum.

Thanks again!