2013-06-11 2 views
0

XML을 구문 분석하기위한 COBOL 모듈을 작성했습니다. XML 값은 DB2 테이블에 저장되며 XML 값을 읽는 select 쿼리를 실행하고 있습니다. 그러나 구문 분석하는 동안 첫 번째 인스턴스 자체에서 XML-CODE = 317이라는 예외가 발생합니다.이 XML 코드에 대한 검색을 수행했으며이 오류에 대한 설명을 다음과 같이 발견했습니다. '파서가 문서 인코딩을 결정할 수 없습니다. 문서가 손상되었을 수 있습니다. 'XML 구문 분석 Cobol

XML에 문제가 없으면 DB2 테이블에 삽입하는 동안 오류가 발생했습니다. XML의 첫 번째 태그도 정확합니다.

누군가이 문제를 해결할 수 있도록 도와주세요.

감사합니다.

+1

나는 컴퓨터가 말하는 것과 같이가는 경향이있다. 컴퓨터는 증거에 의해 뒷받침되지 않는 것을 알고 있다는 "생각"으로 스스로를 두들겨 패 수 없습니다. 당신이 그 메시지를 정확하게 확인했다면 나는 당신이 생각하는 것보다 컴퓨터가 말하는 것을 믿는다. 파서가 문서 인코딩을 결정하는 방법을 파악하는 데 집중하십시오. –

+0

파서가 문서 인코딩을 결정하는 방법을 찾는 방법을 알려주십시오. XML을 업로드하기 전에 인코딩은 UTF-8이었고 XML을 삽입 한 후에는 인코딩이 IBM01146으로 작성되었습니다. 또한 테이블이 UNICODE 테이블인지 확인했습니다. – user2169418

답변

2

아마도 XML 헤더에 인코딩을 지정해야합니다.

다음은 몇 가지 예제 인코딩입니다.

<?xml version="1.0" encoding="us-ascii"?> 
<?xml version="1.0" encoding="windows-1252"?> 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml version="1.0" encoding="UTF-8"?> 
<?xml version="1.0" encoding="UTF-16"?> 
+0

XML 헤더가 이미 user2169418

+0

으로 표시되어있을 수 있습니다. http://mindprod.com/jgloss/encoding/ibm01146.html –

1

당신은 우리에게 유용한 정보 ... 당신은 COBOL에서 XML을 구문 분석하려고

  1. 을 준
  2. 는 XML 다른 컴퓨터
  3. 는 XML에서 오는
  4. 는 원래 UTF-8
  5. XML은 유니 코드 열의 DB2 테이블에 저장됩니다.
  6. XML에을 나타내는 헤더가 있습니다 당신의 COBOL 코드는 0
  7. 당신은 317

무엇 CODEPAGE 옵션의 XML-CODE를 받고 함께 컴파일? 자동 변환이 _ 생할 수 있으며, DB2에서 검색 한 후 머리글과 인코딩이 더 이상 일치하지 않을 수 있습니다.

PIC X 필드 또는 PIC N 필드를 구문 분석하고 있습니까?

또한 "원시 COBOL"파서는 Enterprise COBOL 5.1에서 더 이상 사용되지 않으므로 컴파일 옵션 XMLPARSE(XMLSS)을 사용하는 것이 좋습니다.