xsd
  • xsd-validation
  • 2012-07-27 36 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

    相關問題