с SQLXML 4.0 Как выполнить массовую загрузку вложенного элемента в один ряд - PullRequest
0 голосов
/ 27 января 2020

Структура XML

<ReportDefinition type="xml">
    <ReportSection enabled="true" optionalSubsections="true">
        <SubSection enabled="false">
            <IssueListing listing="true" limit="-1"> 
                <Chart chartType="list">
                    <Issue iid="27452" >
                        <Category>Cross-Site Scripting: Reflected</Category>
                        <Friority>Critical</Friority>
                        <Primary>
                            <FileName>resourceLookupSearchResult2.jsp</FileName>
                            <FilePath>web/src/main/Result2.jsp</FilePath>
                        </Primary>
                    </Issue>
                </Chart>
            </IssueListing>
        </SubSection>
    </ReportSection>
</ReportDefinition>

Мне нравится импортировать этот xml в одну таблицу с использованием SQLSML 4.0. Я написал следующий XSD, но он не сможет проанализировать дочерний элемент в Primary элемент. Пожалуйста, помогите мне создать xsd Примечание: значение из Category, Friority, FileName и FilePath должно быть go для одной строки. Будет очень полезно, если вы можете предоставить мне ссылку для дальнейшего образования

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
    <xsd:element name="Issue" sql:relation="RESULTS_XSS_REFLECTED" >
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name = "Category" type = "xsd:string" sql:field = "Category"/>
                <xsd:element name = "Friority" type = "xsd:string" sql:field = "Friority"/>
                <xsd:element name = "Primary">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="FileName" type="xsd:string" sql:field = "PrimaryFileName"/>
                            <xsd:element name="FilePath" type="xsd:string" sql:field = "PrimaryFilePath"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
            <xsd:attribute name="iid"   type="xsd:string" sql:field = "ID"/>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

...