Ошибка синтаксиса в PlantUML
У меня есть код PlantUML:
@startuml
hide methods
hide stereotypes
!define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>
!define Enum(name,desc) class name as "desc" << (E,#FFFFAA) >>
!define primary_key(x) <b>x</b>
!define not_null(x) <u>x</u>
!define unique(x) <color:green>x</color>
Enum(menuitemtype,"Menu item types") {
category
text
sticker
user_action
}
Table(menuitem,"Menu item") {
primary_key(id) INTEGER
not_null(unique(name)) VARCHAR[32]
type INTEGER
anonymous BOOLEAN
parent INTEGER
type INTEGER
}
Table(chat,"Telegramm chats") {
primary_key(id) INTEGER
not_null(unique(chat_id)) INTEGER
is_group BOOLEAN
}
Table(requester,"Bot requester") {
primary_key(id) INTEGER
not_null(unique(tele_id)) INTEGER
is_boot BOOLEAN
user_name VARCHAR[32]
last_name VARCHAR[32]
first_name VARCHAR[32]
is_active BOOLEAN
last_access DATETIME
}
menuitem -- menuitemtype
menuitem "0..N" --> "1" menuitem
requester "1" --> "N" chat
@enduml
Я беру код отсюда: https://gist.github.com/QuantumGhost/0955a45383a0b6c0bc24f9654b3cb561
Когда плагин NetBeans PlantUML действительно отображает структуру:
Инструмент Java /usr/share/plantuml/plantuml.jar
установленный на Ubuntu 16 с apt-get выдает ошибку:
$ cat SystemDB/schema.puml | plantuml -syntax -v
(0.000 - 119 Mo) 117 Mo - PlantUML Version 8024
(0.048 - 119 Mo) 115 Mo - GraphicsEnvironment.isHeadless() false
ERROR
5
Syntax Error?
и генерирует следующий файл
Я вижу, что стереотипы удобны в соответствии с: http://plantuml.com/PlantUML_Language_Reference_Guide.pdf - глава 1.21
1 ответ
В Ubuntu,apt-get
устанавливает (иногда очень) старую версию PlantUML, поэтому возникают синтаксические ошибки.
Вы можете увидеть, как установить его с помощью сценария , или следуйте этому сценарию, чтобы установить его вручную. После того, как вы установите его таким образом, вы можете обновить его, загрузив последнюю версию.jar
файл с PlantUML.com.