Was sind CTP-, CTTbl-Klassen (Objekte) in Apache POI?

8

Ich versuche, einige Teile von Apache POI zu verstehen. Beispielsweise versuche ich, Text (oder Tabelle usw.) von einer vorhandenen docx -Datei zu erhalten. Zum Beispiel es gibt eine Methode getParagraph (.. CTP p) in XWPFDocument :
Es gibt "einen Absatz mit einer CTP-Klasse p" zurück. Aber was ist CTP-Klasse? Ich habe in die XML-Struktur des Dokuments geschaut, aber nichts ähnliches gefunden. Infolgedessen weiß ich nicht, wie man überhaupt eine Methode nennt. Dort ist auch eine Methode getTable (CTTbl CTTbl) für das gleiche XWPFDocument, die "eine Tabelle durch ihr CTtbl-Objekt zurückgibt."

Es scheint, dass es einen CP * etwas für jeden Teil / Typ von Daten in ooxml Dokumenten gibt, also würde ich gerne verstehen, wie man mit ihnen arbeitet. Außerdem scheint es, dass diese Methoden aus der Dokumentation der einzige direkte Weg sind, um Elemente zu erhalten, ohne sie in der Sammlung festzuhalten oder ihre Position zu erraten.

    
Emptyfruit 29.08.2014, 19:55
quelle

1 Antwort

7

Die CTx-Klassen sind XMLBeans-Wrapper . Sie werden automatisch aus den veröffentlichten XML-Schemadateien der OOXML-Spezifikation generiert.

Wenn das xml-Element in der Datei ein p 1 ist, ist der resultierende XMLBeans-Wrapper für OOXML CTP . Wenn es table ist, dann ist es CTTable . Der Namespace des xml -Elements wird auf das Paket der Klasse angewendet. Wenn Sie also zwei verschiedene Elemente mit demselben lokalen Namen, aber unterschiedlichen Namespaces haben, können Sie herausfinden, welches Sie möchten.

Wenn Sie die Wahl haben, arbeiten Sie nicht mit den CT-Klassen. Sie sind auf niedriger Ebene und erfordern, dass Sie über die Struktur und das Format des zugrunde liegenden Dateiformats Bescheid wissen. Sie werden normalerweise nur für fortgeschrittene Anwendungsfälle benötigt.

Fast alles, was Sie für einen allgemeinen Anwendungsfall tun möchten, wird mit den Apache POI usermodel Wrapping-Klassen möglich sein, verwenden Sie nur diese, wenn Sie können.

    
Gagravarr 29.08.2014, 23:50
quelle

Tags und Links