फ्लोचार्ट
ग्राफ़िकल अभिव्यक्ति
माइंड मैप
संरचित अभिव्यक्ति
नोट्स
कुशल अभिव्यक्ति

सीक्वेंस डायग्रामसिंटैक्स

सीक्वेंस डायग्राम

Mermaid सीक्वेंस डायग्राम रेंडर कर सकता है। सीक्वेंस डायग्राम एक इंटरैक्शन डायग्राम है, जो दिखाता है कि विभिन्न प्रक्रियाएँ एक-दूसरे के साथ कैसे कार्य करती हैं तथा कार्यों का क्रम क्या है।

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later!
जानकारी

नोड के बारे में नोट: Mermaid लैंग्वेज लिखे जाने के तरीके के कारण, "end" शब्द पूरे ग्राफ़ को तोड़ देता है। यदि "end" का उपयोग करना ही आवश्यक हो, तो "end" शब्द को छोटे कोष्ठक (), दोहरे उद्धरण "", घुंघराले कोष्ठक {} या वर्ग कोष्ठक [] में लपेटना होगा, अर्थात: (end), [end], {end}।

सिंटैक्स

प्रतिभागी

प्रतिभागी चार्ट के स्रोत टेक्स्ट में उनके प्रकट होने के क्रम में प्रदर्शित होते हैं। कभी-कभी, आप प्रतिभागियों को पहले संदेश में प्रकट होने के क्रम से भिन्न क्रम में प्रदर्शित करना चाह सकते हैं; प्रतिभागियों का प्रदर्शन क्रम निम्नलिखित तरीके से निर्दिष्ट किया जा सकता है:

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram participant Alice participant Bob Bob->>Alice: Hi Alice Alice->>Bob: Hi Bob

角色

यदि आप टेक्स्ट वाले आयत के बजाय भूमिका प्रतीक का उपयोग करना चाहते हैं, तो आप भूमिका कथन का उपयोग करके ऐसा कर सकते हैं, जैसा कि नीचे दिखाया गया है।

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram actor Alice actor Bob Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice

उपनाम

आप प्रतिभागी घोषणा के बाद as का उपयोग करके उपनाम परिभाषित कर सकते हैं

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram participant A as Alice participant J as John A->>J: Hello John, how are you? J->>A: Great!

प्रतिभागी का निर्माण और विनाश

संदेशों के माध्यम से प्रतिभागियों का निर्माण और विनाश किया जा सकता है। इसलिए, संदेश से पहले निर्माण या विनाश निर्देश जोड़ें।

                            
कॉपी करें
एम्बेड
participant B A --> B: Hello

निर्देश बनाते समय प्रतिभागी और उपनाम में अंतर करने का समर्थन किया जाता है। संदेश के प्रेषक या प्राप्तकर्ता को नष्ट किया जा सकता है, लेकिन प्राप्तकर्ता का केवल निर्माण किया जा सकता है।

कोड
                            
कॉपी करें
एम्बेड
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

समूह/बॉक्स

प्रतिभागियों को ऊर्ध्वाधर बॉक्स में समूहीकृत किया जा सकता है। आप प्रतीक का उपयोग करके रंग परिभाषित कर सकते हैं (यदि परिभाषित नहीं है, तो यह पारदर्शी होगा)।

                            
कॉपी करें
एम्बेड
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
जानकारी

यदि आपके समूह का नाम रंगीन है, तो आप उस रंग को पारदर्शी बनाने के लिए बाध्य कर सकते हैं:

                            
कॉपी करें
एम्बेड
box transparent Aqua ... actors ... end
कोड
                            
कॉपी करें
एम्बेड
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?

संदेश

संदेश ठोस रेखा या बिंदुदार रेखा के रूप में प्रदर्शित हो सकता है।

रेखा ठोस या बिंदुदार हो सकती है, और विभिन्न प्रकार के तीरों, क्रॉस या खुले तीरों के साथ समाप्त होने का समर्थन करती है।

                            
कॉपी करें
एम्बेड
[Actor][Arrow][Actor]:Message text

दस मानक तीर प्रकार

