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

SekvenssikaavioSyntaksi

Sekvenssikaavio

Mermaid voi renderöidä sekvenssikaavioita. Sekvenssikaavio on vuorovaikutuskaavio, joka näyttää, miten eri prosessit toimivat keskenään ja niiden toimintajärjestyksen.

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later!
Tietoa

Huomautus solmuista: Mermaid-kielen kirjoitustavasta johtuen sana "end" rikkoo koko kaavion. Jos sinun on pakko käyttää sanaa "end", se on suljettava sulkeisiin (), lainausmerkkeihin "", aaltosulkeisiin {} tai hakasulkeisiin [], eli: (end), [end], {end}.

Syntaksi

Osallistuja

Osallistujat näytetään siinä järjestyksessä, jossa ne esiintyvät kaavion lähdetekstissä. Joskus saatat haluta näyttää osallistujat eri järjestyksessä kuin ensimmäisessä viestissä; osallistujien esiintymisjärjestys voidaan määrittää seuraavilla tavoilla:

Koodi
                            
Kopioi
Upotus
sequenceDiagram participant Alice participant Bob Bob->>Alice: Hi Alice Alice->>Bob: Hi Bob

角色

Jos haluat käyttää roolisymbolia tekstillisen suorakaiteen sijaan, se voidaan toteuttaa roolilauseella seuraavasti.

Koodi
                            
Kopioi
Upotus
sequenceDiagram actor Alice actor Bob Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice

Alias

Voit määrittää aliaksen käyttämällä as-merkintää osallistujan määrittelyn jälkeen

Koodi
                            
Kopioi
Upotus
sequenceDiagram participant A as Alice participant J as John A->>J: Hello John, how are you? J->>A: Great!

Osallistujan luonti ja tuhoaminen

Osallistujia voidaan luoda ja tuhota viesteillä. Siksi lisää luonti- tai tuhoamiskäsky ennen viestiä.

                            
Kopioi
Upotus
participant B A --> B: Hello

Luontikäsky tukee osallistujan ja aliaksen erottamista. Viestin lähettäjä tai vastaanottaja voidaan tuhota, mutta vastaanottaja voidaan vain luoda.

Koodi
                            
Kopioi
Upotus
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

Ryhmittely/Laatikko

Osallistujat voidaan ryhmitellä pystysuoraan laatikkoon. Voit määrittää värin symbolilla (jos väriä ei ole määritetty, se on läpinäkyvä).

                            
Kopioi
Upotus
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
Tietoa

Jos ryhmän nimi on värillinen, voit pakottaa värin läpinäkyväksi:

                            
Kopioi
Upotus
box transparent Aqua ... actors ... end
Koodi
                            
Kopioi
Upotus
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?

Viesti

Viesti voidaan näyttää yhtenäisellä viivalla tai katkoviivalla.

Viiva voi olla yhtenäinen tai katkoviiva, ja se voi päättyä erityyppisiin nuoliin, risteihin tai avoimiin nuoliin.

                            
Kopioi
Upotus
[Actor][Arrow][Actor]:Message text

Kymmenen vakiomuotoista nuolityyppiä

Tyyppi Kuvaus
-> Yhtenäinen viiva ilman nuolta
--> Katkoviiva ilman nuolta
->> Yhtenäinen viiva nuolella
-->> Katkoviiva nuolella
<<->> Yhtenäinen viiva kaksisuuntaisella nuolella
<<-->> Katkoviiva kaksisuuntaisella nuolella
-x Yhtenäinen viiva, jonka päässä on risti
--x Katkoviiva, jonka päässä on risti
-) Yhtenäinen viiva, jonka päässä on ontto nuoli (asynkroninen)
--) Katkoviiva, jonka päässä on ontto nuoli (asynkroninen)

Aktivointi

Rooli voidaan aktivoida ja deaktivoida; deaktivointi tai aktivointi voi olla erillinen määrittely:

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->>Bob: Hello Bob, how are you? activate Alice Bob->>Alice: Hi Alice! deactivate Alice

On myös pikamerkintä, jossa viestin nuolen perään lisätään + tai -.

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->>+John: Hello John, how are you? John-->>-Alice: Great!

Saman roolin aktivoinnit voivat kasaantua:

Koodi
                            
Kopioi
Upotus
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!

Kommentti

Sekvenssikaavioon voidaan lisätä kommentteja. Ne voidaan toteuttaa seuraavilla symboleilla: Note[right of] tai [left of] tai [over][osallistuja]: kommentin sisältö

Koodi
                            
Kopioi
Upotus
sequenceDiagram participant John Note right of John: Text in note

Voit myös luoda kommentin, joka kattaa kaksi osallistujaa:

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->John: Hello John, how are you? Note over Alice,John: A typical interaction

Rivinvaihtomerkki

Rivinvaihtomerkkejä voidaan lisätä kommentteihin ja viesteihin:

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->John: Hello John,<br/>how are you? Note over Alice,John: A typical interaction<br/>But now in two lines

Roolin nimen rivinvaihto vaatii aliaksen määrittämisen:

Koodi
                            
Kopioi
Upotus
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

Silmukka

