Вопрос

Мне было поручено заменить 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>
.

позже?На самом деле, я попробовал это, и это не сработало, но есть что-то похожее, что я должен сделать?

Это было полезно?

Решение

xsd - это что-то другое ... Вы, кажется, нового для XSD, поэтому, возможно, самый быстрый способ начать, это создать XSD из вашего образца XML.Настроить генерируемый для соответствия XMLS.Используйте 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 и т. Д. Поставляются с приличными редакторами и бесплатно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top