<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Licensing on Formize.com 博客</title><link>https://blog.formize.com/zh/tags/licensing/</link><description>Recent content in Licensing on Formize.com 博客</description><generator>Hugo</generator><language>zh</language><atom:link href="https://blog.formize.com/zh/tags/licensing/index.xml" rel="self" type="application/rss+xml"/><item><title>使用 Formize 实现合成数据市场治理与许可自动化</title><link>https://blog.formize.com/zh/synthetic-data-marketplace-governance-and-licensing-automati/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.formize.com/zh/synthetic-data-marketplace-governance-and-licensing-automati/</guid><description>&lt;h1 id="使用-formize-实现合成数据市场治理与许可自动化">使用 Formize 实现合成数据市场治理与许可自动化&lt;/h1>
&lt;p>合成数据已经从研究兴趣转变为商业商品。企业现在购买和出售合成数据集，用于训练 AI 模型、测试自动化系统或补充稀缺的真实数据。虽然市场前景巨大，但快速增长也带来了三大交织的挑战：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>许可合规&lt;/strong> – 买方必须遵守使用限制、署名条款和再分发限制。&lt;/li>
&lt;li>&lt;strong>隐私与监管可审计性&lt;/strong> – 合成数据必须能够明确证明不含个人标识信息，并符合 &lt;a href="https://gdpr.eu/" target="_blank" rel="noreferrer nofollow">GDPR&lt;/a>、&lt;a href="https://oag.ca.gov/privacy/ccpa" target="_blank" rel="noreferrer nofollow">CCPA&lt;/a> 或行业特定法规。&lt;/li>
&lt;li>&lt;strong>溯源与质量保证&lt;/strong> – 每个数据集都需要防篡改的血缘信息，追溯到生成管道、模型版本和同意文档。&lt;/li>
&lt;/ol>
&lt;p>传统的手工流程——PDF 合同、基于电子表格的使用日志以及临时审计——无法扩展。Formize 作为低代码、AI‑ready 工作流平台，提供了一种 &lt;strong>自动化整个治理生命周期&lt;/strong> 的方式，同时保持系统可审计、可扩展且安全。&lt;/p>
&lt;p>下面我们将逐步介绍参考架构、工作流步骤、实现细节以及可预期的量化影响。&lt;/p>
&lt;hr>
&lt;h2 id="1-为什么需要专门的治理层">1. 为什么需要专门的治理层&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>痛点&lt;/th>
 &lt;th>业务影响&lt;/th>
 &lt;th>典型手动解决方案&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>许可证违规&lt;/strong>&lt;/td>
 &lt;td>罚款、声誉受损、合作伙伴信任流失&lt;/td>
 &lt;td>每季度手动审查合同&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>监管审计&lt;/strong>&lt;/td>
 &lt;td>可能的执法行动、数据主体权利请求&lt;/td>
 &lt;td>基于电子表格的数据映射，易遗漏&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>溯源缺失&lt;/strong>&lt;/td>
 &lt;td>无法复现模型性能、失去科研可信度&lt;/td>
 &lt;td>邮件线程、分散在各团队的版本控制笔记&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>这些痛点的共同点在于：&lt;strong>以人为中心的流程易出错且成本高&lt;/strong>。Formize 的可视化工作流引擎、对 LLM 的原生集成以及不可变审计日志功能，使得 &lt;strong>零接触治理模型&lt;/strong> 成为可能。&lt;/p>
