programing

오류: "[X][mM][lL]"과(와) 일치하는 처리 명령 대상은 허용되지 않습니다.

yoursource 2022. 8. 13. 15:27
반응형

오류: "[X][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 선언 전에 빈칸 또는 기타 볼 수 있는 내용을 제거합니다.

  2. 선언 전에 보이지 않는 내용이 있습니다.일반적으로 이것은 바이트 순서 마크(BOM)입니다.

    해상도:HTML 의 BOM W3C 페이지에서 제안하는 수법을 사용해 BOM 를 삭제합니다.

  3. XML 콘텐츠 내에 부정한 선언이 존재합니다.이 문제는 XML 파일이 프로그래밍 방식으로 결합되거나 컷 앤 페이스트 방식으로 결합될 때 발생할 수 있습니다.1개밖에 없어<?xml ?>XML을 사용합니다.

    해상도:검색(Search(검색)<?xml대소문자를 구분하지 않고 파일에서 상위 XML 선언을 제외한 모든 선언을 삭제합니다.

이유는 다음 코드 중 2개가 하나의 xml에 있기 때문입니다.

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

XML 파일에서 이 행이 반복되는지 확인합니다.

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

xml에 다음 행이 이중으로 포함되어 있는 경우 xml을 확인합니다.한 행(중복 행)을 삭제합니다.

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

중복된 행을 1개 삭제합니다.

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

XML 파일을 디버깅합니다.공간이 있거나 추가된 태그가 적거나 둘 중 하나입니다.

보다 잘 이해하기 위해 명령줄을 사용하여 프로젝트를 빌드합니다.Windows:gradlew build

제 경우 AndroidManifest.xml 맨 앞줄에 공백이 있습니다.

<Empty Row> // This Creates the issue 
<?xml version="1.0" encoding="utf-8"?>

Copyright에 Copyright 되었습니다.XML과 함께 쓰세요.<resources>태그를 제거하자 내 빌드는 성공했습니다.

여기에 이미지 설명 입력

위의 오류의 또 다른 이유는 jar 파일의 파손입니다.유닛 테스트 실행 시 Junit을 제외하고 동일한 오류가 발생하였습니다.jar를 분리하여 다시 다운로드하면 문제가 해결.

이 경우는 설정 파일의 잘못된 경로입니다.파일을 찾을 수 없습니다(경로가 잘못되어 있습니다).이 예외는 다음과 같습니다.

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

5,000개의 디렉토리(Project Gutenberg 카탈로그 파일)에 있는 50,000rdf/xml 파일도 같은 문제가 있었습니다.폭동으로 해결했다(제나 배포에서)

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

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

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

이로 인해 많은 경고가 발생할 수 있지만 결과는 (후세키 웹 인터페이스를 사용하여) 제나로 로드할 수 있는 형식으로 나타납니다.

놀라울 정도로 단순합니다(적어도 이 경우).

PHP 의 경우는, XML 의 인쇄를 개시하기 전에, 다음의 코드를 입력합니다.

while(ob_get_level()) ob_end_clean();

저 같은 경우에는 코드 없이 빈칸을 모두 제거했습니다.그리고 그것은 성공하였다.

제 경우엔, 계산은 트러블 메이커입니다.탭을 공백으로 바꾸면 문제가 해결됩니다.

이 에러에 의해서, 의 메모리 효율이 정말로 저하됩니다.XMLEventReader입력의 초급에 공백이 있으면 실패하기 때문입니다.

어쨌든, 이미 사용되도록 코드화되어 있기 때문에, 나는 그 코드를InputStream또는Reader에 공급하다.String그럼 전화해요trim()이것으로 다른 독자를 만들어 내다StringXML 이벤트 리더를 만듭니다.

유사 코드:

Reader reader = new StringReader(
        inputStreamToStringBuilder( getInputStream(), getContentCharset() )
                .toString().trim()
);
XMLEventReader eventReader = inputFactory.createXMLEventReader(reader);

서버의 폴더를 체크해, pom.xml 의 행방이 없는지를 확인해 주세요.

다른 모든 사람들이 잘못된 형식의 pom.xml에 대해 설명했지만, 서버에 있을 줄은 몰랐던 폴더에 문제가 있다는 것을 알게 되었습니다.반갑지 않은 옛 체격의 D:

다음 행을 삭제하기만 하면 됩니다.<?xml version="1.0" encoding="utf-8"?>왜냐하면 이런 종류의 오류는 이 행에서만 발생하거나 이 답변에서 언급된 행에 따라 회선의 형식을 확인할 수 있기 때문입니다.

언급URL : https://stackoverflow.com/questions/19889132/error-the-processing-instruction-target-matching-xxmmll-is-not-allowed

반응형