이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 refdbxp 명령입니다.
프로그램:
이름
refdbxp - 다음을 포함하는 SGML 및 XML 문서의 짧은 인용 형식과 전체 인용 형식을 변환합니다.
RefDB 인용.
개요
refdbxp [-h] [-s] [-t 입력 형식] refdbxp
기술
refdbxp는 인용문의 짧은 표기와 전체 표기의 상호 변환을 허용합니다.
지원되는 SGML 및 XML 문서 참조DB(7). 자세한 내용은 RefDB 매뉴얼(아래 참조)을 참조하세요.
두 표기법에 대한 정보입니다. 변환은 왕복 안전하며 다음을 지원합니다.
동일한 소스 문서에서 짧은 표기와 전체 표기를 혼합합니다. 전체 표기 인용은
동일한 참고문헌의 첫 번째 및 후속 인용에는 올바른 인코딩을 사용하세요.
주의 사항
refdbxp는 SGML 또는 XML 인식 도구가 아니라는 점을 알아야 합니다. 간단한 글입니다
몇 가지 제한 사항이 있는 교체 도구:
· 인용 요소에 주석을 달면 해당 요소는 여전히 존재하는 것으로 간주됩니다.
첫 번째/다음 인용 문제가 해결되면(refdbxp는 단순히 알 수 없음)
코멘트의 개념에 대해). 다음 예에서는
마지막 줄만 변환되지만 형식은 다음과 같습니다.
첫 번째 인용이 아닌 참고문헌 9의 후속 인용:
9; first occurrence -->
9;
· 주석 내에서 SGML/XML 태그를 사용하고 이 주석을 교묘하게 중첩하는 경우
refdbxp와 관련된 요소의 시작 태그와 끝 태그 사이에
발에 총을 쏘세요. 당신은 이런 코드를 사용하고 싶지 않습니다(왜 그럴까요?
어쨌든?):
--> 2;5;9;
· refdbxp는 외부 엔터티를 포함하지 않습니다. 전체 문서 refdbxp가 가정됩니다.
변환하려면 하나의 청크로 이루어져야 합니다.
· refdbxp는 현재 문서당 여러 데이터베이스를 지원하지 않습니다.
주석 문제를 해결하는 한 가지 방법은 마스터 복사본을 만드는 것입니다.
처리 및 변환 직전에 소스를 소스로 만들고 작은 스크립트를 사용하여 주석을 제거합니다.
당신의 텍스트. refdbxp가 외부 엔터티를 처리하지 않는다는 사실을 해결하려면
올바르게, 다음과 같은 도구를 사용하십시오 sgmlnorm (Jade/OpenJade 패키지와 함께 제공됨)
문서를 전처리합니다. 여러 데이터베이스의 누락된 지원을 해결하려면,
음... 기다리세요.
옵션
-h
화면에 명령 개요를 인쇄하고 종료합니다.
-s
짧은 표기법을 사용하여 인용을 만듭니다. 기본값은 전체 표기법을 사용하는 것입니다.
-t 입력 형식
입력 유형을 선택합니다. 현재 지원되는 값은 다음과 같습니다. db31 (DocBook SGML 버전
3.1 이상), DB31x (DocBook XML, 모든 버전) 및 테익스 (TEI XML).
예
먼저 refdbxp의 가장 일반적인 사용법을 시도해 보겠습니다. 다음 명령은 모두 확장합니다.
인용문은 짧은 표기법이든 전체 표기법이든 상관없이 전체 내용을
표기법을 적용하고 결과를 새 파일 foo.full.sgml에 기록합니다. foo.sgml의 입력은 다음과 같습니다.
DocBook SGML로 가정:
~$
refdbxp -t db31 < foo.sgml > foo.full.sgml
다음 명령은 반대 방향으로 진행됩니다. 이번에는 TEI XML의 모든 인용을 변환합니다.
문서는 짧은 표기법으로 작성되었는지 아니면 전체 표기법으로 작성되었는지에 관계없이 짧은 표기법까지
표기법을 적용하고 결과를 새 파일에 씁니다.
~$
refdbxp -t 테익스 -s < bar.xml > bar.short.xml
마지막 예에서는 여러 파일로 구성된 문서를 처리하는 방법을 보여줍니다. DocBook
SGML 마스터 파일 foo_master.sgml에는 외부 엔터티로 여러 다른 하위 문서가 포함되어 있습니다.
refdbxp를 사용하여 해당 파일을 개별적으로 처리하면 문제가 발생할 수 있습니다.
첫 번째/다음 인용 문제는 올바르게 처리되지 않으며
자동으로 생성된 요소 ID가 생성됩니다. 다음 명령이 구출됩니다.
문서의 모든 인용을 올바르게 확장합니다.
~$
osgmlnorm -NS /usr/local/share/sgml/docbook/4.1/docbook.dcl foo_master.sgml | refdbxp -t db31 > foo.full.sgml
주의 사항
이 절차에는 두 가지 작은 문제가 있다는 것을 깨달았을 것입니다. 첫 번째,
(o)sgmlnorm을 사용하면 다음을 포함하거나 포함할 외부 엔터티도 포함됩니다.
일단 생성되면) refdb에 의해 생성된 참고문헌 요소입니다. 이 문제를 해결하는 한 가지 방법은 다음과 같습니다.
주석에 엔터티 참조만 포함된 모의 파일을 사용합니다. 가정하자
귀하의 문서 foo.sgml은 엔터티를 사용하여 참고문헌을 포함하려고 합니다.
선언 %참고문헌; 적절한 위치에. 엔터티는
소스 파일 상단에 외부 파일 foo.bib.sgml로 선언 하위 집합을 추가합니다.
그런 다음 다음 내용을 포함하는 foo.bib.sgml 파일을 생성해야 합니다.
엔터티 참조는 중첩될 수 있으므로 주석 처리해야 합니다. 즉, 파서
이 엔터티를 다시 바꾸려고 시도하지만 엔터티가 이미 열려 있기 때문에 실패합니다.
변환 후에는 매개변수 엔터티의 주석 처리를 제거하면 됩니다. 긴거 좋아하시면
명령을 사용하면 다음과 같이 즉시 이 작업을 수행할 수 있습니다.
~$
osgmlnorm -NS /usr/local/share/sgml/docbook/4.1/docbook.dcl foo_master.sgml | refdbxp -t db31 | SED '에스% %\&서지;%' > foo.full.sgml
둘째, (o)nsgmlnorm은 우리가 필요로 하는 내부 선언 부분 집합을 출력하지 않습니다.
최소한 참고문헌에 대한 매개변수 엔터티를 선언해야 합니다. 이 문제를 해결할 수 있습니다.
위에 표시된 명령 줄을 따라 sed 명령을 실행하거나 수동으로 다시 추가하세요.
onworks.net 서비스를 사용하여 온라인으로 refdbxp를 사용하세요.