प्रकार विवरण
-> तीर रहित ठोस रेखा
--> तीर रहित बिंदुदार रेखा
->> तीर सहित ठोस रेखा
-->> तीर सहित बिंदुदार रेखा
<<->> दोनों दिशाओं वाले तीर की ठोस रेखा
<<-->> दोनों दिशाओं वाले तीर की बिंदुदार रेखा
-x सिरे पर क्रॉस वाली ठोस रेखा
--x सिरे पर क्रॉस वाली बिंदुदार रेखा
-) अंत में खोखले तीर वाली ठोस रेखा (एसिंक)
--) अंत में खोखले तीर वाली बिंदुदार रेखा (एसिंक)

सक्रिय करें

किसी भूमिका को सक्रिय और निष्क्रिय किया जा सकता है; निष्क्रियता या सक्रियता एक समर्पित घोषणा हो सकती है:

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->>Bob: Hello Bob, how are you? activate Alice Bob->>Alice: Hi Alice! deactivate Alice

एक और त्वरित संकेतन भी है, अर्थात संदेश तीर के बाद + या - जोड़ना।

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->>+John: Hello John, how are you? John-->>-Alice: Great!

एक ही भूमिका की सक्रियता को ऊपर-नीचे जोड़ा जा सकता है:

कोड
                            
कॉपी करें
एम्बेड
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!

टिप्पणी

सीक्वेंस डायग्राम में टिप्पणी जोड़ी जा सकती है। यह निम्नलिखित प्रतीकों के माध्यम से किया जा सकता है: Note[right of] या [left of] या [over][प्रतिभागी]: टिप्पणी सामग्री

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram participant John Note right of John: Text in note

दो प्रतिभागियों को कवर करने वाली टिप्पणी भी बनाई जा सकती है:

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->John: Hello John, how are you? Note over Alice,John: A typical interaction

न्यूलाइन अक्षर

टिप्पणियों और संदेशों में न्यूलाइन अक्षर जोड़े जा सकते हैं:

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->John: Hello John,<br/>how are you? Note over Alice,John: A typical interaction<br/>But now in two lines

भूमिका नामों में न्यूलाइन अक्षर के लिए उपनाम परिभाषित करना आवश्यक है:

कोड
                            
कॉपी करें
एम्बेड
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

लूप

सीक्वेंस डायग्राम में लूप को निम्नलिखित प्रतीकों के माध्यम से व्यक्त किया जा सकता है।

                            
कॉपी करें
एम्बेड
loop Loop text ... statements ... end

नीचे दिया गया उदाहरण देखें:

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->John: Hello John, how are you? loop Every minute John-->Alice: Great! end

विकल्प

सीक्वेंस डायग्राम में प्रतीकों के माध्यम से वैकल्पिक पथ व्यक्त किए जा सकते हैं।

                            
कॉपी करें
एम्बेड
alt Describing text... statements else statements end

或者如果存在可选序列:

                            
कॉपी करें
एम्बेड
opt Describing text... statements end

नीचे दिया गया उदाहरण देखें:

कोड
                            
कॉपी करें
एम्बेड
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

समानांतर

समानांतर रूप से होने वाली क्रियाओं को निम्नलिखित प्रतीकों के माध्यम से दर्शाया जा सकता है।

कोड
                            
कॉपी करें
एम्बेड
par Action 1 statements and Action 2 statements and Action N statements end

नीचे दिया गया उदाहरण देखें:

कोड
                            
कॉपी करें
एम्बेड
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!

समानांतर ब्लॉक को नेस्ट भी किया जा सकता है।

कोड
                            
कॉपी करें
एम्बेड
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

क्रिटिकल सेक्शन

विभिन्न स्थितियों को सशर्त बनाकर उन क्रियाओं को दिखाया जा सकता है जिन्हें स्वतः निष्पादित किया जाना चाहिए।

यह निम्नलिखित प्रतीकों के माध्यम से किया जाता है:

                            
कॉपी करें
एम्बेड
critical [Action that must be performed] ... statements ... option [Circumstance A] ... statements ... option [Circumstance B] ... statements ... end

नीचे दिया गया उदाहरण देखें:

कोड
                            
कॉपी करें
एम्बेड
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

पूरी तरह से कोई विकल्प न होना भी संभव है।

कोड
                            
कॉपी करें
एम्बेड
critical Establish a connection to the DB Service-->DB: connect end

इस क्रिटिकल ब्लॉक को नेस्ट भी किया जा सकता है, जो ऊपर देखे गए par कथन के समान है।

ब्रेक

प्रवाह में सीक्वेंस के रुकने को दर्शाया जा सकता है, जिसका उपयोग आमतौर पर असामान्य स्थितियों के मॉडलिंग के लिए किया जाता है।

