gazebosim/sdformat

XSD schema generation doesn't parse all nested elements

オープン

#633 opened on 2021/07/24

 (2 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (122 件のフォーク)auto 404
bughelp wanted

Repository metrics

Stars
 (216 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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.

コントリビューターガイド