Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

Sekų diagramaSintaksė

Sekų diagrama

Mermaid gali atvaizduoti sekos diagramą. Sekos diagrama – tai sąveikos diagrama, rodanti, kaip atskiri procesai veikia vienas kitą ir kokia jų operacijų tvarka.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later!
Informacija

Pastaba apie mazgus: dėl to, kaip parašyta Mermaid kalba, žodis "end" sugadina visą diagramą. Jei būtina naudoti „end“, žodį „end“ reikia apgaubti paprastais skliaustais (), dvigubomis kabutėmis "", riestiniais skliaustais {} arba laužtiniais skliaustais [], t. y.: (end), [end], {end}.

Sintaksė

Dalyvis

Dalyviai rodomi tokia tvarka, kokia pasirodo diagramos šaltinio tekste. Kartais galite norėti, kad dalyviai būtų rodomi kita tvarka, nei jie pasirodo pirmojoje žinutėje; dalyvių pasirodymo tvarką galima nurodyti šiais būdais:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant Alice participant Bob Bob->>Alice: Hi Alice Alice->>Bob: Hi Bob

角色

Jei norite naudoti veikėjo simbolį, o ne stačiakampį su tekstu, tai galima padaryti naudojant veikėjo sakinį, kaip parodyta žemiau.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram actor Alice actor Bob Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice

Aliasas

Po dalyvio deklaracijos galite naudoti as, kad apibrėžtumėte aliasą

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant A as Alice participant J as John A->>J: Hello John, how are you? J->>A: Great!

Dalyvių kūrimas ir naikinimas

Dalyvius galima kurti ir naikinti per pranešimus. Todėl prieš pranešimą pridėkite kūrimo arba naikinimo komandą.

                            
Kopijuoti
Įterpti
participant B A --> B: Hello

Kūrimo komandos atveju palaikomas dalyvio ir aliaso atskyrimas. Pranešimo siuntėjas arba gavėjas gali būti sunaikintas, tačiau gavėjas gali būti tik sukurtas.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>Bob: Hello Bob, how are you ? Bob->>Alice: Fine, thank you. And you? create participant Carl Alice->>Carl: Hi Carl! create actor D as Donald Carl->>D: Hi! destroy Carl Alice-xCarl: We are too many destroy Bob Bob->>Alice: I agree

Grupė / laukas

Dalyviai gali būti sugrupuoti vertikaliame lauke. Spalvą galite apibrėžti naudodami simbolį (jei neapibrėžta, ji bus permatoma).

                            
Kopijuoti
Įterpti
box Aqua Group Description ... actors ... end box Group without description ... actors ... end box rgb(33,66,99) ... actors ... end box rgba(33,66,99,0.5) ... actors ... end
Informacija

Jei jūsų grupės pavadinimas yra spalvotas, tą spalvą galite priverstinai nustatyti permatomą:

                            
Kopijuoti
Įterpti
box transparent Aqua ... actors ... end
Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram box Orange Alice & John participant A participant J end box Another Group participant B participant C end A->>J: Hello John, how are you? J->>A: Great! A->>B: Hello Bob, how is Charley? B->>C: Hello Charley, how are you?

Pranešimas

Pranešimas gali būti rodomas ištisine arba brūkšnine linija.

Linija gali būti ištisinė arba brūkšninė ir gali baigtis įvairių tipų rodyklėmis, kryžiumi arba atvira rodykle.

                            
Kopijuoti
Įterpti
[Actor][Arrow][Actor]:Message text

Dešimt standartinių rodyklių tipų

Tipas Aprašymas
-> Ištisinė linija be rodyklės
--> Brūkšninė linija be rodyklės
->> Ištisinė linija su rodykle
-->> Brūkšninė linija su rodykle
<<->> Ištisinė linija su dvipuse rodykle
<<-->> Brūkšninė linija su dvipuse rodykle
-x Ištisinė linija su kryžiumi gale
--x Brūkšninė linija su kryžiumi gale
-) Ištisinė linija su tuščiavidure rodykle gale (asinchroninė)
--) Brūkšninė linija su tuščiavidure rodykle gale (asinchroninė)

