Search code examples
xmlmacoscocoascenekitcollada

Scenekit automatically inserts underscores for blank spaces in node names when writing to dae


I am trying to edit a dae file to change the name of a node. I get the child node which I want to edit, I edit the name which now contains blank spaces - say "Node Name". Once I write this scene to a dae file, using SceneKit's write(to:options:delegate:progressHandler:), the node name in the new dae file is automatically changing to "Node_Name". Are blank spaces not allowed for node names in dae?

Is there a way to override this behavior?


Solution

  • That's part of the Collada 1.4.1 specification. A node's name is a xs:NCName and is not allowed to contain whitespaces.

    This got relaxed in Collada 1.5.0 where name becomes a xs:token.

    There's no way to override the Collada specification used by SceneKit, which currently is Collada 1.4.