如何在C#.Net中使用XSD文件构建XML

时间:2012-03-26 21:32:23

标签: asp.net-mvc-3 c#-4.0 xmlhttprequest xsd linq-to-xsd

您好我有一个XSD文件,解释了我必须使用的必填字段。

使用该XSD架构,我必须构建和XML请求并路由到第三方服务提供商,一旦我的XML请求得到验证,系统(第三方)将返回响应,并且我必须再次阅读该XML响应并完成逻辑实现的其余部分。

我不知道从哪里开始使用此XSD构建XML

任何人都可以将我指向正确的位置或提供某些我可以用来使用XSD构建XML的示例

这是我的XSD的一部分

    <?xml version="1.0" encoding="utf-8"?>
   <xs:schema xmlns="http://www.ncpdp.org/schema/SCRIPT" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ncpdp.org/schema/SCRIPT" elementFormDefault="qualified">
        <!-- Message -->
        <xs:element name="Message" type="MessageType"/>
<xs:element name="RxHistoryRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:annotation>
                    <xs:documentation>UIH-020</xs:documentation>
                    <xs:documentation>UIH-030-1</xs:documentation>
                    <xs:documentation>PVD-P2</xs:documentation>
                </xs:annotation>
                <xs:element ref="RxReferenceNumber" minOccurs="0"/>
                <!--UIH.2.1-->
                <xs:element ref="PrescriberOrderNumber" minOccurs="0"/>
                <!--UIH.3.1-->
                <xs:element name="Pharmacy" type="OptionalPharmacyType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>PVD-P2</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--PVD-->
                <xs:element name="Prescriber" type="OptionalPrescriberType">
                    <xs:annotation>
                        <xs:documentation>PVD-PC</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--PVD-->
                <xs:element name="Patient" type="HistoryRequestPatientType">
                    <xs:annotation>
                        <xs:documentation>PTT</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--PTT-->
                <xs:element name="BenefitsCoordination" type="BenefitsCoordinationRequestType" maxOccurs="3">
                    <xs:annotation>
                        <xs:documentation>COO</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--COO-->
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="RxHistoryResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:annotation>
                    <xs:documentation>UIH-020</xs:documentation>
                    <xs:documentation>UIH-030-1</xs:documentation>
                    <xs:documentation>PVD-P2</xs:documentation>
                </xs:annotation>
                <xs:element ref="RxReferenceNumber" minOccurs="0"/>
                <!--UIH.2.1-->
                <xs:element ref="PrescriberOrderNumber" minOccurs="0"/>
                <!--UIH.3.1-->
                <xs:element name="Response" type="HistoryResponseType">
                    <xs:annotation>
                        <xs:documentation>RES</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--RES-->
                <xs:element name="Pharmacy" type="OptionalPharmacyType" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>PVD-P2</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--PVD-->
                <xs:element name="Prescriber" type="HistoryPrescriberType">
                    <xs:annotation>
                        <xs:documentation>PVD-PC</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--PVD-->
                <xs:element name="Patient" type="HistoryResponsePatientType">
                    <xs:annotation>
                        <xs:documentation>PTT</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--PTT-->
                <xs:element name="BenefitsCoordination" type="BenefitsCoordinationResponseType" maxOccurs="3">
                    <xs:annotation>
                        <xs:documentation>COO</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--COO-->
                <xs:choice minOccurs="0">
                    <xs:element name="MedicationDispensed" type="HistoryDispensedMedicationType" maxOccurs="300">
                        <xs:annotation>
                            <xs:documentation>DRU-D</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <!--DRU-->
                    <xs:element name="MedicationPrescribed" type="HistoryPrescribedMedicationType" maxOccurs="300">
                        <xs:annotation>
                            <xs:documentation>DRU-P</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <!--DRU-->
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
.
.
.
.
..
.
continues

使用<xs:element name="RxHistoryRequest"> 我必须构建XML和

使用<xs:element name="RxHistoryResponse"> 我必须阅读回复

感谢您抽出时间帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用可以从该xsd提供样本xml的程序。例如 Stylus Studio

如果您向我提供XSD,我可以为您制作示例XML