Проблема
PlantUML не очень хорошо справляется с горизонтальным расположением. Возможно, примеры, использованные на странице документации, предполагают, что тесты обеспечения качества в основном могут выполняться с вертикальной компоновкой.
Благодаря вертикальному представлению PlantUML поддерживает линию мощности с обеих сторон. Это уменьшает ширину мощности до минимума и размещает их таким образом, чтобы не пересекать линию ассоциации. Итак:
Pond "xxxxxx" o-- "o..*" Swan
приводит к:
Горизонтальная версия принимает аналогичную стратегию. К сожалению, ширина кардинальности не считается показателем минимальной ширины линии ассоциации. Он также не оставляет за собой минимальное горизонтальное пространство с обеих сторон для достижения достойного результата, по крайней мере, для наиболее распространенных случаев. Итак:
Pond "xxxxxx" o- "o..*" Swan
приводит к:
Это явно серьезная ошибка в макете.
Обходной путь
PlantUML также позволяет наносить ярлык на ассоциацию. К счастью, механизм компоновки учитывает длину этой метки, поскольку она должна быть расположена над линией. Таким образом, вы можете помочь себе, добавив пустую метку для заполнения:
Pond "xxxxx" o- "o..*" Swan : " "
^
THis label is only for padding
Результаты:
Конечно, этоне очень хорошее решение. Это всего лишь практическое решение проблемы с ошибкой.