[java] 오류 : “[xX] [mM] [lL]”과 일치하는 처리 명령 대상이 허용되지 않습니다.

이 오류는

“[xX] [mM] [lL]”과 일치하는 처리 명령 대상이 허용되지 않습니다.

다음과 같이 시작하는 XSLT 페이지를 실행할 때마다 발생합니다.

<?xml version="1.0" encoding="windows-1256"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:include href="../header.xsl"/>
  <xsl:template match="/">
    <xsl:call-template name="pstyle"/>
    <xsl:call-template name="Validation"/>
    <xsl:variable name="strLang">
      <xsl:value-of select="//lang"/>
    </xsl:variable>
    <!-- ////////////// Page Title ///////////// -->
    <title>
        <xsl:value-of select="//ListStudentFinishedExam.Title"/>
    </title>

참고 : 첫 번째 줄 전에 선행 공백을 제거했지만 여전히 오류가 발생합니다!



답변

Xerces 기반 도구는 다음 오류를 발생시킵니다

The processing instruction target matching "[xX][mM][lL]" is not allowed.

XML 파일이 아닌 다른 곳 에서 XML 선언 이 발견 될 때

유효한 진단 메시지입니다. 다른 XML 파서는이 상황에서 유사한 오류 메시지를 발행해야합니다.

문제를 해결하려면 다음 가능성을 확인하십시오.


  1. 선언
    하기 전에 빈 공간이나 다른 보이는 내용이 있습니다<?xml ?> .

    해결 : XML 선언 전에 공백 또는 기타 보이는 내용을 제거하십시오.

  2. 일부 눈에 보이지 않는 내용이 이전에 존재 <?xml ?>
    선언.
    가장 일반적으로 이것은 BOM (Byte Order Mark) 입니다.

    해결 : BOM의 W3C 페이지에서 제안한 것과 같은 기술을 사용 하여 BOM을 HTML로 제거하십시오.

  3. 잃은 <?xml ?>선언은 XML 컨텐츠 내에서 존재한다.
    이는 프로그래밍 방식으로 또는 잘라 내기 및 붙여 넣기를 통해 XML 파일을 결합 할 때 발생할 수 있습니다. <?xml ?>XML 파일에는 선언 이 하나만있을 수 있으며 맨 위에 만있을 수 있습니다.

    해결 : <?xml대소 문자를 구분하지 않고 검색
    하고 파일에서 최상위 XML 선언을 제외한 모든 것을 제거하십시오.


답변

나를위한 이유는 하나의 XML에서 다음 코드 중 2 개입니다.

<?xml version="1.0" encoding="utf-8"?>


답변

자동 생성 된 저작권 메시지 XML<resources>태그 앞에 빈 줄 이 있었는데 , 일단 제거하면 빌드가 성공했습니다.

여기에 이미지 설명을 입력하십시오


답변

위의 오류의 또 다른 이유는 jar 파일이 손상 되었기 때문입니다. 단위 테스트를 실행할 때 Junit에 대해 동일한 오류가 발생했습니다. jar을 제거하고 다시 다운로드하면 문제가 해결됩니다.


답변

내 경우에는 구성 파일의 경로가 잘못되었습니다 : 파일을 찾을 수 없습니다 (경로가 잘못되었습니다).이 예외가 발생했습니다.

입력 스트림에서 구성하는 중 오류가 발생했습니다. 초기 원인은 “[xX] [mM] [lL]”과 일치하는 처리 명령 대상이 허용되지 않았습니다.


답변

5,000 개의 디렉토리 (Project Gutenberg 카탈로그 파일)에 50,000 개의 rdf / xml 파일과 비슷한 문제가 있습니다. 나는 폭동으로 그것을 해결했다 (제나 배포판에서)

디렉토리는 cache / epub / NN / nn.rdf입니다 (여기서 NN은 숫자 임)

모든 파일이있는 디렉토리 위의 디렉토리 (예 : 캐시)

riot epub/*/*.rdf --output=turtle > allTurtle.ttl

이것은 많은 경고를 생성하지만 결과는 jena에로드 할 수있는 형식입니다 (fuseki 웹 인터페이스 사용).

놀랍도록 간단합니다 (적어도이 경우).


답변

PHP의 경우 XML 인쇄를 시작하기 전에 다음 코드를 입력하십시오.

while(ob_get_level()) ob_end_clean();