首先,抱歉英语,而不是我的母语。
我已经检查了一些关于此的帖子,他们给出的解决方案就像“atributte below elements”,但在这个XML中我没有属性。在我使用它的所有地方都给出了复杂类型错误。检查一下:
XML
normalize()
XSD
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE Layout SYSTEM "Layout.dtd">
<Layout>
<Encabezado>
<Campos1>
<campo1>FechaDelReporte</campo1>
<campo1>FechaEsperada</campo1>
</Campos1>
<TipoDatos1>
<td1>Fecha</td1>
<td1>Fecha</td1>
</TipoDatos1>
<Longitudes1>
<lenght1>10</lenght1>
<lenght1>10</lenght1>
</Longitudes1>
<Descripciones1>
<descripcion1>FechaSeRealizoReporte</descripcion1>
<descripcion1>FechaEnQueSeEsperaInformeConInformacion</descripcion1>
</Descripciones1>
</Encabezado>
<Detalle>
<Campos2>
<campo2>Matricula</campo2>
<campo2>Nombre</campo2>
<campo2>CostoCredito</campo2>
<campo2>CreditosACursar</campo2>
<campo2>MontoCreditos</campo2>
</Campos2>
<TipoDatos2>
<td2>Numerico</td2>
<td2>Alfabetico</td2>
<td2>Numerico</td2>
<td2>Numerico</td2>
<td2>Numerico</td2>
</TipoDatos2>
<Longitudes2>
<lenght2>9</lenght2>
<lenght2>50</lenght2>
<lenght2>4</lenght2>
<lenght2>2</lenght2>
<lenght2>5</lenght2>
</Longitudes2>
<Descripciones2>
<descripcion2>MatriculaEstudiante</descripcion2>
<descripcion2>NombreEstudiante</descripcion2>
<descripcion2>CostoDeCadaCredito</descripcion2>
<descripcion2>CreditosCursaraEstudianteEnCuatrimestre</descripcion2>
<descripcion2>MontoTotalCreditosCursaraEstudiante</descripcion2>
</Descripciones2>
</Detalle>
<PieDePagina>
<Campos3>
<campo3>TotalEstudiantes</campo3>
<campo3>TotalCreditos</campo3>
<campo3>MontoTotalCreditos</campo3>
</Campos3>
<TipoDatos3>
<td3>Numerico</td3>
<td3>Numerico</td3>
<td3>Numerico</td3>
</TipoDatos3>
<Longitudes3>
<lenght3>4</lenght3>
<lenght3>6</lenght3>
<lenght3>8</lenght3>
</Longitudes3>
<Descripciones3>
<descripcion3>TotalEstudiantesConCreditoEducativoEnInforme</descripcion3>
<descripcion3>TotalCreditosCursaranTodosEstudiantesEnInforme</descripcion3>
<descripcion3>MontoTotalRequeridoPorCreditosEnInforme</descripcion3>
</Descripciones3>
</PieDePagina>
</Layout>
我认为我的XSD也没有正确制作。
答案 0 :(得分:0)
你是对的;您的XSD配置不正确。问题包括:
您有许多名为complextype
的元素的实例,但XSD没有这样的元素;它有一个complexType
元素,我认为这是你的想法。
您的架构文档未指定目标命名空间,因此您声明的复杂类型和元素不与任何命名空间关联。但是你使用前缀xs
将它们称为XSD命名空间。您需要内置类型integer
和string
的前缀,而不是Campos1type
等。
您的架构文档和XML不同意如何拼写您的某些元素:您的Campos1type
声明指定了一个名为Campo1
的子元素,但在您的XML中,{ {1}}元素的子项名为Campos1
。
您的所有声明都不允许子元素重复。
可能还有其他问题;这是我不再寻找的地方。
由于大多数XSD验证器默认寻找与输入的最外层元素匹配的顶级元素声明,因此您可能还需要声明表单
campo1