2012-10-24 3 views
2

먼저 COBOL에 익숙하지 않아 잘못된 어휘를 사용하면 사과드립니다. 우리는 COBOL의 고정 데이터 구조에서 xml 문서를 생성하려고합니다. GENERATE 문을 사용하여 올바르게 작동하지만 문제가 있습니다. 데이터는 다음과 같은 경우빈 xml 속성을 생성하지 마십시오

:

First;Second;Age;Optional 
JOHN;SNOW;18;Something 
JOHN;DOE;45;Nothing 
JOHN;ISSUE;30; 

그런 다음 생성 된 XML은 다음과 같습니다 그들은 빈 값이있을 때 우리는 속성을 생성하지 않는 발전기를 원하는

<Persons> 
    <Person First="JOHN" Second="SNOW" Age="18" Optional="Something"/> 
    <Person First="JOHN" Second="DOE" Age="45" Optional="Nothing"/> 
    <Person First="JOHN" Second="ISSUE" Age="18" Optional=""/> 
</Persons> 

:

<Persons> 
    <Person First="JOHN" Second="SNOW" Age="18" Optional="Something"/> 
    <Person First="JOHN" Second="DOE" Age="45" Optional="Nothing"/> 
    <Person First="JOHN" Second="ISSUE" Age="18" /> 
</Persons> 

쉬운 방법이 있습니까? IBM 문서 및 Google에서 운이 좋지 않은 곳을 둘러 보았습니다.

+0

이 답변을 확인하십시오 : stackoverflow.com/a/2120511/192510. ODO 솔루션은 상당히 엉망이 될 수 있으며 때때로 개별 상황에 따라 실행 가능하지 않습니다. 요소 텍스트를 사용하여 요소 텍스트 대신 내용을 전달하기 때문에 "Content"이벤트 태그 대신 "Attribute"이벤트 태그를 사용하려면 링크에서 프로그램을 "tinker"해야합니다. – NealB

답변

1

선택 항목에 OCCURS 0 to 1 DEPENDING var을 사용하여 성공했습니다. 우리는 참조 대상이 존재하는지 여부에 따라 var를 0 또는 1로 설정합니다.

그것은 kludge입니다. kludge를 불필요하게 만드는 현존하는 SHARE requirement이 있습니다. 기능은 v.Next COBOL 컴파일러에 있습니다.

0

좀 더 쉬운 방법은 XML PARSE 동사를 사용하여 스키마에 대한 예쁜 프린터 사용자 정의를 작성하는 것입니다. GENERATE를 수행 한 다음 예쁜 프린터를 통해 피드하여 특정 규칙을 적용하여 최종 출력물을 생성하십시오.