gazebosim/sdformat

XSD schema generation doesn't parse all nested elements

Offen

#633 geöffnet am 24.07.2021

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C++ (122 Forks)auto 404
bughelp wanted

Repository-Metriken

Stars
 (216 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

The current xmlschema.b parses each X.sdf file and generates an accompanying X.xsd file; however, if any element other than the root element contains a nested <include> tag this tag is ignored. This is because the root element is parsed by the function printXSD, whereas other elements are parsed by printElem and the latter doesn't check for <include> tags.

This is a problem with more recent SDFormat files, which introduce <pose> as a complex type with an optionally nested <relative_to>. Pose is now <include>d, and hence never makes it into the produced .xsd.

The two solutions I can think of are: (1) copy the include parsing code from printXSD to printElem (works, but dirty). Refactor xmlschema.b and merge all code paths that parse element tags.

Contributor Guide