xsd
  • xsd-validation
  • 2012-07-27 40 views 1 likes 
    1

    我的任务是替换特定解决方案的xsd。但是,我不断收到一个“元素在这种情况下不受支持”。用新的替换旧的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

    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等等随身携带的编辑器和免费的。

    +0

    加尔达感谢您的帮助。我比我想象的更接近。至少我是在正确的轨道上! – 2012-07-27 18:47:06

    相关问题