&lt;hr>
&lt;h2 id="2-高层架构">2. 高层架构&lt;/h2>
&lt;pre class="mermaid">
 flowchart TD
 A[&amp;#34;Data Provider Portal&amp;#34;] --&amp;gt; B[&amp;#34;Formize Ingestion Service&amp;#34;]
 B --&amp;gt; C[&amp;#34;Synthetic Data Generator (LLM / GAN)&amp;#34;]
 C --&amp;gt; D[&amp;#34;Metadata Enrichment Engine&amp;#34;]
 D --&amp;gt; E[&amp;#34;Formize Licensing Engine&amp;#34;]
 E --&amp;gt; F[&amp;#34;Marketplace Catalog&amp;#34;]
 F --&amp;gt; G[&amp;#34;Buyer Access Layer&amp;#34;]
 G --&amp;gt; H[&amp;#34;Usage Monitoring Service&amp;#34;]
 H --&amp;gt; I[&amp;#34;Compliance &amp;amp; Audit Store&amp;#34;]
 I --&amp;gt; J[&amp;#34;Regulatory Reporting Dashboard&amp;#34;]
 style A fill:#f9f,stroke:#333,stroke-width:2px
 style J fill:#bbf,stroke:#333,stroke-width:2px
&lt;/pre>
&lt;ul>
&lt;li>&lt;strong>Data Provider Portal&lt;/strong> – 数据所有者上传源数据集、同意文档并定义许可模板的 UI。&lt;/li>
&lt;li>&lt;strong>Formize Ingestion Service&lt;/strong> – 低代码 API，负责验证上传、提取元数据并触发下游管道。&lt;/li>
&lt;li>&lt;strong>Synthetic Data Generator&lt;/strong> – 任意模型（Diffusion、GAN、LLM）生成合成输出。&lt;/li>
&lt;li>&lt;strong>Metadata Enrichment Engine&lt;/strong> – 附加生成参数、模型版本和隐私风险分数。&lt;/li>
&lt;li>&lt;strong>Formize Licensing Engine&lt;/strong> – 根据提供者策略动态创建智能许可合约（JSON‑LD）。&lt;/li>
&lt;li>&lt;strong>Marketplace Catalog&lt;/strong> – 可搜索的索引，展示带有溯源令牌的数据集。&lt;/li>
&lt;li>&lt;strong>Buyer Access Layer&lt;/strong> – 实时强制执行许可条款的认证 API。&lt;/li>
&lt;li>&lt;strong>Usage Monitoring Service&lt;/strong> – 将下载、查询和推理事件流式写入账本。&lt;/li>
&lt;li>&lt;strong>Compliance &amp;amp; Audit Store&lt;/strong> – 不可变、防篡改的存储（如追加式云桶 + 区块链哈希锚定）。&lt;/li>
&lt;li>&lt;strong>Regulatory Reporting Dashboard&lt;/strong> – 为审计员、数据保护官和高层管理者提供的可视化界面。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="3-formize-中的端到端工作流">3. Formize 中的端到端工作流&lt;/h2>
&lt;h3 id="31-提供者入驻">3.1 提供者入驻&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Formize Form Builder&lt;/strong> 创建一个 “Synthetic Data Offer” 模板，捕获：
&lt;ul>
&lt;li>数据集描述&lt;/li>
&lt;li>允许的使用场景（训练、验证、研究）&lt;/li>
&lt;li>最大下载量&lt;/li>
&lt;li>署名要求&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>提供者填写表单；Formize 使用 LLM 驱动的条款提取器验证同意文件。&lt;/li>
&lt;li>验证成功后，Formize 将同意包存入加密桶，并生成 &lt;strong>数据集 ID（UUID）&lt;/strong>。&lt;/li>
&lt;/ol>
&lt;h3 id="32-自动生成与溯源捕获">3.2 自动生成与溯源捕获&lt;/h3>
&lt;ol>
&lt;li>入库触发器通过 webhook 调用 &lt;strong>Synthetic Data Generator&lt;/strong>。&lt;/li>
&lt;li>生成器返回：
&lt;ul>
&lt;li>合成文件（CSV、Parquet、图像、音频）&lt;/li>
&lt;li>生成元数据（模型哈希、种子、超参数）&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Formize 的 &lt;strong>Metadata Enrichment&lt;/strong> 步骤计算：
&lt;ul>
&lt;li>使用差分隐私估算器得到的 &lt;strong>隐私风险分数&lt;/strong>。&lt;/li>
&lt;li>&lt;strong>质量指标&lt;/strong>（分布相似度、效用分数）。&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>所有元数据使用市场运营者的 &lt;strong>私钥&lt;/strong> 签名，并与数据集一起存储。&lt;/li>
&lt;/ol>
&lt;h3 id="34-许可发行">3.4 许可发行&lt;/h3>
&lt;ol>
&lt;li>Formize 的 &lt;strong>Licensing Engine&lt;/strong> 读取提供者的策略，自动生成 &lt;strong>机器可读许可&lt;/strong>（JSON‑LD），包括：
&lt;ul>
&lt;li>数据集 ID&lt;/li>
&lt;li>允许的操作&lt;/li>
&lt;li>到期日期&lt;/li>
&lt;li>使用配额&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>许可的哈希被锚定到 &lt;strong>公共区块链&lt;/strong>（如 Polygon），实现不可否认性。&lt;/li>
&lt;/ol>
&lt;h3 id="35-买方交互">3.5 买方交互&lt;/h3>
&lt;ol>
&lt;li>买方在 &lt;strong>Marketplace Catalog&lt;/strong> 中浏览；每个条目显示由 Formize 渲染的 &lt;strong>许可摘要卡&lt;/strong>。&lt;/li>
&lt;li>点击 “Request Access” 时，Formize 展示完整许可并捕获买方的数字签名。&lt;/li>
&lt;li>接受后，Formize 发放 &lt;strong>基于 JWT 的访问令牌&lt;/strong>，其中编码了许可约束。&lt;/li>
&lt;/ol>
&lt;h3 id="36-实时使用强制">3.6 实时使用强制&lt;/h3>
&lt;ol>
&lt;li>所有下载或查询 API 调用均经过 &lt;strong>Buyer Access Layer&lt;/strong>。&lt;/li>
&lt;li>Formize 的 &lt;strong>Policy Engine&lt;/strong>（兼容 OPA）评估 JWT 与许可的匹配度：
&lt;ul>
&lt;li>若配额已用完 → 返回 “License limit reached”。&lt;/li>
&lt;li>若检测到禁止的使用场景 → 返回 “Violation of terms”。&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>所有事件被流式写入 &lt;strong>Usage Monitoring Service&lt;/strong>（Kafka 或 Pub/Sub）。&lt;/li>
&lt;/ol>
&lt;h3 id="37-审计与报告">3.7 审计与报告&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Compliance &amp;amp; Audit Store&lt;/strong> 为每条事件生成不可变日志条目，内容包括：
&lt;ul>
&lt;li>时间戳&lt;/li>
&lt;li>买方 ID&lt;/li>
&lt;li>执行的操作&lt;/li>
&lt;li>许可哈希&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Formize 自动生成 &lt;strong>监管报告&lt;/strong>（如 GDPR DPIA、CCPA 请求日志），并按计划发布。&lt;/li>
&lt;li>审计员可在仪表盘查询、查看加密证明，并导出 &lt;strong>合规包&lt;/strong>（PDF/JSON）。&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="4-技术深潜--在-formize-中构建工作流">4. 技术深潜 – 在 Formize 中构建工作流&lt;/h2>
&lt;h3 id="41-低代码表单构建">4.1 低代码表单构建&lt;/h3>



&lt;div class="goat svg-container ">
 
 &lt;svg
 xmlns="http://www.w3.org/2000/svg"
 font-family="Menlo,Lucida Console,monospace"
 
 viewBox="0 0 680 137"
 >
 &lt;g transform='translate(8,16)'>
&lt;text text-anchor='middle' x='0' y='4' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='0' y='116' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='8' y='4' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='16' y='4' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='16' y='20' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='16' y='36' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='16' y='52' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='16' y='68' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='16' y='84' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='16' y='100' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='24' y='4' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='24' y='20' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='24' y='36' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='24' y='52' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='24' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='24' y='84' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='24' y='100' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='32' y='20' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='32' y='36' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='32' y='52' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='32' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='32' y='84' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='32' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='40' y='4' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='40' y='20' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='40' y='36' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='40' y='52' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='40' y='68' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='40' y='84' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='40' y='100' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='48' y='4' fill='currentColor' style='font-size:1em'>S&lt;/text>
&lt;text text-anchor='middle' x='48' y='20' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='48' y='36' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='48' y='52' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='48' y='68' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='48' y='84' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='48' y='100' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='56' y='4' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='64' y='4' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='64' y='20' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='36' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='52' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='84' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='64' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='72' y='4' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='72' y='20' fill='currentColor' style='font-size:1em'>D&lt;/text>
&lt;text text-anchor='middle' x='72' y='36' fill='currentColor' style='font-size:1em'>D&lt;/text>
&lt;text text-anchor='middle' x='72' y='52' fill='currentColor' style='font-size:1em'>S&lt;/text>
&lt;text text-anchor='middle' x='72' y='68' fill='currentColor' style='font-size:1em'>A&lt;/text>
&lt;text text-anchor='middle' x='72' y='84' fill='currentColor' style='font-size:1em'>M&lt;/text>
&lt;text text-anchor='middle' x='72' y='100' fill='currentColor' style='font-size:1em'>A&lt;/text>
&lt;text text-anchor='middle' x='80' y='4' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='80' y='20' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='80' y='36' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='80' y='52' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='80' y='68' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='80' y='84' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='80' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='88' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='88' y='20' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='88' y='36' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='88' y='52' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='88' y='68' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='88' y='84' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='88' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='96' y='4' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='96' y='20' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='96' y='36' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='96' y='52' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='96' y='68' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='96' y='100' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='104' y='4' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='104' y='20' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='104' y='36' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='104' y='52' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='104' y='68' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='104' y='84' fill='currentColor' style='font-size:1em'>D&lt;/text>
&lt;text text-anchor='middle' x='104' y='100' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='4' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='112' y='20' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='36' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='112' y='52' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='112' y='84' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='112' y='100' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='120' y='20' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='120' y='36' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='120' y='68' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='120' y='84' fill='currentColor' style='font-size:1em'>w&lt;/text>
&lt;text text-anchor='middle' x='120' y='100' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='128' y='4' fill='currentColor' style='font-size:1em'>D&lt;/text>
&lt;text text-anchor='middle' x='128' y='36' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='128' y='52' fill='currentColor' style='font-size:1em'>C&lt;/text>
&lt;text text-anchor='middle' x='128' y='84' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='128' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='136' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='136' y='20' fill='currentColor' style='font-size:1em'>N&lt;/text>
&lt;text text-anchor='middle' x='136' y='36' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='136' y='52' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='136' y='68' fill='currentColor' style='font-size:1em'>U&lt;/text>
&lt;text text-anchor='middle' x='136' y='84' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='136' y='100' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='144' y='4' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='144' y='20' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='144' y='36' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='144' y='52' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='144' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='144' y='84' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='144' y='100' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='152' y='4' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='152' y='20' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='152' y='36' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='152' y='52' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='152' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='152' y='84' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='152' y='100' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='160' y='20' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='36' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='160' y='52' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='160' y='84' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='168' y='4' fill='currentColor' style='font-size:1em'>O&lt;/text>
&lt;text text-anchor='middle' x='168' y='20' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='168' y='52' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='168' y='68' fill='currentColor' style='font-size:1em'>C&lt;/text>
&lt;text text-anchor='middle' x='168' y='84' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='168' y='100' fill='currentColor' style='font-size:1em'>T&lt;/text>
&lt;text text-anchor='middle' x='176' y='4' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='176' y='36' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='52' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='176' y='68' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='176' y='84' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='176' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='4' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='184' y='20' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='184' y='36' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='184' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='184' y='100' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='4' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='192' y='20' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='192' y='36' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='192' y='52' fill='currentColor' style='font-size:1em'>P&lt;/text>
&lt;text text-anchor='middle' x='192' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='192' y='84' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='192' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='4' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='200' y='20' fill='currentColor' style='font-size:1em'>q&lt;/text>
&lt;text text-anchor='middle' x='200' y='36' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='200' y='52' fill='currentColor' style='font-size:1em'>D&lt;/text>
&lt;text text-anchor='middle' x='200' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='200' y='84' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='200' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='4' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='20' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='208' y='36' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='208' y='52' fill='currentColor' style='font-size:1em'>F&lt;/text>
&lt;text text-anchor='middle' x='208' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='208' y='84' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='216' y='20' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='216' y='36' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='216' y='52' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='216' y='84' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='216' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='224' y='4' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='224' y='20' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='224' y='36' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='68' fill='currentColor' style='font-size:1em'>m&lt;/text>
&lt;text text-anchor='middle' x='224' y='84' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='224' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='232' y='20' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='232' y='36' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='232' y='52' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='232' y='68' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='232' y='84' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='232' y='100' fill='currentColor' style='font-size:1em'>x&lt;/text>
&lt;text text-anchor='middle' x='240' y='20' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='240' y='52' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='240' y='68' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='240' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='248' y='52' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='248' y='68' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='248' y='84' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='248' y='100' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='256' y='52' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='256' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='256' y='84' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='256' y='100' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='264' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='264' y='84' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='264' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='272' y='52' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='272' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='272' y='84' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='272' y='100' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='280' y='52' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='280' y='68' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='280' y='84' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='288' y='52' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='288' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='288' y='84' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='288' y='100' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='296' y='52' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='296' y='68' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='296' y='84' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='296' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='304' y='52' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='304' y='68' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='304' y='84' fill='currentColor' style='font-size:1em'>=&lt;/text>
&lt;text text-anchor='middle' x='304' y='100' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='312' y='52' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='312' y='84' fill='currentColor' style='font-size:1em'>1&lt;/text>
&lt;text text-anchor='middle' x='312' y='100' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='320' y='52' fill='currentColor' style='font-size:1em'>=&lt;/text>
&lt;text text-anchor='middle' x='320' y='68' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='320' y='84' fill='currentColor' style='font-size:1em'>0&lt;/text>
&lt;text text-anchor='middle' x='320' y='100' fill='currentColor' style='font-size:1em'>u&lt;/text>
&lt;text text-anchor='middle' x='328' y='52' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='328' y='68' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='328' y='84' fill='currentColor' style='font-size:1em'>0&lt;/text>
&lt;text text-anchor='middle' x='328' y='100' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='336' y='52' fill='currentColor' style='font-size:1em'>.&lt;/text>
&lt;text text-anchor='middle' x='336' y='68' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='336' y='84' fill='currentColor' style='font-size:1em'>0&lt;/text>
&lt;text text-anchor='middle' x='336' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='344' y='52' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='344' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='344' y='100' fill='currentColor' style='font-size:1em'>=&lt;/text>
&lt;text text-anchor='middle' x='352' y='52' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='352' y='68' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='352' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='360' y='52' fill='currentColor' style='font-size:1em'>f&lt;/text>
&lt;text text-anchor='middle' x='360' y='68' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='360' y='100' fill='currentColor' style='font-size:1em'>G&lt;/text>
&lt;text text-anchor='middle' x='368' y='52' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='368' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='368' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='376' y='68' fill='currentColor' style='font-size:1em'>=&lt;/text>
&lt;text text-anchor='middle' x='376' y='100' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='384' y='68' fill='currentColor' style='font-size:1em'>[&lt;/text>
&lt;text text-anchor='middle' x='384' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='392' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='392' y='100' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='400' y='68' fill='currentColor' style='font-size:1em'>T&lt;/text>
&lt;text text-anchor='middle' x='400' y='100' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='408' y='68' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='408' y='100' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='416' y='68' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='416' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='424' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='424' y='100' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='432' y='68' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='440' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='440' y='100' fill='currentColor' style='font-size:1em'>b&lt;/text>
&lt;text text-anchor='middle' x='448' y='68' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='448' y='100' fill='currentColor' style='font-size:1em'>y&lt;/text>
&lt;text text-anchor='middle' x='456' y='68' fill='currentColor' style='font-size:1em'>g&lt;/text>
&lt;text text-anchor='middle' x='464' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='464' y='100' fill='currentColor' style='font-size:1em'>{&lt;/text>
&lt;text text-anchor='middle' x='472' y='68' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='472' y='100' fill='currentColor' style='font-size:1em'>p&lt;/text>
&lt;text text-anchor='middle' x='480' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='480' y='100' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='488' y='68' fill='currentColor' style='font-size:1em'>V&lt;/text>
&lt;text text-anchor='middle' x='488' y='100' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='496' y='68' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='496' y='100' fill='currentColor' style='font-size:1em'>v&lt;/text>
&lt;text text-anchor='middle' x='504' y='68' fill='currentColor' style='font-size:1em'>l&lt;/text>
&lt;text text-anchor='middle' x='504' y='100' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='512' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='512' y='100' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='520' y='68' fill='currentColor' style='font-size:1em'>d&lt;/text>
&lt;text text-anchor='middle' x='520' y='100' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='528' y='68' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='528' y='100' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='536' y='68' fill='currentColor' style='font-size:1em'>t&lt;/text>
&lt;text text-anchor='middle' x='536' y='100' fill='currentColor' style='font-size:1em'>}&lt;/text>
&lt;text text-anchor='middle' x='544' y='68' fill='currentColor' style='font-size:1em'>i&lt;/text>
&lt;text text-anchor='middle' x='544' y='100' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='552' y='68' fill='currentColor' style='font-size:1em'>o&lt;/text>
&lt;text text-anchor='middle' x='560' y='68' fill='currentColor' style='font-size:1em'>n&lt;/text>
&lt;text text-anchor='middle' x='568' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='576' y='68' fill='currentColor' style='font-size:1em'>,&lt;/text>
&lt;text text-anchor='middle' x='584' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='592' y='68' fill='currentColor' style='font-size:1em'>R&lt;/text>
&lt;text text-anchor='middle' x='600' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='608' y='68' fill='currentColor' style='font-size:1em'>s&lt;/text>
&lt;text text-anchor='middle' x='616' y='68' fill='currentColor' style='font-size:1em'>e&lt;/text>
&lt;text text-anchor='middle' x='624' y='68' fill='currentColor' style='font-size:1em'>a&lt;/text>
&lt;text text-anchor='middle' x='632' y='68' fill='currentColor' style='font-size:1em'>r&lt;/text>
&lt;text text-anchor='middle' x='640' y='68' fill='currentColor' style='font-size:1em'>c&lt;/text>
&lt;text text-anchor='middle' x='648' y='68' fill='currentColor' style='font-size:1em'>h&lt;/text>
&lt;text text-anchor='middle' x='656' y='68' fill='currentColor' style='font-size:1em'>"&lt;/text>
&lt;text text-anchor='middle' x='664' y='68' fill='currentColor' style='font-size:1em'>]&lt;/text>
&lt;/g>

 &lt;/svg>
 
&lt;/div>
&lt;blockquote>
&lt;p>以上示例展示了 Formize 的声明式 DSL，代码保持原样。&lt;/p></description></item></channel></rss>