From COLLADA Public Wiki
Revision as of 01:56, 24 May 2007 by Elf (talk | contribs) (shove in material from DOM guide: Resolving URIs...first pass saving)
Jump to: navigation, search

URIs in COLLADA must be of the correct standard format to work correctly.

info 1

The base URI syntax is:


An absolute URI contains a scheme and an authority. If the authority is left empty than localhost is used. For example:


is a URI that references a file named document.dae on the localhost found in c:/path.

The fragment portion is used to identify elements by using their "id" attribute. The previous example references an element with an id "Geo_01".

A relative URI is any URI that does not contain a scheme and authority. A relative URI can be a relative path, an absolute path, or just a fragment.

Examples of relative path URIs:


A Windows absolute path must be preceded by a forward slash character '/'. An example:


A fragment identifier references an element that can be found within the same document as the URI. An example of this:


info 2

A base URI is needed to normalize relative URIs. Absolute URIs do not require a separate base URI.

Assuming a base URI of


here are some examples of how the following URIs will be normalized:

Original URI Normalized URI

Note: Windows file paths are not proper URIs!

Note also that only the slash (/) character is used as a path delimeter. Windows uses the backslash (\) to delimit path segments. Using the backslash can result in incorrect URI processing! "A\B\C" is considered one path segment. If using "file:///A\B\C" as a base URI and trying to resolve "../doc.dae" the result will be "file:///doc.dae" and not "file:///A\B\doc.dae" as one might have expected.

info 3

A common mistake is to use a Windows or Linux file path. Both COLLADA and the COLLADA DOM use URIs exclusively to reference resources or files. A file path needs to be converted to a file scheme URI before being passed to the COLLADA DOM. The following are some examples of converting a file path to a URI.

Example Description    File Path                        URI
Windows absolute path  C:\folder\file.dae               file:///C:/folder/file.dae
Windows relative path  ..\folder\file.dae               ../folder/file.dae
UNC path               \\remoteMachine\folder\file.dae  file://///remoteMachine/folder/file.dae
Linux absolute path    /folder/file.dae                 file:///folder/file.dae
Linux relative path    ../folder/file.dae               ../folder/file.dae

See also