模式有效性错误:元素不是预期的元素

时间:2015-10-16 04:46:51

标签: xml xsd informatica

在从Informatica目标创建的XML文件上运行xmllint时,我收到以下错误。 XSD和XML摘录也在下面。在XML中,我看到数据填充,所以我很困惑为什么我收到错误?任何帮助将不胜感激。仅供参考,我对XML非常陌生,所以请耐心等待。

错误 -

  

tac_mps_xml_generator_000246917_04012015.xml:171:element moday1:架构有效性错误:元素'moday1':不期望此元素。预计是(month_day1)。   tac_mps_xml_generator_000246917_04012015.xml无法验证

XSD摘录 -

<xs:complexType name="MoDayType">
 <xs:sequence>
  <xs:element name="month_day"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="5"/> </xs:restriction> </xs:simpleType> </xs:element>
  <xs:element name="renderingphys" type="nameDetlType"/>
  <xs:element name="patienttotal" type="xs:integer" default="0"/>
  <xs:element name="proceduretotal" type="xs:integer" default="0"/>
  <xs:element name="mintotal" type="xs:integer" default="0"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="hoursbilleddetlType">
 <xs:sequence>
   <xs:element name="moday1" minOccurs="0" maxOccurs="1" type="MoDayType"/> 
 </xs:sequence>
</xs:complexType>

XML -

 <moday1>
        <month_day/>
        <renderingphys>
          <fname/>
          <mname/>
          <lname/>
          <suffix/>
        </renderingphys>
        <patienttotal></patienttotal>
        <proceduretotal></proceduretotal>
        <mintotal></mintotal>
      </moday1>

1 个答案:

答案 0 :(得分:0)

似乎为了创造一个展示问题的最小例子,你不小心把这个问题删掉了。

你的XML:

<moday1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="try.xsd">
  <month_day/>
  <renderingphys>
    <fname/>
    <mname/>
    <lname/>
    <suffix/>
  </renderingphys>
  <patienttotal></patienttotal>
  <proceduretotal></proceduretotal>
  <mintotal></mintotal>
</moday1>

对您的XSD有效(添加了根元素并且剪裁了无关紧要的缺失类型),没有错误:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.01">

  <xs:element name="moday1" type="MoDayType"/>

  <xs:complexType name="MoDayType">
    <xs:sequence>
      <xs:element name="month_day">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="renderingphys"/>
      <xs:element name="patienttotal" type="xs:integer" default="0"/>
      <xs:element name="proceduretotal" type="xs:integer" default="0"/>
      <xs:element name="mintotal" type="xs:integer" default="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="hoursbilleddetlType">
    <xs:sequence>
      <xs:element name="moday1" minOccurs="0" maxOccurs="1" type="MoDayType"/> 
    </xs:sequence>
  </xs:complexType>
</xs:schema>

由于您的错误表明moday1元素是意外的,因此您必须考虑moday1元素出现的上下文。其父级的内容模型可能需要一系列与您提供的元素不同的元素。