我有一个包含以下内容的XML文件(某些敏感数据被'DummyData'替换)
<Alert>
<AlertID>23210B</AlertID>
<Title>DummyData</Title>
<PublishDate>3/31/2014 12:00:00 AM</PublishDate>
<Severity>03</Severity>
<ResponseNecessary>Yes</ResponseNecessary>
<ThreatDate>6/2/2014 12:00:00 AM</ThreatDate>
<DueDate>
</DueDate>
<SystemStandard>Yes</SystemStandard>
<Type>DummyData</Type>
<Overview>DummyDataDummyDataDummyDataDummyDataDummyDataDummyDataDummyDataDummyDataDummyDataDummyData</Overview>
<NIRTAnalysis><p>N/A</p></NIRTAnalysis>
<ThreatAsessment><p>N/A</p></ThreatAsessment>
<ProductsAffected><p>DummyData 10 SP4 LTSS</p></ProductsAffected>
<RequiredActions>DummyDataDummyDataDummyDataDummyDataDummyData</RequiredActions>
<AdditionalInformation>DummyDataDummyDataDummyDataDummyDataDummyData</AdditionalInformation>
<ExternalReference>DummyDataDummyDataDummyDataDummyDataDummyDataDummyData</ExternalReference>
<PatchID>
</PatchID>
</Alert>
以下由SSIS生成的xsd文件:
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Alert">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="AlertID" type="xs:string" />
<xs:element minOccurs="0" name="Title" type="xs:string" />
<xs:element minOccurs="0" name="PublishDate" type="xs:string" />
<xs:element minOccurs="0" name="Severity" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="ResponseNecessary" type="xs:string" />
<xs:element minOccurs="0" name="ThreatDate" type="xs:string" />
<xs:element minOccurs="0" name="DueDate" type="xs:string" />
<xs:element minOccurs="0" name="SystemStandard" type="xs:string" />
<xs:element minOccurs="0" name="Type" type="xs:string" />
<xs:element minOccurs="0" name="Overview" type="xs:string" />
<xs:element minOccurs="0" name="NIRTAnalysis" type="xs:string" />
<xs:element minOccurs="0" name="ThreatAsessment" type="xs:string" />
<xs:element minOccurs="0" name="ProductsAffected" type="xs:string" />
<xs:element minOccurs="0" name="RequiredActions" type="xs:string" />
<xs:element minOccurs="0" name="AdditionalInformation" type="xs:string" />
<xs:element minOccurs="0" name="ExternalReference" type="xs:string" />
<xs:element minOccurs="0" name="PatchID" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我的问题是当我使用XML Source加载文件但源无法识别列时。我猜它认为文件有嵌套节点,因为我可以看到任何列的唯一方法是使用下面的XSD,它将看到所有列,但所有列都是单独的输出:
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Alert">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="AlertID" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="Title" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="PublishDate" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="Severity" type="xs:unsignedByte" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="ResponseNecessary" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="ThreatDate" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="DueDate" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="SystemStandard" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="Type" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="Overview" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="NIRTAnalysis" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="ThreatAsessment" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="ProductsAffected" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="RequiredActions" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="AdditionalInformation" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="ExternalReference" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="PatchID" type="xs:string" />
</xs:sequence>
</xs:complexType>
我对XLST知之甚少,但我知道我可以用这种方式压扁文件,但对我来说,它是平的。对于我做错了什么有什么建议吗?我相信我只是有一个xsd问题,但你看到的是由SSIS生成的。
答案 0 :(得分:0)
似乎问题与XML本身有关。 请将根元素添加到xml文件中,并在添加根后再次使用新的SSIS生成的xsd。
xml应如下所示:
<?xml version="1.0"?>
<Root>
<Alert>
....
</Alert>
</Root>