Aktyvavimas

Galima aktyvuoti ir deaktyvuoti veikėją; deaktyvavimas arba aktyvavimas gali būti atskira deklaracija:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>Bob: Hello Bob, how are you? activate Alice Bob->>Alice: Hi Alice! deactivate Alice

Yra ir trumpasis žymėjimas – prie pranešimo rodyklės pridėti + arba -.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>+John: Hello John, how are you? John-->>-Alice: Great!

To paties veikėjo aktyvavimai gali būti kaupiami:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>+John: Hello John, how are you? Alice->>+John: John, can you hear me? John-->>-Alice: Hi Alice, I can hear you! John-->>-Alice: I feel great!

Komentaras

Į sekos diagramą galima pridėti komentarų. Tai daroma naudojant šiuos simbolius: Note[right of] arba [left of] arba [over][dalyvis]: komentaro turinys

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant John Note right of John: Text in note

Taip pat galima sukurti komentarą, apimantį du dalyvius:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->John: Hello John, how are you? Note over Alice,John: A typical interaction

Eilutės lūžio simbolis

Komentaruose ir pranešimuose galima pridėti eilutės lūžio simbolį:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->John: Hello John,<br/>how are you? Note over Alice,John: A typical interaction<br/>But now in two lines

Eilutės lūžio simboliui veikėjo pavadinime reikia apibrėžti aliasą:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant Alice as Alice<br/>Johnson Alice->John: Hello John,<br/>how are you? Note over Alice,John: A typical interaction<n/>But now in two lines

Ciklas

Sekos diagramoje ciklą galima išreikšti šiais simboliais.

                            
Kopijuoti
Įterpti
loop Loop text ... statements ... end

Žr. pavyzdį žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->John: Hello John, how are you? loop Every minute John-->Alice: Great! end

Alternatyva

Sekos diagramoje alternatyvų kelią galima išreikšti simboliu.

                            
Kopijuoti
Įterpti
alt Describing text... statements else statements end

或者如果存在可选序列:

                            
Kopijuoti
Įterpti
opt Describing text... statements end