Sekvenssikaaviossa silmukka voidaan ilmaista seuraavalla symbolilla.

                            
Kopioi
Upotus
loop Loop text ... statements ... end

Katso alla oleva esimerkki:

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->John: Hello John, how are you? loop Every minute John-->Alice: Great! end

Vaihtoehto

Sekvenssikaaviossa vaihtoehtoinen polku voidaan ilmaista symbolilla.

                            
Kopioi
Upotus
alt Describing text... statements else statements end

或者如果存在可选序列:

                            
Kopioi
Upotus
opt Describing text... statements end

Katso alla oleva esimerkki:

Koodi
                            
Kopioi
Upotus
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

Rinnakkainen

Rinnakkain tapahtuvat toiminnot voidaan esittää seuraavalla symbolilla.

Koodi
                            
Kopioi
Upotus
par Action 1 statements and Action 2 statements and Action N statements end

Katso alla oleva esimerkki:

Koodi
                            
Kopioi
Upotus
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!

Rinnakkaislohkoja voidaan myös sisäkkäistää.

Koodi
                            
Kopioi
Upotus
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

Kriittinen alue

Erilaisia tilanteita ehdollistamalla voidaan näyttää toimenpiteet, jotka on suoritettava automaattisesti.

Tämä tehdään seuraavalla symbolilla:

                            
Kopioi
Upotus
critical [Action that must be performed] ... statements ... option [Circumstance A] ... statements ... option [Circumstance B] ... statements ... end

Katso alla oleva esimerkki:

Koodi
                            
Kopioi
Upotus
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

On myös mahdollista, ettei vaihtoehtoja ole lainkaan.

Koodi
                            
Kopioi
Upotus
critical Establish a connection to the DB Service-->DB: connect end

Tämä kriittinen lohko voidaan myös sisäkkäistää, mikä vastaa yllä nähtyä par-lausetta.

Keskeytys

Prosessissa voidaan osoittaa sekvenssin pysähtyminen, jota käytetään yleensä poikkeustilanteiden mallintamiseen.

Tämä tehdään seuraavalla symbolilla:

                            
Kopioi
Upotus
break [something happened] ... statements ... end

Katso alla oleva esimerkki:

Koodi
                            
Kopioi
Upotus
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

Taustan korostus

Prosessin voi korostaa värillisellä taustasuorakaiteella seuraavalla symbolilla:

                            
Kopioi
Upotus
rect COLOR ... content ... end

Väri määritellään rgb- ja rgba-syntaksilla.

                            
Kopioi
Upotus
rect rgb(0, 255, 0) ... content ... end
                            
Kopioi
Upotus
rect rgba(0, 0, 255, .1) ... content ... end

Katso alla oleva esimerkki:

Koodi
                            
Kopioi
Upotus
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.

Kommentti

Sekvenssikaavioon voi syöttää kommentteja, jotka editori jättää huomiotta. Kommentin on oltava omalla rivillään ja alettava kaksoisprosenttimerkillä %%. Kaikki teksti kommentin alusta seuraavaan rivinvaihtoon asti tulkitaan kommentiksi, mukaan lukien mahdollinen kaaviosyntaksi.

Koodi
                            
Kopioi
Upotus
sequenceDiagram Alice->>John: Hello John, how are you? %% this is a comment John-->>Alice: Great!

Merkkien escape-koodaus

Merkit voidaan escape-merkitä seuraavalla syntaksilla.

Koodi
                            
Kopioi
Upotus
sequenceDiagram A->>B: I #9829; you! B->>A: I #9829; you #infin; times more!

Annetut numerot ovat desimaalilukuja, joten (#) voidaan koodata muotoon (#35;). Myös HTML-merkkien nimiä tuetaan.

Koska puolipiste voi korvata rivinvaihdon merkinnän määrittelyssä, sinun on käytettävä muotoa (#59;), kun viestin tekstissä on puolipiste.

Numerointi

Sekvenssikaavion jokaiseen nuoleen voidaan liittää järjestysnumero. Kuten alla näkyy:

Koodi
                            
Kopioi
Upotus
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!

Osallistujan valikko

Osallistuja voi sisältää ponnahdusvalikon, jossa on henkilökohtaisia linkkejä ulkoisille sivuille. Jos rooli esimerkiksi edustaa verkkopalvelua, hyödyllisiä linkkejä voivat olla linkki palvelun kuntoon liittyvään kojelautaan, palvelun koodin sisältävään repositorioon tai palvelua kuvaavaan wiki-sivuun.

Sen voi määrittää lisäämällä yhden tai useamman linkkirivin seuraavassa muodossa:

                            
Kopioi
Upotus
link <actor>: <link-label> @ <link-url>
Koodi
                            
Kopioi
Upotus
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!

Edistynyt valikkosyntaksi

On olemassa JSON-muotoon perustuva edistynyt syntaksi. Jos hallitset JSON-muodon hyvin, myös tätä voi käyttää.

Sen voi määrittää lisäämällä linkkirivin seuraavassa muodossa:

                            
Kopioi
Upotus
links <actor>: <json-formatted link-name link-url pairs>

示例如下:

Koodi
                            
Kopioi
Upotus
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!