Changeset 511


Ignore:
Timestamp:
07/20/08 01:44:37 (4 years ago)
Author:
jharrop
Message:

Add ability to create a WordML Package from a Word 2007 xmlPackage.
Moved xmlPackage content model

Location:
trunk/docx4j
Files:
8 added
5 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/convert/out/xmlPackage/XmlPackage.java

    r510 r511  
    1 /* 
    2  *  Copyright 2007-2008, Plutext Pty Ltd. 
    3  *    
    4  *  This file is part of docx4j. 
    5  
    6     docx4j is licensed under the Apache License, Version 2.0 (the "License");  
    7     you may not use this file except in compliance with the License.  
    8  
    9     You may obtain a copy of the License at  
    10  
    11         http://www.apache.org/licenses/LICENSE-2.0  
    12  
    13     Unless required by applicable law or agreed to in writing, software  
    14     distributed under the License is distributed on an "AS IS" BASIS,  
    15     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
    16     See the License for the specific language governing permissions and  
    17     limitations under the License. 
    18  
    19  */ 
    20  
    211/* 
    222 *  Copyright 2007-2008, Plutext Pty Ltd. 
     
    8969                this.packageIn = p; 
    9070                 
    91                 factory = new org.docx4j.convert.out.xmlPackage.ObjectFactory();  
     71                factory = new org.docx4j.xmlPackage.ObjectFactory();  
    9272        } 
    9373                 
     
    9575        public Package packageIn; 
    9676         
    97         private static org.docx4j.convert.out.xmlPackage.ObjectFactory factory; 
    98          
    99         private org.docx4j.convert.out.xmlPackage.Package pkgResult; 
    100          
    101          
    102         public org.docx4j.convert.out.xmlPackage.Package get() throws Docx4JException  {                 
     77        private static org.docx4j.xmlPackage.ObjectFactory factory; 
     78         
     79        private org.docx4j.xmlPackage.Package pkgResult; 
     80         
     81         
     82        public org.docx4j.xmlPackage.Package get() throws Docx4JException  {             
    10383                 
    10484                 try { 
     
    158138        public void  saveRawXmlPart(Part part, String partName) throws Docx4JException { 
    159139                 
    160         org.docx4j.convert.out.xmlPackage.Part partResult = factory.createPart(); 
     140        org.docx4j.xmlPackage.Part partResult = factory.createPart(); 
    161141         
    162142        if (partName.startsWith("/")) {        
     
    175155        } 
    176156        pkgResult.getPart().add(partResult); 
    177         org.docx4j.convert.out.xmlPackage.XmlData dataResult = factory.createXmlData(); 
     157        org.docx4j.xmlPackage.XmlData dataResult = factory.createXmlData(); 
    178158        partResult.setXmlData(dataResult); 
    179159 
     
    332312                //InputStream bin = ((BinaryPart)part).getBinaryData();          
    333313                 
    334         org.docx4j.convert.out.xmlPackage.Part partResult = factory.createPart(); 
     314        org.docx4j.xmlPackage.Part partResult = factory.createPart(); 
    335315        partResult.setName(resolvedPartUri); 
    336316        partResult.setContentType( part.getContentType() ); 
     
    364344                XmlPackage worker = new XmlPackage(wordMLPackage); 
    365345                 
    366                 org.docx4j.convert.out.xmlPackage.Package result = worker.get(); 
     346                org.docx4j.xmlPackage.Package result = worker.get(); 
    367347                 
    368348                boolean suppressDeclaration = true; 
     
    374354                                                        org.docx4j.jaxb.Context.jcXmlPackage) ); 
    375355                 
    376                 // TODO 
    377                 // 1. add mso-application PI 
     356                // Note - We don't bother adding: 
     357                // 1. mso-application PI 
    378358                // 2. @padding on rels? 
     359                // Since Word 2007 is happy to consume without either of these 
    379360                 
    380361         
  • trunk/docx4j/src/main/java/org/docx4j/jaxb/Context.java

    r510 r511  
    4040                        jcDocPropsCustom = JAXBContext.newInstance("org.docx4j.docProps.custom"); 
    4141                        jcDocPropsExtended = JAXBContext.newInstance("org.docx4j.docProps.extended"); 
    42                         jcXmlPackage = JAXBContext.newInstance("org.docx4j.convert.out.xmlPackage"); 
     42                        jcXmlPackage = JAXBContext.newInstance("org.docx4j.xmlPackage"); 
    4343                } catch (Exception ex) { 
    4444                        ex.printStackTrace(); 
  • trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/Dom4jXmlPart.java

    r302 r511  
    6666                }                
    6767        } 
     68 
     69        public void setDocument(Document document) { 
     70                 
     71                this.document = document; 
     72        } 
     73         
    6874         
    6975        public abstract Document getDocument(); 
  • trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/JaxbXmlPart.java

    r302 r511  
    2828import javax.xml.bind.Marshaller; 
    2929import javax.xml.bind.UnmarshalException; 
     30import javax.xml.bind.Unmarshaller; 
    3031import javax.xml.bind.ValidationEventHandler; 
    3132 
     
    148149        } 
    149150 
    150  
     151     
    151152    /** 
    152153         * Unmarshal XML data from the specified InputStream and return the 
     
    166167    public abstract Object unmarshal( java.io.InputStream is ) throws JAXBException; 
    167168 
     169    public Object unmarshal(org.w3c.dom.Element el) throws JAXBException { 
     170 
     171                try { 
     172 
     173                        Unmarshaller u = jc.createUnmarshaller(); 
     174                                                 
     175                        u.setEventHandler(new org.docx4j.jaxb.JaxbValidationEventHandler()); 
     176 
     177                        jaxbElement = u.unmarshal( el ); 
     178 
     179                        return jaxbElement; 
     180                         
     181                } catch (JAXBException e) { 
     182                        // TODO Auto-generated catch block 
     183                        e.printStackTrace(); 
     184                        return null; 
     185                } 
     186        } 
    168187 
    169188         
  • trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/BinaryPart.java

    r330 r511  
    5757                } 
    5858        }        
    59                          
     59 
     60        public void setBinaryData(byte[] bytes) { 
     61                 
     62                bb = java.nio.ByteBuffer.wrap(bytes); 
     63                 
     64        } 
     65         
     66         
    6067        public java.nio.ByteBuffer getBuffer() { 
    6168                return bb; 
  • trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/relationships/RelationshipsPart.java

    r510 r511  
    236236                this.sourceP = sourceP; 
    237237                init(); 
    238                 parseRelationshipsDocument(); 
     238                Element root = document.getRootElement();                
     239                parseRelationshipsDocument(root); 
    239240                 
    240241//              this.container = (Package) pack; 
    241242//              isRelationshipPart = partName.isRelationshipPartURI(); 
    242243        } 
     244 
     245        // This constructor used when input is a Word 2007 Xml Package file 
     246        public RelationshipsPart(Base sourceP, PartName partName, Element root) 
     247                        throws InvalidFormatException { 
     248                 
     249                super(partName); 
     250                 
     251                // setDocument(in);  // nb - not set 
     252                this.sourceP = sourceP; 
     253                init(); 
     254                parseRelationshipsDocument(root); 
     255 
     256                // this.container = (Package) pack; 
     257                // isRelationshipPart = partName.isRelationshipPartURI(); 
     258        } 
     259         
    243260         
    244261        private void init() { 
     
    449466                 *             Throws if the relationship part is invalid. 
    450467                 */ 
    451                 private void parseRelationshipsDocument() 
     468                private void parseRelationshipsDocument(Element root) 
    452469                                throws InvalidFormatException { 
    453470                        try { 
    454          
     471                                         
    455472                                // Browse default types 
    456                                 Element root = document.getRootElement(); 
    457473         
    458474                                // Check OPC compliance M4.1 rule 
     
    460476         
    461477                                for (Iterator i = root 
    462                                                 .elementIterator(Relationship.RELATIONSHIP_TAG_NAME); i 
    463                                                 .hasNext();) { 
     478                                                .elementIterator(Relationship.RELATIONSHIP_TAG_NAME);  
     479                                                i.hasNext();) { 
    464480                                        Element element = (Element) i.next(); 
    465481 
Note: See TracChangeset for help on using the changeset viewer.