2014-10-23 1 views
1

.NET 환경 외부에서 * .docx 파일의 내용을 구문 분석 중이며 XML MS Word에서 생성 된 것과 OOXML 사양이 일치하지 않는 것 같습니다. 나는 누군가가 무슨 일이 일어나고 있는지 설명 할 수 있기를 바라고있다.OOXML/* .docx 각주 불일치

문서 섹션이 3 개인 * .docx 파일이 있습니다.

<w:footnotePr> 
    <w:numFmt w:val="upperRoman"/> 
</w:footnotePr> 

번째 섹션이 (넘버링이 섹션에서 위에 시작)를 갖는다 : 첫째, 이런 각주 속성 요소 갖는다

<w:footnotePr> 
    <w:numFmt w:val="upperRoman"/> 
    <w:numRestart w:val="eachSect"/> 
</w:footnotePr> 

을 세 번째 및 마지막 섹션에는 "footnotePr"엘리먼트가없는 최종 "secPr"에서 본문 요소의 하위 요소이며 마지막 섹션을 제어하기로되어있는 섹션 속성 요소입니다. OOXML 사양에 따르면, 섹션에 대한 "각주 담당자"가 없을 경우 settings.xml의 전역 설정이 메모의 모양을 제어해야합니다. 사양의 논리에 의해

<w:footnotePr> 
    <w:numFmt w:val="upperRoman"/> 
    <w:footnote w:id="-1"/> 
    <w:footnote w:id="0"/> 
</w:footnotePr> 

, 최종 노트는 앞 절에서 각주와 같은 로마 숫자로 번호를 붙인다 것으로 보인다 : 문서 설정 파일의 각주 특성 요소는 이것이다. MS Word의 모든 사본에서 문서를 열어도 Word는 10 진수 번호가있는 마지막 섹션의 메모를 표시합니다. LibreOffice는 예상대로 로마 숫자로 표시합니다.

OOXML에 익숙한 사람이라면 왜 그런지 알 수 있습니까? 참고로

은 "footnotePr"요소의 MSDN 설명하고 해당 문서는 여기에서 찾을 수있다 : http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.footnoteproperties%28v=office.14%29.aspx

즉 "이 요소는 주어진 섹션에 대한 생략 된 경우, 그 부분은 주석을 사용한다 속성은 문서 전체 수준에서 정의됩니다. " 말씀이 말씀이 무엇을 수행

답변

0

...

[MS-OE376] 및 [MS-OI29500] 모두 문서 주석에 대한 몇 가지 물건,하지만 당신의 발견.

0

내 경험상 표준은 Word에서 나오는 것을 이해하는 데 도움이되지만 Word에 표준을 제공하면 예기치 않은 결과가 발생할 수 있습니다. 이러한 경우 나는 보통 Word를 사용하여 조금씩 점진적으로 변경하고 결과에 diff를 실행합니다.

각주 속성 변경을 Whole document에 적용하면 전역 설정뿐만 아니라 각 섹션 속성이 수정됩니다. 각 섹션을 문서화하기 위해 적용된 보증은 명백한 가치가 있습니다.

더 흥미롭게도 1,2,3 ... 번호 매기기를 적용하면 w:numFmt이 개별 섹션이나 모두 함께 제거됩니다.

문서에 표시되지 않는 숨겨진 기본값이있는 것처럼 보입니다. 내 경우에 w:numFnt의 경우는 decimal이고 w:pos의 경우는 pageBottom입니다. 그것이 언어 및/또는 로케일에 특정한 지 궁금합니다.

나는 다른 방향뿐만 아니라 오픈 오피스에서 잘못된 렌더링 decimal로 설정 lowerRoman 한 부분으로 설정 설정에서 기본과 DOCX을 버그가 의심 - 모든 lowerRoman 될 것입니다.