content 创建 Draw.io (XML) 图表的提示词

请为 content 创建一个专业、美观的 Draw.io 图表,并输出为完整的 XML 格式(包裹在 <mxfile><diagram> 标签内)。图表需严格遵循以下设计规范和结构:

1. mxfile 基础结构规范

  • 文件格式: 生成一个完整的 .drawio 文件内容的 XML 结构。根节点应为 <mxfile>,包含一个 <diagram>
  • 图表模型:<diagram> 内部,使用 <mxGraphModel> 定义图表。
    • 画布属性: 设置 grid="1", gridSize="10", guides="1", tooltips="1", connect="1", arrows="1", fold="1", page="1", pageScale="1", pageWidth="1200", pageHeight="800"
    • 背景色: 设置 <mxGraphModel>background 属性为 #f8f9fa 或其他指定的浅灰色系。
  • 根元素: <mxGraphModel> 内必须包含 <root> 元素,其中包含 <mxCell id="0" /><mxCell id="1" parent="0" /> 作为默认的根图层和主图层。所有图表元素都应以 id="1"mxCell 为父级(或嵌套在其中的其他元素下)。

2. 视觉风格与 mxCell 样式映射

所有视觉样式都通过 <mxCell>style 属性(一个由分号分隔的键值对字符串)来定义。

  • 标题:
    • 实现: 创建一个独立的 <mxCell>
    • style: `text;html=1;align=center;verticalAlign=middle;fontSize=28;fontStyle=1;fontColor=#1a1a1a;` (fontStyle=1 代表粗体)。
  • 主要模块 (形状):
    • 实现: 使用 <mxCell> 定义形状。
    • style: `shape=rectangle;rounded=1;arcSize=15;whiteSpace=wrap;html=1;align=center;verticalAlign=top;spacingTop=10;fillColor=[[color]];strokeColor=none;opacity=90;`
      • arcSize=15 对应 SVG 的 rx="15"
      • fillColor 从下面的配色方案中选取。
      • verticalAlign=topspacingTop=10 为模块内标题留出空间。
  • 配色方案 (用于 fillColor, strokeColor, fontColor):
    • 蓝色系: #A5B4FC, #93C5FD, #A7D7C5
    • 绿色系: #A7F3D0, #BBF7D0, #D1FAE5
    • 紫色系: #C4B5FD, #D8B4FE, #E9D5FF
    • 橙色系: #FDE68A, #FED7AA, #FFE4E1
    • 红色系: #FECACA, #FBCFE8, #F9A8D4
    • 中性色: #94A3B8, #A1A1AA, #D1D5DB

3. 文字层级与样式

文字通常作为 <mxCell>value 属性存在,其样式在 style 字符串中定义。

  • 模块标题: fontSize=18;fontStyle=1;fontColor=#FFFFFF; (如果背景深) 或 fontColor=#333333; (如果背景浅)。通常与模块形状的 style 合并。
  • 主要内容: fontSize=13;fontStyle=0;
  • 次要说明: fontSize=11;
  • 注释文字: fontSize=10;fontColor=#6B7280;
  • 文本换行: 确保所有包含多行文本的 style 中包含 `whiteSpace=wrap;html=1;`

4. 布局与连接线原则

布局通过每个 <mxCell> 内的 <mxGeometry x="..." y="..." width="..." height="..." as="geometry" /> 标签来精确控制。

  • 模块化布局:
    • 对齐与边距: 通过精确计算 xy 坐标,确保同层模块间距一致。
    • 分组/嵌套: 要将模块 1, 2, 3 归入分类 A,应创建一个大的 <mxCell> 作为容器 A,然后将模块 1, 2, 3<mxCell>parent 属性设置为容器 Aid。容器 A 可以设置一个半透明的背景色或仅作为逻辑分组。
  • 连线 (Edges):
    • 实现: 创建一个独立的 <mxCell>,并设置 edge=1 属性,同时定义 source="[source_id]"target="[target_id]" 属性来连接两个模块。
    • style: `edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;strokeWidth=2;strokeColor=#94A3B8;`
    • 箭头: endArrow=classic 是标准箭头。避免使用过大的箭头,strokeWidth 保持在 1-3 之间。
    • 连线文本: 将文本作为连线 <mxCell>value
    • 避免交叉: 仔细规划 sourcePointtargetPoint,或使用 edgeStyle=orthogonalEdgeStyle 配合 <Array as="points"><mxPoint x="..." y="..."/></Array> 来定义路径点,绕开其他元素。

5. 内容呈现决策指南 (逻辑不变,实现方式调整)

此部分逻辑与 SVG 版本完全相同,仅在实现上转变为操作 Draw.io 的 mxCell 对象。

  1. 整体概览/生态系统类: 中心 mxCell + 周围辐射连接的 mxCell
  2. 时间演进/发展历程类: 在水平或垂直方向上对齐一系列 mxCell,用带箭头的 Edge 连接。
  3. 多方案对比/选型类: 并列放置多个容器 mxCell,每个容器内放置特性描述。
  4. 流程步骤/工作流类: 使用带箭头的 Edge 线性或分支连接 mxCell
  5. 层次结构/依赖关系类: 使用父子嵌套或用 Edge 连接来表示层级和依赖。
  6. 矩阵分类/多维度类:mxCell 放置在精确的 x, y 网格位置上。

6. 设计原则总结 (核心思想)

  • 形式服务内容: 分析 content 后选择最合适的布局模式。
  • 视觉一致性: 严格复用预设的颜色和样式字符串。
  • 信息层级: 通过 fontSize, fontStylefillColor 的深浅来区分主次信息。
  • 结构清晰: 善用容器 mxCell (父子关系) 和 edge (连接关系) 来表达信息的内在结构。

content如下: