如何为此XML创建XSD模式?

3

我该如何为这个xml文件创建一个xsd模式?尝试创建一个ssis包以导入多个xml文件,但不知道如何创建xsd模式。

<?xml version="1.0"?>
-<recordedData>
    <machine>ZSK40-2</machine>
    <date>2013/09/21</date>
    <hour>05:32</hour>-<CollectedData>-<variable>
            <Name>PRODUCT</Name>
            <Value>FILLER 580</Value>
        </variable>-<variable>
            <Name>LOT_NUMBER</Name>
            <Value>CG 00063 0</Value>
        </variable>-<variable>
            <Name>SHIFT_SUPERVISOR</Name>
            <Value>  covaliu l</Value>
        </variable>-<variable>
            <Name>KGH_ALL_SET</Name>
            <Value>0</Value>
        </variable>-<variable>
            <Name>KGH_ALL_REAL</Name>
            <Value>0</Value>
        </variable>-<variable>
            <Name>KGH_F1_SET</Name>
            <Value>0</Value>
        </variable>-<variable>
            <Name>KGH_F1_REAL</Name>
            <Value>0</Value>
        </variable>-<variable>
            <Name>K_F1</Name>
            <Value>43</Value>
        </variable>-<variable>
            <Name>SCREW_RPM_SET</Name>
            <Value>550</Value>
        </variable>-<variable>
            <Name>SCREW_RPM_REAL</Name>
            <Value>550.085388183594</Value>
        </variable>-<variable>
            <Name>TORQUE</Name>
            <Value>1.21340000629425</Value>
        </variable>-<variable>
            <Name>CURRENT</Name>
            <Value>60.1959991455078</Value>
        </variable>-<variable>
            <Name>KW_KG</Name>
            <Value>0</Value>
        </variable>-<variable>
            <Name>KW</Name>
            <Value>-0.990000009536743</Value>
        </variable>-<variable>
            <Name>MELT_PRESSURE</Name>
            <Value>0</Value>
        </variable>-<variable>
            <Name>MELT_TEMPERATURE</Name>
            <Value>214</Value>
        </variable>-<variable>
            <Name>PV1</Name>
            <Value>216</Value>
        </variable>-<variable>
            <Name>SP1</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV2</Name>
            <Value>239</Value>
        </variable>-<variable>
            <Name>SP2</Name>
            <Value>220</Value>
        </variable>-<variable>
            <Name>PV3</Name>
            <Value>220</Value>
        </variable>-<variable>
            <Name>SP3</Name>
            <Value>220</Value>
        </variable>-<variable>
            <Name>PV4</Name>
            <Value>220</Value>
        </variable>-<variable>
            <Name>SP4</Name>
            <Value>220</Value>
        </variable>-<variable>
            <Name>PV5</Name>
            <Value>209</Value>
        </variable>-<variable>
            <Name>SP5</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV6</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>SP6</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV7</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>SP7</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV8</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>SP8</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV9</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>SP9</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV10</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>SP10</Name>
            <Value>210</Value>
        </variable>-<variable>
            <Name>PV11</Name>
            <Value>220</Value>
        </variable>-<variable>
            <Name>SP11</Name>
            <Value>220</Value>
        </variable>
    </CollectedData>
</recordedData>

至少有些东西可以让我开始着手,因为我处于时间紧迫的情况下。

这段内容与IT技术无关。

你试过谷歌吗?第一个搜索结果:http://www.freeformatter.com/xsd-generator.html - 这是一个在线生成器,可以在几秒钟内创建漂亮的 XSD。 - Björn
3个回答

3
您可以轻松地在线完成这个操作:将XML转换为XSD 以下是您提到的XML对应的XSD:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="recordedData">
 <xs:complexType mixed="true">
  <xs:sequence>
    <xs:element type="xs:string" name="machine"/>
    <xs:element type="xs:string" name="date"/>
    <xs:element type="xs:string" name="hour"/>
    <xs:element name="CollectedData">
      <xs:complexType mixed="true">
        <xs:sequence>
          <xs:element name="variable" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element type="xs:string" name="Name"/>
                <xs:element type="xs:string" name="Value"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

3

Microsoft XSD Inference工具。

检查一下:

http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.80%29.aspx

下载该工具,将示例XML放入文件中,然后从命令行运行工具,传递您的XML文件的完整路径。

例如:>>xsd c:\test.xml

您会注意到在C驱动器上创建了一个名为test.xsd的文件。

注意:不要忘记从输入XML文件中删除“-”字符。


我尝试了,但是出现了以下错误:无法解析任何XML输入。错误:内容不允许在文档开头。这与你分享的链接完全相同。 - user2725348
我收到的XSD模式是字符串数据类型。我将数据库列创建为nvarchar。在SSIS中,我遇到了错误“Error on SSIS, Source destination: cannot convert between unicode & non-unicode string data type”。我做错了什么? - user2725348
请问我该如何回复一张图片? - user2725348
我猜那个与SSIS有关。你现在的XSD生成问题已经解决了。你可以发布另一个问题并插入所需的图片。但是不能在评论中发布图片。 - Rami

2
在XML源代码编辑器中有一个内置的生成器。它并不总是有效,但你应该尝试一下。 输入图像说明

使用SDK工具中的xsd.exe创建。我遇到了一些错误,但最终还是解决了。 - user2725348
它并非始终对我有效。让我知道进展如何。 - TsSkTo
will come back with an answer - user2725348
你需要使用一个数据转换转换器来规范化你的字符串编码。这样就可以解决你的Unicode错误了。 - TsSkTo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接