用新的替换旧的XSD

时间:2012-07-27 18:24:17

标签: xsd xsd-validation

我的任务是替换特定解决方案的xsd。但是,我不断得到“在这种情况下不支持元素。”

这是原始的xsd:

    public const string Xsd = @"
<xs:schema attributeFormDefault='unqualified' elementFormDefault='qualified'     xmlns:xs='http://www.w3.org/2001/XMLSchema'>
  <xs:element name='DataRow'>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs='unbounded' name='Data'>              
          <xs:complexType>
            <xs:attribute name='Site' type='xs:string' use='required' />
            <xs:attribute name='Month_Num' type='xs:unsignedShort' use='required' />
            <xs:attribute name='Numerator' type='xs:unsignedByte' use='required' />
            <xs:attribute name='Data_Indicator' type='xs:string' use='required' />
            <xs:attribute name='Budgeted' type='xs:unsignedByte' use='required' />
            <xs:attribute name='Executive_Comments' type='xs:string' use='required' />
            <xs:attribute name='Fleet_Executive_Comments' type='xs:string' use='required' />
         </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>";

以下是我应该用以下内容替换它:

<xs:schema attributeFormDefault='unqualified' elementFormDefault='qualified' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
  <MonthlyValues>
    <MonthlyValue IndicatorName='name' LocationName='name' GroupingName='name' Year='MonthNum.Value.Year' Month='MonthNum.Value.Month' Numerator='Numerator' Budget='Budget'>
    </MonthlyValue>
 </MonthlyValues>
</xs:schema>

架构是由其他人制作的,我原本应该能够替换它。不幸的是,它并没有这样做,我对此知之甚少。

我应该改变

 <MonthlyValues> 

<xs:element name='MonthlyValues> and keep the 
<xs:sequence>
   <xs:element maxOccurs='unbounded' name='MonthlyValues'>
      <xs:complexType>

并添加

<MonthlyValue IndicatorName='name' LocationName='name' GroupingName='name' Year='MonthNum.Value.Year' Month='MonthNum.Value.Month' Numerator='Numerator' Budget='Budget'>
</MonthlyValue>

之后?实际上,我试过了它并没有用,但是我有什么类似的东西吗?

1 个答案:

答案 0 :(得分:1)

XSD是其他的东西......你似乎对XSD来说是新手,所以最快的方法就是从你的示例XML生成XSD。调整生成的以匹配XML。使用下面的XSD作为起点。

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="MonthlyValues">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="MonthlyValue">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="xsd:string">
                <xsd:attribute name="IndicatorName" type="xsd:string" use="required" />
                <xsd:attribute name="LocationName" type="xsd:string" use="required" />
                <xsd:attribute name="GroupingName" type="xsd:string" use="required" />
                <xsd:attribute name="Year" type="xsd:string" use="required" />
                <xsd:attribute name="Month" type="xsd:string" use="required" />
                <xsd:attribute name="Numerator" type="xsd:string" use="required" />
                <xsd:attribute name="Budget" type="xsd:string" use="required" />
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

你应该依靠编辑来帮助你完成学习...... Eclipse,Netbeans等都有不错的编辑,而且是免费的。