XSD无法获取外部名称空间

时间:2017-11-03 19:06:01

标签: c# xml xsd namespaces

我想生成基于XSD文件的C#代码,但是有问题 架构中的namspace,VS和xsd.exe显示在一个特定命名空间中定义的所有类型的警告。我认为它可能实际上是错误的,但是我在XSD Diagram(打开这些文件的程序)中打开了XSD文件,它显示了每种类型,即使它们位于那个名称空间中。

有问题的命名空间是 xmlns:curr =“http://www.currenda.pl/epu”

<xsd:schema xmlns:curr="http://www.currenda.pl/epu" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.currenda.pl/epu" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="pl">
  <xsd:element name="Pozwy">
    <xsd:annotation>
      <xsd:documentation>Paczka pozwów w elektronicznym postępowaniu upominawczym</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="PozewEPU" type="curr:PozewEPU" maxOccurs="unbounded" />
      </xsd:sequence>
      <xsd:attribute name="OznaczeniePaczki" type="curr:typNazwa60" use="required">
        <xsd:annotation>
          <xsd:documentation>Oznaczenie paczki nadawane przez powoda masowego używane jako kryterium wyszukiwania i rozliczania opłat</xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="PozewEPU">
    <xsd:annotation>
      <xsd:documentation>Pozew inicjujący sprawę w elektronicznym postępowaniu upominawczym</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Oswiadczenie" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Przyjmuje wartości tak/nie</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="Adresat" type="curr:typAdresat" />
      <xsd:element name="SadWlasciwy" type="curr:typAdresat" minOccurs="0" />
      <xsd:element name="OsobaSkladajaca" type="curr:typSkladajacy" />
      <xsd:element name="ListaPowodow" type="curr:typListaPowodow" />
      <xsd:element name="ListaPozwanych" type="curr:typListaPozwanych" />
      <xsd:element name="SprawaWgPowoda" minOccurs="0" type="curr:typNazwa60">
        <xsd:annotation>
          <xsd:documentation>Sygnatura / oznaczenie sprawy nadane przez powoda </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WartoscSporu" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation>Suma wartości roszczeń zdefiniowanych na liście roszczeń wyrażona w PLN</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OplataSadowa" type="curr:typOplata" />
      <xsd:element name="KosztyZastepstwa" type="curr:typKoszty" />
      <xsd:element name="InneKoszty" type="curr:typKoszty" minOccurs="0" />
      <xsd:element name="RachunekDoZwrotuOplat" type="curr:typRachunekDoZwrotuOplat" >
        <xsd:annotation>
          <xsd:documentation>Element dla numeru oraz nazwy właściciela rachunku do zwrotu opłat sądowych</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ListaRoszczen" type="curr:typLista" />
      <xsd:element name="ListaDowodow" type="curr:typListaDowodow" minOccurs="0" />
      <xsd:element name="InneRoszczenia" type="curr:typTekstowy" minOccurs="0" />
      <xsd:element name="Uzasadnienie" type="curr:typTekstowy" />
    </xsd:sequence>
    <xsd:attribute name="ID" type="xsd:unsignedLong" use="required">
      <xsd:annotation>
        <xsd:documentation>Unikalny w ramach paczki numer ID pozwu </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="version" type="curr:typNazwa10" use="required" fixed="1.0">
      <xsd:annotation>
        <xsd:documentation>Oznaczenie wersji formatu </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="dataZlozenia" type="curr:typData" use="required" />
  </xsd:complexType>
</xsd:schema>

Screen from xsd.exe

在错误中说:未声明类型[...]

我将不胜感激任何帮助 提前致谢

编辑:xsd的一部分,包含数据类型(它太大了,无法完整整理

<xsd:schema xmlns:curr="http://www.e-sad.gov.pl/epu" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.e-sad.gov.pl/epu" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" xml:lang="pl">
  <xsd:simpleType name="typNIP">
    <xsd:annotation>
      <xsd:documentation>Numer NIP</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([1-9]((\d[1-9])|([1-9]\d))\d{7})|(^$)" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="typPESEL">
    <xsd:annotation>
      <xsd:documentation>Definicja numeru PESEL</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{11}" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="typKRS">
    <xsd:annotation>
      <xsd:documentation>Definicja KRS </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{10}" />
    </xsd:restriction>
  </xsd:simpleType>

1 个答案:

答案 0 :(得分:0)

您收到错误是因为您的XSD使用其他地方定义的类型。 xsd.exe需要所有定义才能工作。根据您在评论中所说的内容,听起来您需要通过在主文件中引用它来包含另一个文件:

<xsd:include schemaLocation="theOtherFileNameGoesHere.xsd" />