SXXP0003:XML 解析器报告错误:序言中不允许内容

2024-01-30

我的 XML 文件是

<?xml version="1.0" encoding="ISO-8859-1"?>
<T0020
    xsi:schemaLocation="http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.safersys.org/namespaces/T0020V1">
    <INTERFACE>
        <NAME>SAFER</NAME>
        <VERSION>04.02</VERSION>
    </INTERFACE>
    <TRANSACTION>
        <VERSION>01.00</VERSION>
        <OPERATION>REPLACE</OPERATION>
        <DATE_TIME>2009-09-01T00:00:00</DATE_TIME>
        <TZ>CT</TZ>
    </TRANSACTION>
    <IRP_ACCOUNT>
        <IRP_CARRIER_ID_NUMBER>564182</IRP_CARRIER_ID_NUMBER>
        <IRP_BASE_COUNTRY>US</IRP_BASE_COUNTRY>
        <IRP_BASE_STATE>AR</IRP_BASE_STATE>
        <IRP_ACCOUNT_NUMBER>67432</IRP_ACCOUNT_NUMBER>
        <IRP_ACCOUNT_TYPE>I</IRP_ACCOUNT_TYPE>
        <IRP_STATUS_CODE>100</IRP_STATUS_CODE>
        <IRP_STATUS_DATE>2008-02-01</IRP_STATUS_DATE>
        <IRP_UPDATE_DATE>2009-06-18</IRP_UPDATE_DATE>
        <IRP_NAME>
            <NAME_TYPE>LG</NAME_TYPE>
            <NAME>LARRY SHADDON</NAME>
            <IRP_ADDRESS>
                <ADDRESS_TYPE>PH</ADDRESS_TYPE>
                <STREET_LINE_1>10291 HWY 124</STREET_LINE_1>
                <STREET_LINE_2/>
                <CITY>RUSSELLVILLE</CITY>
                <STATE>AR</STATE>
                <ZIP_CODE>72802</ZIP_CODE>
                <COUNTY>POPE</COUNTY>
                <COLONIA/>
                <COUNTRY>US</COUNTRY>
            </IRP_ADDRESS>
            <IRP_ADDRESS>
                <ADDRESS_TYPE>MA</ADDRESS_TYPE>
                <STREET_LINE_1>10291 HWY124</STREET_LINE_1>
                <STREET_LINE_2/>
                <CITY>RUSSELLVILLE</CITY>
                <STATE>AR</STATE>
                <ZIP_CODE>72802</ZIP_CODE>
                <COUNTY>POPE</COUNTY>
                <COLONIA/>
                <COUNTRY>US</COUNTRY>
            </IRP_ADDRESS>
        </IRP_NAME>
    </IRP_ACCOUNT>
</T0020>

我正在使用以下 XSLT 将 xml 文件拆分为多个 xml 文件。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:t="http://www.safersys.org/namespaces/T0020V1" version="2.0">
 <xsl:output method="xml" indent="yes" name="xml" /> 
 <xsl:variable name="accounts" select="t:T0020/t:IRP_ACCOUNT" /> 
 <xsl:variable name="size" select="30" />
 <xsl:template match="/">
  <xsl:for-each select="$accounts[position() mod $size = 1]">
   <xsl:variable name="filename" select="resolve-uri(concat('output/',position(),'.xml'))" /> 
    <xsl:result-document href="{$filename}" method="xml">
     <T0020>
      <xsl:for-each select=". | following-sibling::t:IRP_ACCOUNT[position() &lt; $size]">
         <xsl:copy-of select="." /> 
        </xsl:for-each>      
     </T0020>
    </xsl:result-document>    
  </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

它在示例 Java 应用程序中运行良好,但是当我尝试在基于 Spring 的应用程序中使用相同的内容时,它会出现以下错误。

Error on line 1 column 1 of T0020:
  SXXP0003: Error reported by XML parser: Content is not allowed in prolog.

我不知道出了什么问题?请帮我。提前致谢。


您的 XML 开头为字节顺序标记UTF-8 (0xEF,0xBB,0xBF) 格式,不可见。尝试使用十六进制编辑器打开文件并查看。

Windows 下的许多文本编辑器喜欢将其插入到 UTF-8 编码文本的开头,尽管 UTF-8 实际上并不need字节顺序标记,因为 UTF-8 中的字节顺序已经明确定义。

Java 的 XML 解析器都会被 BOM 阻塞,并显示与您所看到的错误消息完全相同的信息。您需要删除 BOM,或者为您的 InputStream 编写一个包装器,以便在解析时将其交给 XML 解析器来完成此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SXXP0003:XML 解析器报告错误:序言中不允许内容 的相关文章

  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