我经常通过转换遗留系统的专有数据模型来创建 XSD 模式。这效果很好。但是,遗留系统只允许我指定参数的非常基本的属性,例如数据类型(int
等string
)。
我想通过一种允许我添加元数据的机制来增强 XSL 转换,以便为转换提供更多详细信息。我想到了类似 Java 属性表示法来将属性分配给 XPath。
想象以下示例:
遗留系统数据模型(实际上很简洁,但最适合演示目的)
<datamodel>
<customer>
<firstName type="string"/>
<lastName type="string"/>
<age type="int">
<customer>
</datamodel>
元数据
customer/firstName/@nillable=false
customer/lastName/@nillable=false
customer/age/@nillable=true
customer/firstName/@minOccurs=1
customer/firstName/@maxOccurs=1
customer/lastName/@minOccurs=1
customer/lastName/@maxOccurs=1
生成的 XSD 架构
...
<xs:complexType name="customerType">
<xs:sequence>
<xs:element name="firstName" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1"/>
<xs:element name="lastName" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1"/>
<xs:element name="age" type="xs:int" nillable="true"/>
</xs:sequence>
</xs:complexType>
...
你对那个怎么想的?有没有办法将元数据包含到 XSL 样式表中?