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

Sekvenčni diagramSintaksa

Sekvenčni diagram

Mermaid lahko upodobi sekvenčni diagram. Sekvenčni diagram je vrsta interakcijskega diagrama, ki prikazuje, kako procesi medsebojno delujejo in v kakšnem vrstnem redu potekajo operacije.

Koda
                            
Kopiraj
Vdelava
sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later!
Informacije

Opomba o vozliščih: zaradi načina pisanja jezika Mermaid beseda "end" pokvari celoten graf. Če morate uporabiti "end", morate besedo "end" oviti z oklepaji (), dvojnimi narekovaji "", zavitimi oklepaji {} ali oglatimi oklepaji [], in sicer: (end), [end], {end}.

Sintaksa

Udeleženec

Udeleženci so prikazani v vrstnem redu, v katerem se pojavijo v izvornem besedilu diagrama. Včasih jih želite prikazati v drugačnem vrstnem redu, kot se pojavijo v prvem sporočilu; vrstni red prikaza udeležencev lahko določite na naslednji način:

Koda
                            
Kopiraj
Vdelava
sequenceDiagram participant Alice participant Bob Bob->>Alice: Hi Alice Alice->>Bob: Hi Bob

角色

Če želite uporabiti simbol vloge namesto pravokotnika z besedilom, to lahko storite s stavkom za vlogo, kot je prikazano spodaj.

Koda
                            
Kopiraj
Vdelava
sequenceDiagram actor Alice actor Bob Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice

Vzdevek

Za deklaracijo udeleženca lahko z as definirate vzdevek

Koda
                            
Kopiraj
Vdelava
sequenceDiagram participant A as Alice participant J as John A->>J: Hello John, how are you? J->>A: Great!

Ustvarjanje in uničenje udeležencev

Udeležence je mogoče ustvariti in uničiti prek sporočil. Zato pred sporočilo dodajte ukaz za ustvarjanje ali uničenje.

                            
Kopiraj
Vdelava
participant B A --> B: Hello

Ukaz za ustvarjanje podpira razlikovanje med udeležencem in vzdevkom. Pošiljatelja ali prejemnika sporočila je mogoče uničiti, prejemnika pa je mogoče le ustvariti.

Koda
                            
Kopiraj
Vdelava
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

Združevanje/polje

Udeležence je mogoče združiti v navpična polja. Barvo lahko določite s simbolom (če ni definirana, bo prosojna).

                            
Kopiraj
Vdelava
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
Informacije

Če je ime vaše skupine obarvano, lahko to barvo vsilite kot prosojno:

                            
Kopiraj
Vdelava
box transparent Aqua ... actors ... end
Koda
                            
Kopiraj
Vdelava
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?

Sporočilo

Sporočila so lahko prikazana s polno ali črtkano črto.

Črte so lahko polne ali črtkane in se lahko končajo z različnimi vrstami puščic, križev ali odprtih puščic.

                            
Kopiraj
Vdelava
[Actor][Arrow][Actor]:Message text

Deset standardnih vrst puščic

Vrsta Opis
-> Polna črta brez puščice
--> Črtkana črta brez puščice
->> Polna črta s puščico
-->> Črtkana črta s puščico
<<->> Polna črta z dvosmerno puščico
<<-->> Črtkana črta z dvosmerno puščico
-x Polna črta s križem na koncu
--x Črtkana črta s križem na koncu
-) Polna črta s prazno puščico na koncu (asinhrono)
--) Črtkana črta s prazno puščico na koncu (asinhrono)

Aktivacija

Vlogo je mogoče aktivirati in deaktivirati; deaktivacija ali aktivacija je lahko namenska deklaracija:

Koda
                            
Kopiraj
Vdelava
sequenceDiagram Alice->>Bob: Hello Bob, how are you? activate Alice Bob->>Alice: Hi Alice! deactivate Alice

Obstaja tudi hitra notacija, in sicer z dodajanjem + ali - za puščico sporočila.

Koda
                            
Kopiraj
Vdelava
sequenceDiagram Alice->>+John: Hello John, how are you? John-->>-Alice: Great!

Aktivacije iste vloge se lahko nalagajo:

Koda
                            
Kopiraj
Vdelava
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!

Komentar

V sekvenčni diagram lahko dodate komentarje. To je mogoče storiti z naslednjimi simboli: Note[right of] ali [left of] ali [over][udeleženec]: vsebina komentarja

Koda
                            
Kopiraj
Vdelava
sequenceDiagram participant John Note right of John: Text in note

Ustvarite lahko tudi komentar, ki zajema dva udeleženca:

Koda
                            
Kopiraj
Vdelava
sequenceDiagram Alice->John: Hello John, how are you? Note over Alice,John: A typical interaction

Znak za novo vrstico

V komentarje in sporočila lahko dodate znake za novo vrstico:

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

Znaki za novo vrstico v imenu vloge zahtevajo definiran vzdevek:

Koda
                            
Kopiraj
Vdelava
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

Zanka

