在 SQL Server 中使用 XSD 结构文件生成 XML 输出

Generating XML output using XSD structure file in SQL Server

提问人:Ariox66 提问时间:1/31/2023 更新时间:1/31/2023 访问量:78

问:

我有一个非常复杂的 XSD 结构文件,它应该帮助我们在 XML 中生成报告,但是 XSD 很容易更改,并且必须不断更新基本代码。不知道有没有办法使用xsd文件本身生成XML输出?

XSD 有很多嵌套字段

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://-" " elementFormDefault="qualified" attributeFormDefault="unqualified" version="6-2">
<xs:include schemaLocation="--"/>
<xs:complexType name="Address_Structure">
    <xs:choice>
        <xs:element name="UnstructuredAddress" type="ns:UnstructuredAddress_Type"/>
        <xs:element name="StructuredAddress" type="ns:StructuredAddress_Type" minOccurs="2" maxOccurs="5"/>
    </xs:choice>
</xs:complexType>
<xs:complexType name="ClinicalActivity_AE_Structure">
    <xs:sequence>
        <xs:element name="ClinicalActivityGroupOPCS" type="ns:ClinicalActivityGroupOPCS_Type" minOccurs="0"/>
        <xs:element name="ClinicalActivityGroupREAD" type="ns:ClinicalActivityGroupREAD_Type" minOccurs="0"/>
        <xs:element name="ClinicalTreatmentGroupAandE" type="ns:ClinicalTreatmentGroupAAndE_Type" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="ClinicalActivity_Structure">
    <xs:sequence>
        <xs:element name="ClinicalActivityGroupOPCS" type="ns:ClinicalActivityGroupOPCS_Type" minOccurs="0"/>
        <xs:element name="ClinicalActivityGroupREAD" type="ns:ClinicalActivityGroupREAD_Type" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="ClinicalActivityGroupOPCS_Type">
    <xs:sequence>
        <xs:element name="ProcedureSchemeInUse" type="ns:ProcedureSchemeInUse_Type"/>
        <xs:element name="PrimaryProcedureGroupOPCS">
            <xs:complexType mixed="false">
                <xs:sequence>
                    <xs:element name="PrimaryProcedure_OPCS" type="ns:PrimaryProcedure_OPCS_Type"/>
                    <xs:element name="ProcedureDate" type="ns:ProcedureDate_Type" minOccurs="0"/>
                    <xs:element name="MainOperatingHCP" type="ns:ProfessionalsInvolved_Structure" minOccurs="0"/>
                    <xs:element name="ResponsibleAnaesthetist" type="ns:ProfessionalsInvolved_Structure" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="SecondaryProcedureGroupOPCS" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType mixed="false">
                <xs:sequence>
                    <xs:element name="SecondaryProcedure_OPCS" type="ns:Procedure_OPCS_Type"/>
                    <xs:element name="ProcedureDate" type="ns:ProcedureDate_Type" minOccurs="0"/>
                    <xs:element name="MainOperatingHCP" type="ns:ProfessionalsInvolved_Structure" minOccurs="0"/>
                    <xs:element name="ResponsibleAnaesthetist" type="ns:ProfessionalsInvolved_Structure" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>
sql-server xsd xml 分析

评论

0赞 Sean Lange 1/31/2023
不知道你在这里是什么意思。你在寻找什么作为输出?
0赞 Ariox66 1/31/2023
假设我有一个查询,它返回了 xsd 上提到的所有字段,如何使用 XSD 文件生成 XML?
0赞 Ariox66 1/31/2023
@SeanLange发现:stackoverflow.com/questions/35198240/......它说,如果它使用混合/复杂元素,就不可能自动化它
0赞 jdweng 1/31/2023
该架构可用于生成 c# 类(使用 xsd.exe)。然后,您可以填充数据库中的类,并使用 xml 序列化创建一个 xml 文件。为了简化任务,数据库表的结构应与 c# 类相同。PowerShell 可以用作 c# 的替代方法。
0赞 Ariox66 1/31/2023
如果您能添加一个包含更多详细信息的答案,并可能添加一些链接让我走上正确的道路,@jdweng不胜感激?

答: 暂无答案