Žr. pavyzdį žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>Bob: Hello Bob, how are you? alt is sick Bob->>Alice: Not so good :( else is well Bob->>Alice: Feeling fresh like a daisy end opt Extra response Bob->>Alice: Thanks for asking end

Lygiagretumas

Lygiagrečiai vykstančius veiksmus galima pavaizduoti šiais simboliais.

Kodas
                            
Kopijuoti
Įterpti
par Action 1 statements and Action 2 statements and Action N statements end

Žr. pavyzdį žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram par Alice to Bob Alice->>Bob: Hello guys! and Alice to John Alice->>John: Hello guys! end Bob-->>Alice: Hi Alice! John-->>Alice: Hi Alice!

Taip pat galima įdėti lygiagrečius blokus vieną į kitą.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram par Alice to Bob Alice->>Bob: Go help John and Alice to John Alice->>John: I want this done today par John to Charlie John->>Charlie: Can we do this today? and John to Diana John->>Diana: Can you help us today? end end

Kritinė sritis

Galima parodyti operacijas, kurios turi būti atliekamos automatiškai, įvairias situacijas aprašant sąlyginai.

Tai atliekama šiais simboliais:

                            
Kopijuoti
Įterpti
critical [Action that must be performed] ... statements ... option [Circumstance A] ... statements ... option [Circumstance B] ... statements ... end

Žr. pavyzdį žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram critical Establish a connection to the DB Service-->DB: connect option Network timeout Service-->Service: Log error option Credentials rejected Service-->Service: Log different error end

Taip pat gali būti visai be parinkčių.

Kodas
                            
Kopijuoti
Įterpti
critical Establish a connection to the DB Service-->DB: connect end

Šis kritinis blokas taip pat gali būti įdėtas į kitą, atitinkantį aukščiau matytą par sakinį.

Nutraukimas

Galima nurodyti sekos sustabdymą procese; paprastai naudojama išimtinėms situacijoms modeliuoti.

Tai atliekama šiais simboliais:

                            
Kopijuoti
Įterpti
break [something happened] ... statements ... end

Žr. pavyzdį žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Consumer-->API: Book something API-->BookingService: Start booking process break when the booking process fails API-->Consumer: show failure end API-->BillingService: Start billing process

Fono paryškinimas

Galima nustatyti spalvotą fono stačiakampį procesui paryškinti; tai atliekama šiais simboliais:

                            
Kopijuoti
Įterpti
rect COLOR ... content ... end

Spalvos apibrėžiamos naudojant rgb ir rgba sintaksę.

                            
Kopijuoti
Įterpti
rect rgb(0, 255, 0) ... content ... end
                            
Kopijuoti
Įterpti
rect rgba(0, 0, 255, .1) ... content ... end

Žr. pavyzdį žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant Alice participant John rect rgb(191, 178, 255) note right of Alice: Alice calls John. Alice->>+John: Hello John, how are you? rect rgb(142, 182, 89) Alice->>+John: John, can you hear me? John-->>-Alice: Hi Alice, I can hear you! end John-->>-Alice: I feel great! end Alice ->>+ John: Did you want to go to the game tonight? John -->>- Alice: Yeah! See you there.

Komentaras

Sekos diagramoje galima įrašyti komentarus, redaktorius juos ignoruos. Komentaras turi užimti atskirą eilutę ir prasidėti dvigubu procento ženklu %%. Bet koks tekstas nuo komentaro pradžios iki kito eilutės lūžio laikomas komentaru, įskaitant bet kokią diagramos sintaksę.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram Alice->>John: Hello John, how are you? %% this is a comment John-->>Alice: Great!

Simbolių escape'inimui skirtas entity kodavimas

Simbolius galima escape'inti naudojant šią sintaksę.

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram A->>B: I #9829; you! B->>A: I #9829; you #infin; times more!

Pateikti skaičiai yra dešimtainiai, todėl (#) gali būti koduojamas kaip (#35;); taip pat palaikomi HTML simbolių pavadinimai.

Kadangi kabliataškis gali pakeisti eilutės lūžio simbolį žymėms apibrėžti, įtraukę kabliataškį į pranešimo tekstą turite naudoti (#59;).

Numeravimas

Prie kiekvienos sekos diagramos rodyklės galima pridėti eilės numerį. Kaip parodyta žemiau:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram autonumber Alice->>John: Hello John, how are you? loop HealthCheck John->>John: Fight against hypochondria end Note right of John: Rational thoughts! John-->>Alice: Great! John->>Bob: How about you? Bob-->>John: Jolly good!

Dalyvio meniu

Dalyviai gali turėti iššokantįjį meniu su suasmenintomis nuorodomis į išorinius puslapius. Pavyzdžiui, jei veikėjas atstovauja tinklo paslaugą, naudingos nuorodos gali apimti nuorodą į paslaugos būsenos skydelį, saugyklą su paslaugos kodu arba nuorodą į viki puslapį, aprašantį paslaugą.

Galima konfigūruoti pridėjus vieną ar daugiau nuorodų eilučių, kurių formatas:

                            
Kopijuoti
Įterpti
link <actor>: <link-label> @ <link-url>
Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant Alice participant John link Alice: Dashboard @ https://dashboard.contoso.com/alice link Alice: Wiki @ https://wiki.contoso.com/alice link John: Dashboard @ https://dashboard.contoso.com/john link John: Wiki @ https://wiki.contoso.com/john Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later!

Išplėstinė meniu sintaksė

Yra išplėstinė sintaksė, pagrįsta JSON formatu. Jei gerai mokate JSON formatą, galite naudoti ir ją.

Galima konfigūruoti pridedant šio formato nuorodų eilutes:

                            
Kopijuoti
Įterpti
links <actor>: <json-formatted link-name link-url pairs>

示例如下:

Kodas
                            
Kopijuoti
Įterpti
sequenceDiagram participant Alice participant John links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later!