gazebosim/sdformat

XSD schema generation doesn't parse all nested elements

Aberta

#633 aberto em 24 de jul. de 2021

 (2 comentários) (0 reação) (0 responsável)C++ (122 forks)auto 404
bughelp wanted

Métricas do repositório

Stars
 (216 estrelas)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

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.

Guia do colaborador