drawio-generator
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDraw.io Diagram Generator
Draw.io 图表生成工具
Generate professional-grade Draw.io (mxGraph) XML diagrams from natural language. You ARE the LLM — generate the XML directly, validate it, fix issues, and deliver.
根据自然语言生成专业级别的Draw.io(mxGraph)XML图表。你是LLM——直接生成XML,验证它,修复问题并交付。
Critical Rules
核心规则
Structure Rules
结构规则
- S1: Check Stencil Names 🚨 NEVER guess stencil names. Check for EXACT names. Wrong:
stencils/*.md→ Correct:mxgraph.cisco.routermxgraph.cisco.routers.router - S2: Stencils Require fillColor Many stencils have no default color. Always add /
fillColor. Exception: edge/link stencils are connectors, not devices.strokeColor - S3: Root Cells Required Must include and
<mxCell id="0"/>or diagram won't render.<mxCell id="1" parent="0"/> - S4: Labels Below Stencils Use for device/icon labels.
verticalLabelPosition=bottom;verticalAlign=top;labelPosition=center;align=center; - S5: mxCell Must Be Siblings ALL mxCell elements must be siblings under — NEVER nest mxCell inside another mxCell.
<root> - S6: Container Transparency For container shapes, use to make background transparent and prevent covering child elements.
fillColor=none; - S7: No Array Elements ⚠️ NEVER use elements in mxGeometry — this CRASHES draw.io! Let draw.io auto-route edges. Use
<Array>style params instead.exitX/exitY/entryX/entryY - S8: No XML Comments NEVER include in generated XML — breaks editing.
<!-- ... -->
- S1:检查模板名称 🚨 绝不猜测模板名称。查看获取精确名称。错误示例:
stencils/*.md→ 正确示例:mxgraph.cisco.routermxgraph.cisco.routers.router - S2:模板需设置fillColor 许多模板没有默认颜色。务必添加/
fillColor。例外:连接线(edge/link)模板是连接器,而非设备,无需设置。strokeColor - S3:必须包含根单元格 必须包含和
<mxCell id="0"/>,否则图表无法渲染。<mxCell id="1" parent="0"/> - S4:标签位于模板下方 设备/图标标签需使用样式。
verticalLabelPosition=bottom;verticalAlign=top;labelPosition=center;align=center; - S5:mxCell必须为同级元素 所有mxCell元素必须是下的同级元素——绝不能将mxCell嵌套在另一个mxCell内。
<root> - S6:容器透明化 对于容器形状,使用使背景透明,避免覆盖子元素。
fillColor=none; - S7:禁止使用Array元素 ⚠️ 绝不能在mxGeometry中使用元素——这会导致draw.io崩溃!让draw.io自动路由连接线,改用
<Array>样式参数。exitX/exitY/entryX/entryY - S8:禁止XML注释 绝不能在生成的XML中包含——这会破坏编辑功能。
<!-- ... -->
Layout Rules
布局规则
- L1: Starting Margin Begin positioning from x=40, y=40.
- L2: Element Spacing Keep 40-60px gaps between connected shapes; 150-200px for routing channels between groups.
- L3: Compact Layouts Use vertical stacking or grid layouts. Keep within x: 0-800, y: 0-600 viewport. Avoid spreading elements too far apart.
- L1:起始边距 从x=40,y=40开始定位元素。
- L2:元素间距 相连形状之间保持40-60px的间隙;组与组之间的路由通道保持150-200px的间距。
- L3:紧凑布局 使用垂直堆叠或网格布局。将元素限制在x:0-800,y:0-600的视口范围内,避免元素过于分散。
Edge Routing Rules — CRITICAL for Clean Diagrams
连接线路由规则——对清晰图表至关重要
- E1: No Shared Paths Multiple edges between same nodes must use DIFFERENT exit/entry positions (and
exitY=0.3, NOT both 0.5).exitY=0.7 - E2: Bidirectional Use Opposite Sides A→B: ,
exitX=1. B→A:entryX=0,exitX=0.entryX=1 - E3: Explicit Exit/Entry Points Every edge should specify: ,
exitX,exitY,entryXin style.entryY - E4: Route Around Obstacles If any shape is between source and target, let draw.io auto-route with . Do NOT use
edgeStyle=orthogonalEdgeStylewaypoints.<Array> - E5: Plan Layout First Organize shapes into columns/rows. Trace each edge mentally: "What shapes are between source and target?"
- E6: Natural Connection Points NEVER use corners (). Top-to-bottom:
entryX=1,entryY=1,exitY=1. Left-to-right:entryY=0,exitX=1.entryX=0 - E7: Diagonal Routing Principle When connecting distant nodes diagonally, route along the PERIMETER of the diagram, NOT through the middle where other shapes exist.
- E1:避免路径重叠 同一节点间的多条连接线必须使用不同的出口/入口位置(如和
exitY=0.3,而非都用0.5)。exitY=0.7 - E2:双向连接使用相对侧 A→B:,
exitX=1。B→A:entryX=0,exitX=0。entryX=1 - E3:明确出口/入口点 每条连接线都应在样式中指定:、
exitX、exitY、entryX。entryY - E4:绕过障碍物路由 如果源节点和目标节点之间有其他形状,让draw.io使用自动路由。不要使用
edgeStyle=orthogonalEdgeStyle路径点。<Array> - E5:先规划布局 将形状组织成列/行。在脑海中追踪每条连接线:“源节点和目标节点之间有哪些形状?”
- E6:使用自然连接点 绝不要使用角落(如)。上下连接:
entryX=1,entryY=1,exitY=1。左右连接:entryY=0,exitX=1。entryX=0 - E7:对角线路由原则 连接远距离节点时,沿图表外围路由,而非穿过中间有其他形状的区域。
Pre-Generation Checklist
生成前检查清单
- Do any edges cross over non-source/target shapes? → Rearrange layout
- Do any two edges share the same path? → Adjust exit/entry points
- Are any connections at corners? → Use edge centers instead
- Could rearranging shapes reduce crossings? → Revise layout
- 是否有连接线穿过非源/目标形状?→ 重新排列布局
- 是否有两条连接线路径重叠?→ 调整出口/入口点
- 是否有连接点在角落?→ 改用边的中心
- 重新排列形状能否减少交叉?→ 修改布局
Workflow
工作流
1. Understand the Request
1. 理解需求
Determine:
- Diagram type: Cloud architecture, microservices, network, UML, ERD, etc.
- Components: Systems, services, databases, actors involved
- Relationships: Connections (sync/async, data flow, dependencies)
If the user provides a file (PDF, DOCX, TXT, MD), read it and extract entities, relationships, and processes.
确定:
- 图表类型:云架构、微服务、网络、UML、ERD等
- 组件:涉及的系统、服务、数据库、角色
- 关系:连接方式(同步/异步、数据流、依赖关系)
如果用户提供文件(PDF、DOCX、TXT、MD),读取并提取实体、关系和流程。
2. Read the Prompt References
2. 阅读提示参考资料
Before generating, read these files for rules and styling guidance:
- — the master system prompt with all XML rules
references/drawio_system_prompt.txt - — professional colors by component type
references/color_palette.md - — quick-reference for mxGraph syntax
references/drawio_xml_rules.md
Also study as a structural reference.
assets/example_simple.drawio生成前,阅读以下文件获取规则和样式指导:
- — 包含所有XML规则的主系统提示
references/drawio_system_prompt.txt - — 按组件类型分类的专业配色方案
references/color_palette.md - — mxGraph语法速查手册
references/drawio_xml_rules.md
同时参考作为结构示例。
assets/example_simple.drawio3. Select Stencils (if applicable)
3. 选择模板(如适用)
If the diagram involves vendor-specific icons (AWS, Azure, GCP, Cisco, Kubernetes, etc.):
- Identify which stencil library to use from the table below
- Read the corresponding file for EXACT shape names
stencils/<category>.md - Note the required and recommended dimensions for each shape
fillColor
NEVER guess stencil names — always verify against the stencil file.
如果图表涉及厂商特定图标(AWS、Azure、GCP、Cisco、Kubernetes等):
- 从下表确定要使用的模板库
- 阅读对应的文件获取精确的形状名称
stencils/<category>.md - 记录每个形状所需的和推荐尺寸
fillColor
绝不猜测模板名称 — 务必对照模板文件验证。
4. Plan the Layout (Multi-Phase for Complex Diagrams)
4. 规划布局(复杂图表分阶段进行)
For diagrams with >15 components, use this phased approach:
- P1: Plan — Identify diagram type, choose canvas size, select stencil libraries. Plan element positions first, then derive zone boundaries.
- P2: Zones — Write zone/container cells FIRST in XML (drawio renders by document order). Solid fill: . Dashed border:
rounded=1;fillColor=#BAC8D3;strokeColor=none;opacity=60.rounded=1;dashed=1;dashPattern=8 8;fillColor=none;strokeColor=#0BA5C4 - P3: Elements — Position shapes on grid (multiples of 10/20). Keep consistent device style per stencil family.
- P4: Connections — Add edges last. Network links: . Data flow:
endArrow=none;endFill=0. Dashed for logical/VPN:endArrow=classic.dashed=1 - P5: Labels — Add floating text, legends. Verify every element has a or adjacent label.
value - P6: Chunking — When a diagram exceeds ~30 elements, split XML output into chunks.
对于包含>15个组件的图表,使用以下分阶段方法:
- P1:规划 — 确定图表类型,选择画布尺寸,选择模板库。先规划元素位置,再确定区域边界。
- P2:区域 — 先在XML中编写区域/容器单元格(draw.io按文档顺序渲染)。实色填充:。虚线边框:
rounded=1;fillColor=#BAC8D3;strokeColor=none;opacity=60。rounded=1;dashed=1;dashPattern=8 8;fillColor=none;strokeColor=#0BA5C4 - P3:元素 — 将形状定位在网格上(坐标为10/20的倍数)。同一模板系列的设备样式保持一致。
- P4:连接 — 最后添加连接线。网络链接:。数据流:
endArrow=none;endFill=0。逻辑/VPN连接用虚线:endArrow=classic。dashed=1 - P5:标签 — 添加浮动文本、图例。验证每个元素都有或相邻标签。
value - P6:分块 — 当图表超过~30个元素时,将XML输出拆分为多个块。
5. Generate the Draw.io XML
5. 生成Draw.io XML
Following the system prompt rules, generate the complete mxFile XML. Key rules:
- Use the exact root skeleton: →
<mxfile>→<diagram>→<mxGraphModel><root> - Always include and
<mxCell id="0"/><mxCell id="1" parent="0"/> - Shapes: with unique descriptive IDs
vertex="1" parent="1" - Edges: with valid
edge="1" parent="1"andsourcetarget - NEVER use elements — crashes draw.io
<Array> - Use color palette by component type
- Position shapes at grid multiples of 10 or 20
- Labels match the user's language
Save the XML to a file using .
.drawiowrite_to_file遵循系统提示规则,生成完整的mxFile XML。核心规则:
- 使用精确的根结构:→
<mxfile>→<diagram>→<mxGraphModel><root> - 必须包含和
<mxCell id="0"/><mxCell id="1" parent="0"/> - 形状:,使用唯一的描述性ID
vertex="1" parent="1" - 连接线:,包含有效的
edge="1" parent="1"和sourcetarget - 绝不能使用元素——会导致draw.io崩溃
<Array> - 按组件类型使用配色方案
- 将形状定位在10或20倍数的网格上
- 标签使用用户的语言
使用将XML保存为文件。
write_to_file.drawio6. Validate (ReAct Loop)
6. 验证(ReAct循环)
Run the validator script on the saved file:
bash
python .agent/skills/drawio-generator/scripts/validate_drawio.py <output_file.drawio>- If ✅ valid → proceed to step 7
- If ❌ errors → read the error messages, fix the XML, save again, re-validate
- Repeat until all checks pass
Common fixes:
- Duplicate IDs: Renumber cells sequentially
- Broken edges: Ensure source/target IDs exist as vertex cells
- Array elements: Remove children from edge geometries
<Array> - Malformed XML: Fix unclosed tags, unescape or
&in labels<
运行验证脚本检查保存的文件:
bash
python .agent/skills/drawio-generator/scripts/validate_drawio.py <output_file.drawio>- 如果✅ 验证通过 → 进入步骤7
- 如果❌ 有错误 → 阅读错误信息,修复XML,重新保存,再次验证
- 重复直到所有检查通过
常见修复:
- 重复ID:按顺序重新编号单元格
- 无效连接线:确保source/target ID对应存在的顶点单元格
- Array元素:移除edge geometries中的子元素
<Array> - 格式错误的XML:修复未闭合标签,转义标签中的或
&<
7. Deliver
7. 交付
Tell the user:
- Where the file was saved
.drawio - Brief design concept (what architectural decisions you made)
- How to open: draw.io desktop, app.diagrams.net, or VS Code Draw.io extension
告知用户:
- 文件的保存位置
.drawio - 简要设计思路(你做出的架构决策)
- 打开方式:draw.io桌面端、app.diagrams.net或VS Code Draw.io扩展
8. Iterative Refinement
8. 迭代优化
If the user wants changes to an existing diagram:
- Read the current file
.drawio - Modify the XML preserving existing IDs where possible
- Save, validate, and deliver the updated file
如果用户需要修改现有图表:
- 读取当前的文件
.drawio - 修改XML,尽可能保留现有ID
- 保存、验证并交付更新后的文件
Stencil Libraries
模板库
drawio provides 8900+ pre-built stencils across 48 categories. Full stencil reference: See files.
stencils/*.md| Category | Stencil File | Use Case |
|---|---|---|
| AWS | | AWS cloud architecture (1031 shapes) |
| Azure | | Azure cloud & enterprise architecture |
| GCP | | Google Cloud architecture |
| Cisco | | Network topology |
| Kubernetes | | Container orchestration |
| Network | | General network diagrams |
| Virtualization | | Infrastructure diagrams |
| Software | | Process & UI design |
| Hardware | | Data center & electrical |
| Office | | Business diagrams |
| Cloud (Other) | | Other cloud providers |
drawio提供48个分类的8900+预构建模板。完整模板参考:查看文件。
stencils/*.md| 分类 | 模板文件 | 使用场景 |
|---|---|---|
| AWS | | AWS云架构(1031个形状) |
| Azure | | Azure云与企业架构 |
| GCP | | Google Cloud架构 |
| Cisco | | 网络拓扑 |
| Kubernetes | | 容器编排 |
| Network | | 通用网络图表 |
| Virtualization | | 基础设施图表 |
| Software | | 流程与UI设计 |
| Hardware | | 数据中心与电气系统 |
| Office | | 业务图表 |
| Cloud (Other) | | 其他云提供商 |
Stencil Usage Example
模板使用示例
xml
<!-- Cisco router with label below -->
<mxCell id="router1" value="Core Router" style="shape=mxgraph.cisco.routers.router;html=1;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;labelPosition=center;align=center;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="78" height="53" as="geometry"/>
</mxCell>
<!-- AWS Lambda -->
<mxCell id="lambda1" value="Lambda" style="shape=mxgraph.aws4.lambda;html=1;fillColor=#ED7100;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="200" y="100" width="54" height="56" as="geometry"/>
</mxCell>
<!-- Kubernetes pod -->
<mxCell id="pod1" value="API Pod" style="shape=mxgraph.kubernetes.pod;html=1;fillColor=#326CE5;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="300" y="100" width="50" height="50" as="geometry"/>
</mxCell>xml
<!-- Cisco路由器,标签在下方 -->
<mxCell id="router1" value="核心路由器" style="shape=mxgraph.cisco.routers.router;html=1;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;labelPosition=center;align=center;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="78" height="53" as="geometry"/>
</mxCell>
<!-- AWS Lambda -->
<mxCell id="lambda1" value="Lambda" style="shape=mxgraph.aws4.lambda;html=1;fillColor=#ED7100;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="200" y="100" width="54" height="56" as="geometry"/>
</mxCell>
<!-- Kubernetes Pod -->
<mxCell id="pod1" value="API Pod" style="shape=mxgraph.kubernetes.pod;html=1;fillColor=#326CE5;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="300" y="100" width="50" height="50" as="geometry"/>
</mxCell>Common Shapes Reference
常用形状参考
Basic Shapes
基础形状
xml
<mxCell id="rect" value="Box" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="20" y="20" width="100" height="50" as="geometry"/></mxCell>
<mxCell id="rounded" value="Rounded" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="140" y="20" width="100" height="50" as="geometry"/></mxCell>
<mxCell id="circle" value="Circle" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="10" width="70" height="70" as="geometry"/></mxCell>
<mxCell id="db" value="Database" style="shape=cylinder;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="350" y="5" width="60" height="80" as="geometry"/></mxCell>
<mxCell id="cloud" value="Cloud" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="430" y="10" width="100" height="70" as="geometry"/></mxCell>xml
<mxCell id="rect" value="矩形" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="20" y="20" width="100" height="50" as="geometry"/></mxCell>
<mxCell id="rounded" value="圆角矩形" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="140" y="20" width="100" height="50" as="geometry"/></mxCell>
<mxCell id="circle" value="圆形" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="10" width="70" height="70" as="geometry"/></mxCell>
<mxCell id="db" value="数据库" style="shape=cylinder;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="350" y="5" width="60" height="80" as="geometry"/></mxCell>
<mxCell id="cloud" value="云" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="430" y="10" width="100" height="70" as="geometry"/></mxCell>Container / Swimlane
容器 / 泳道
xml
<!-- Swimlane with child elements (relative positioning) -->
<mxCell id="lane1" value="Frontend" style="swimlane;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="200" height="200" as="geometry"/></mxCell>
<mxCell id="step1" value="Step 1" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="lane1">
<mxGeometry x="20" y="60" width="160" height="40" as="geometry"/></mxCell>Note: Children use with coordinates RELATIVE to the swimlane. Edges always use .
parent="lane1"parent="1"xml
<!-- 包含子元素的泳道(相对定位) -->
<mxCell id="lane1" value="前端" style="swimlane;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="200" height="200" as="geometry"/></mxCell>
<mxCell id="step1" value="步骤1" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="lane1">
<mxGeometry x="20" y="60" width="160" height="40" as="geometry"/></mxCell>注意:子元素使用,坐标为相对于泳道的相对坐标。连接线始终使用。
parent="lane1"parent="1"Edge Patterns
连接线样式
xml
<!-- Basic directional edge -->
<mxCell style="edgeStyle=orthogonalEdgeStyle;endArrow=classic;html=1;" edge="1" parent="1" source="a" target="b">
<mxGeometry relative="1" as="geometry"/></mxCell>
<!-- Bidirectional: use different exit/entry Y positions -->
<mxCell id="e1" value="Request" style="edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.3;entryX=0;entryY=0.3;endArrow=classic;html=1;" edge="1" parent="1" source="nodeA" target="nodeB">
<mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2" value="Response" style="edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.7;entryX=1;entryY=0.7;endArrow=classic;html=1;" edge="1" parent="1" source="nodeB" target="nodeA">
<mxGeometry relative="1" as="geometry"/></mxCell>xml
<!-- 基础有向连接线 -->
<mxCell style="edgeStyle=orthogonalEdgeStyle;endArrow=classic;html=1;" edge="1" parent="1" source="a" target="b">
<mxGeometry relative="1" as="geometry"/></mxCell>
<!-- 双向连接:使用不同的Y轴出口/入口位置 -->
<mxCell id="e1" value="请求" style="edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.3;entryX=0;entryY=0.3;endArrow=classic;html=1;" edge="1" parent="1" source="nodeA" target="nodeB">
<mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2" value="响应" style="edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.7;entryX=1;entryY=0.7;endArrow=classic;html=1;" edge="1" parent="1" source="nodeB" target="nodeA">
<mxGeometry relative="1" as="geometry"/></mxCell>Common Style Reference
常用样式参考
- Arrow Types: Inheritance() Implementation(
endArrow=block;endFill=0) Association(endArrow=block;endFill=0;dashed=1) Dependency(endArrow=open;endFill=1) Aggregation(endArrow=open;dashed=1) Composition(startArrow=diamondThin;startFill=0)startArrow=diamondThin;startFill=1 - Shape Styles: (0,1)
rounded(hex)fillColor(hex)strokeColor(num)strokeWidth(0,1)dashed(0-100)opacity(hex)fontColor(num)fontSize(0=normal,1=bold,2=italic,3=both)fontStyle(left,center,right)align(top,middle,bottom)verticalAlign(0,1)shadow - Edge Styles: (orthogonalEdgeStyle,entityRelationEdgeStyle,elbowEdgeStyle)
edgeStyle(0,1)curved/endArrow(classic,block,open,oval,diamond,none)startArrow/endFill(0=hollow,1=filled)startFill - State Colors: Pending(,
#dae8fc) Success(#6c8ebf,#d5e8d4) Error(#82b366,#f8cecc) Warning(#b85450,#fff2cc) Complete(#d6b656,#e1d5e7)#9673a6
- 箭头类型:继承() 实现(
endArrow=block;endFill=0) 关联(endArrow=block;endFill=0;dashed=1) 依赖(endArrow=open;endFill=1) 聚合(endArrow=open;dashed=1) 组合(startArrow=diamondThin;startFill=0)startArrow=diamondThin;startFill=1 - 形状样式:(0,1)
rounded(十六进制)fillColor(十六进制)strokeColor(数字)strokeWidth(0,1)dashed(0-100)opacity(十六进制)fontColor(数字)fontSize(0=正常,1=粗体,2=斜体,3=粗斜体)fontStyle(left,center,right)align(top,middle,bottom)verticalAlign(0,1)shadow - 连接线样式:(orthogonalEdgeStyle,entityRelationEdgeStyle,elbowEdgeStyle)
edgeStyle(0,1)curved/endArrow(classic,block,open,oval,diamond,none)startArrow/endFill(0=空心,1=实心)startFill - 状态颜色:待处理(,
#dae8fc) 成功(#6c8ebf,#d5e8d4) 错误(#82b366,#f8cecc) 警告(#b85450,#fff2cc) 完成(#d6b656,#e1d5e7)#9673a6
Common Pitfalls
常见陷阱
| Issue | Solution |
|---|---|
| Shape not visible | Verify |
| Edge not connecting | Ensure |
| Styles not applying | Check semicolon separators in style string |
| Text not showing | Add |
| Stencil not rendering | Verify exact name in |
| Edges crossing shapes | Rearrange layout to minimize crossings |
| Multiple edges overlapping | Use different |
| Corner connections look ugly | Use edge centers instead ( |
| Diagram too spread out | Keep within x: 0-800, y: 0-600 viewport |
| XML crashes draw.io | Remove |
| 问题 | 解决方案 |
|---|---|
| 形状不可见 | 验证 |
| 连接线未连接 | 确保 |
| 样式未生效 | 检查样式字符串中的分号分隔符 |
| 文本未显示 | 在样式中添加 |
| 模板未渲染 | 验证 |
| 连接线穿过形状 | 重新排列布局以减少交叉 |
| 多条连接线重叠 | 使用不同的 |
| 角落连接不美观 | 改用边的中心(如 |
| 图表过于分散 | 将元素限制在x:0-800,y:0-600的视口范围内 |
| XML导致draw.io崩溃 | 移除 |
Tips for AI Generation
AI生成技巧
- Plan layout first: Sketch positions mentally before writing XML — identify potential edge crossings
- Use grid alignment: Position shapes at multiples of 10 or 20
- Unique IDs: Use descriptive IDs like ,
client,serverinstead of random stringsdb - Consistent spacing: Keep 40-60px gaps between connected shapes; 150-200px for routing channels
- Layer backgrounds first: Define zone/container cells before shapes inside them
- Color zones: Use light background colors with for region highlighting
strokeColor=none - Verify edges mentally: Before generating, trace each edge and ask "Does this cross any shape?"
- Escape special characters: Use for <,
<for >,>for &,&for ""
- 先规划布局:编写XML前在脑海中勾勒位置——识别潜在的连接线交叉
- 使用网格对齐:将形状定位在10或20倍数的坐标上
- 唯一ID:使用描述性ID如、
client、server而非随机字符串db - 一致间距:相连形状之间保持40-60px间隙;组间路由通道保持150-200px
- 先绘制背景层:先定义区域/容器单元格,再添加内部形状
- 区域配色:使用浅色背景色并设置突出显示区域
strokeColor=none - 预先验证连接线:生成前在脑海中追踪每条连接线,问“这条线会穿过其他形状吗?”
- 转义特殊字符:使用表示<,
<表示>,>表示&,&表示""
Files
文件说明
| Path | Purpose |
|---|---|
| XML validator — run after every generation |
| Master system prompt with all mxGraph rules |
| Quick-reference for XML syntax |
| Professional colors by component type |
| Working example for structural reference |
| Stencil libraries — 48 categories, 8900+ shapes |
| 路径 | 用途 |
|---|---|
| XML验证工具——每次生成后运行 |
| 包含所有mxGraph规则的主系统提示 |
| XML语法速查手册 |
| 按组件类型分类的专业配色方案 |
| 用于结构参考的可运行示例 |
| 模板库——48个分类,8900+个形状 |