V sekvenčnem diagramu je zanko mogoče izraziti z naslednjimi simboli.

                            
Kopiraj
Vdelava
loop Loop text ... statements ... end

Glejte spodnji primer:

Koda
                            
Kopiraj
Vdelava
sequenceDiagram Alice->John: Hello John, how are you? loop Every minute John-->Alice: Great! end

Alternativa

V sekvenčnem diagramu je alternativno pot mogoče izraziti s simboli.

                            
Kopiraj
Vdelava
alt Describing text... statements else statements end

或者如果存在可选序列:

                            
Kopiraj
Vdelava
opt Describing text... statements end

Glejte spodnji primer:

Koda
                            
Kopiraj
Vdelava
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

Vzporedno

Dejanja, ki se zgodijo vzporedno, je mogoče predstaviti z naslednjimi simboli.

Koda
                            
Kopiraj
Vdelava
par Action 1 statements and Action 2 statements and Action N statements end

Glejte spodnji primer:

Koda
                            
Kopiraj
Vdelava
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!

Vzporedne bloke je mogoče tudi gnezditi.

Koda
                            
Kopiraj
Vdelava
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

Kritični odsek

Operacije, ki se morajo izvesti samodejno, je mogoče prikazati s pogojno obravnavo različnih primerov.

To se izvede z naslednjimi simboli:

                            
Kopiraj
Vdelava
critical [Action that must be performed] ... statements ... option [Circumstance A] ... statements ... option [Circumstance B] ... statements ... end

Glejte spodnji primer:

Koda
                            
Kopiraj
Vdelava
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

Možno je tudi, da ni nobene možnosti.

Koda
                            
Kopiraj
Vdelava
critical Establish a connection to the DB Service-->DB: connect end

Ta kritični blok je mogoče tudi gnezditi, kar ustreza stavku par, ki smo ga videli zgoraj.

Prekinitev

V procesu lahko označite ustavitev zaporedja, kar se običajno uporablja za modeliranje izjemnih primerov.

To se izvede z naslednjimi simboli:

                            
Kopiraj
Vdelava
break [something happened] ... statements ... end

Glejte spodnji primer:

Koda
                            
Kopiraj
Vdelava
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

Označevanje ozadja

Za označevanje procesa lahko nastavite barvni pravokotnik ozadja, kar storite z naslednjimi simboli:

                            
Kopiraj
Vdelava
rect COLOR ... content ... end

Barve so definirane s sintakso rgb in rgba.

                            
Kopiraj
Vdelava
rect rgb(0, 255, 0) ... content ... end
                            
Kopiraj
Vdelava
rect rgba(0, 0, 255, .1) ... content ... end

Glejte spodnji primer:

Koda
                            
Kopiraj
Vdelava
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.

Komentar

V sekvenčni diagram lahko vnesete komentarje, ki jih urejevalnik prezre. Komentar mora zavzemati celotno vrstico in se mora začeti z dvojnim odstotkom %%. Vsako besedilo od začetka komentarja do naslednjega znaka za novo vrstico se obravnava kot komentar, vključno s katero koli sintakso diagrama.

Koda
                            
Kopiraj
Vdelava
sequenceDiagram Alice->>John: Hello John, how are you? %% this is a comment John-->>Alice: Great!

Kodiranje entitet za ubežne znake

Znake lahko ubežite z naslednjo sintakso.

Koda
                            
Kopiraj
Vdelava
sequenceDiagram A->>B: I #9829; you! B->>A: I #9829; you #infin; times more!

Navedena števila so decimalna, zato je (#) mogoče kodirati kot (#35;); podprta je tudi uporaba imen znakov HTML.

Ker lahko podpičje nadomesti znak za novo vrstico pri definiranju oznak, morate pri vključitvi podpičja v besedilo sporočila uporabiti (#59;).

Oštevilčenje

Vsaki puščici v sekvenčnem diagramu lahko dodate zaporedno številko. Kot je prikazano spodaj:

Koda
                            
Kopiraj
Vdelava
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!

Meni udeleženca

Udeleženec lahko vsebuje pojavni meni s prilagojenimi povezavami do zunanjih strani. Na primer, če vloga predstavlja spletno storitev, lahko uporabne povezave vključujejo povezavo do nadzorne plošče stanja storitve, repozitorij s kodo te storitve ali povezavo do wiki strani, ki opisuje storitev.

Konfigurirate ga lahko z dodajanjem ene ali več vrstic s povezavami v naslednji obliki:

                            
Kopiraj
Vdelava
link <actor>: <link-label> @ <link-url>
Koda
                            
Kopiraj
Vdelava
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!

Napredna sintaksa menija

Obstaja napredna sintaksa, ki temelji na obliki JSON. Če dobro obvladate obliko JSON, jo lahko uporabite tudi.

Konfigurirate ga lahko z dodajanjem vrstic s povezavami v naslednji obliki:

                            
Kopiraj
Vdelava
links <actor>: <json-formatted link-name link-url pairs>

示例如下:

Koda
                            
Kopiraj
Vdelava
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!