Bom dia Tiago.
(): representa um grupo.
?: Representa que o item é opcional, ocorre zero ou uma vez.
*: Representa que o item é opcional, ocorre zero ou mais vezes.
+: Representa que o item é requerido e ocorre uma o mais vezes.
|: Representa o conectivo "Ou".
Sem símbolo: Representa que o elemento deve aparecer uma vez.
~: Representa que o elemento pode ter atributo.
O validador informa que a tag <pub-date> não segue estrutura DTD esperada e diz: (((day?, month?) | season)?, year)
- Podemos observar que o elemento <pub-date> é composto por um grupo de elementos onde <year> é obrigatório (não tem símbolo) . ,(year)
- O elemento <day> e <month> pode ou não ocorrer no elemento <pub-date>, quando ocorre, ocorre só uma vez e sempre deverá aparecer na sequência descrita (day?, month?), year)
- <month> pode aparecer zero ou uma vez e sem <day> (month?), year)
- O “pipe” indica que se há dia/mês ou mês, não é possível incluir um elemento <season>. Ou seja, só é possível ter um OU outro e nunca os dois. (day?, month?) | season)