如何从Codefluent CFP文件创建和XSD架构文件?

时间:2017-08-05 02:55:44

标签: xsd codefluent altova

我正在开发一个项目,该项目使用Codefluent实体来定义应用程序的架构并生成SQL数据库,类库,网页和winforms。还使用了Altova XmlSpy产品。

我试图找出如何从Codefluent模型中提取Codefluent模型的XSD架构表示,以便它可以与Altova的XmlStyleVision一起使用。

在Softfluent的文档https://www.softfluent.com/documentation/CF_Tools_Builder.html中,有一个编译选项“/ ExtractSchema”,但它创建了5000行属性和枚举,并且不包含任何与数据模型相关的内容。

非常感谢任何想法或建议!

1 个答案:

答案 0 :(得分:1)

/ExtractSchema提取xsd以创建CodeFluent实体模型。例如,这允许您在Visual Studio中进行自动完成。此架构与您的模型无关,而不是您想要的。

为您的模型生成架构的最简单方法是创建模板并将Template Producer添加到模型中。首先,创建一个文件夹并添加一个名为[Template]schema.xsd的文件(必须以[Template]为前缀)。我不知道Altova的XmlStyleVision需要什么,但以下模板应该是一个好的开始。

[%@ namespace name="CodeFluent.Model"%]
[%@ namespace name="CodeFluent.Model.Persistence"%]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
[%foreach (Entity e in Producer.Project.Entities)
{%]
    <xs:element name="[%= e.Name %]">
        <xs:complexType>
            <xs:sequence>
            [%foreach (Property p in e.Properties) { %]      
                <xs:element name="[%= p.Name %]" type="xs:string" />
            [% } %]                    
            </xs:sequence>
        </xs:complexType>
    </xs:element>
[% } %]
</xs:schema>

最后,将模板生成器添加到模型中:https://www.softfluent.com/documentation/TemplateProducers_TemplateProducer.html

现在,在构建模型时将生成xsd文件。