gazebosim / gazebosim/sdformat

Define sdf using XML Schema instead of custom schema

Open
#138 7 comments 0 reactions 0 assignees View on GitHub
bug major
Dominant language
C++
Stars
216
Forks
125
Avg merge
1d 14h
Merged PRs (30d)
14

Description

**Original report ([archived issue](https://osrf-migration.github.io/sdformat-gh-pages/#!/osrf/sdformat/issues/138)) by Shane Loretz (Bitbucket: [Shane Loretz](https://bitbucket.org/%7B656e3311-aad9-45a1-aaf7-b0ee0e84b287%7D/), GitHub: [sloretz](https://github.com/sloretz)).**

----------------------------------------
I'm a little confused on how the SDF is defined, so this issue is partly to help me understand.

It appears SDF is defined by a bunch of ".sdf" files. The content of these files appears to be custom, not used outside of the sdformat project, but having the same purpose as [XML Schema](https://www.w3.org/XML/Schema). `sdf` files are validated against these ".sdf" files using a custom parser.

There does seem to be a demand to use XML Schema indicated in #2 and [pull request #91](https://osrf-migration.github.io/sdformat-gh-pages/#!/osrf/sdformat/pull-requests/91). The result was a script that translated from the custom format to XML schema.

It seems that the ".sdf" files could be replaced by XML Schema, and the parser could be replaced with another [open source library](http://xerces.apache.org/xerces-c/).

* https://www.w3.org/XML/Schema
* http://xerces.apache.org/xerces-c/
* https://cmake.org/cmake/help/v3.1/module/FindXercesC.html

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the custom .sdf schema files, the custom parser, and the translation script described in the issue. Compare the current approach with XML Schema and Xerces-C; done would require an agreed migration plan and scope, which the issue does not yet provide.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.