यह निम्नलिखित प्रतीकों के माध्यम से किया जाता है:

                            
कॉपी करें
एम्बेड
break [something happened] ... statements ... end

नीचे दिया गया उदाहरण देखें:

कोड
                            
कॉपी करें
एम्बेड
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

बैकग्राउंड हाइलाइट

प्रवाह को हाइलाइट करने के लिए रंगीन बैकग्राउंड आयत सेट किए जा सकते हैं, जो निम्नलिखित प्रतीकों के माध्यम से किया जाता है:

                            
कॉपी करें
एम्बेड
rect COLOR ... content ... end

रंगों को rgb और rgba सिंटैक्स का उपयोग करके परिभाषित किया जाता है।

                            
कॉपी करें
एम्बेड
rect rgb(0, 255, 0) ... content ... end
                            
कॉपी करें
एम्बेड
rect rgba(0, 0, 255, .1) ... content ... end

नीचे दिया गया उदाहरण देखें:

कोड
                            
कॉपी करें
एम्बेड
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.

टिप्पणी

सीक्वेंस डायग्राम में टिप्पणियाँ दर्ज की जा सकती हैं, जिन्हें एडिटर अनदेखा कर देगा। टिप्पणी को अलग पंक्ति में होना चाहिए और दोहरे प्रतिशत चिह्न %% से शुरू होना चाहिए। टिप्पणी की शुरुआत से अगले न्यूलाइन अक्षर तक का कोई भी टेक्स्ट, किसी भी चार्ट सिंटैक्स सहित, टिप्पणी माना जाएगा।

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram Alice->>John: Hello John, how are you? %% this is a comment John-->>Alice: Great!

अक्षरों को एस्केप करने के लिए एंटिटी एन्कोडिंग

निम्नलिखित सिंटैक्स का उपयोग करके अक्षरों को एस्केप किया जा सकता है।

कोड
                            
कॉपी करें
एम्बेड
sequenceDiagram A->>B: I #9829; you! B->>A: I #9829; you #infin; times more!

दिया गया नंबर दशमलव है, इसलिए (#) को (#35;) के रूप में एन्कोड किया जा सकता है; HTML अक्षर नामों का उपयोग भी समर्थित है।

चूँकि सेमीकोलन न्यूलाइन अक्षर के स्थान पर मार्कअप परिभाषित कर सकता है, इसलिए संदेश टेक्स्ट में सेमीकोलन शामिल करते समय आपको (#59;) का उपयोग करना होगा।

क्रमांकन

सीक्वेंस डायग्राम में प्रत्येक तीर पर एक क्रम संख्या जोड़ी जा सकती है। जैसा कि नीचे दिखाया गया है:

कोड
                            
कॉपी करें
एम्बेड
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!

प्रतिभागी मेनू

प्रतिभागियों में पॉपअप मेनू शामिल हो सकते हैं, जिनमें बाहरी पृष्ठों के व्यक्तिगत लिंक सूचीबद्ध होते हैं। उदाहरण के लिए, यदि कोई भूमिका किसी नेटवर्क सेवा का प्रतिनिधित्व करती है, तो उपयोगी लिंक में सेवा के स्वास्थ्य डैशबोर्ड का लिंक, उस सेवा के कोड वाला रिपॉज़िटरी, या उस सेवा का वर्णन करने वाले विकी पृष्ठ का लिंक शामिल हो सकता है।

एक या अधिक लिंक पंक्तियाँ जोड़कर कॉन्फ़िगर किया जा सकता है, फ़ॉर्मेट इस प्रकार है:

                            
कॉपी करें
एम्बेड
link <actor>: <link-label> @ <link-url>
कोड
                            
कॉपी करें
एम्बेड
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!

उन्नत मेनू सिंटैक्स

JSON फ़ॉर्मेट पर निर्भर एक उन्नत सिंटैक्स भी है। यदि आप JSON फ़ॉर्मेट में कुशल हैं, तो इसका भी उपयोग किया जा सकता है।

निम्नलिखित फ़ॉर्मेट की लिंक पंक्तियाँ जोड़कर कॉन्फ़िगर किया जा सकता है:

                            
कॉपी करें
एम्बेड
links <actor>: <json-formatted link-name link-url pairs>

示例如下:

कोड
                            
कॉपी करें
एम्बेड
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!