Package org.apache.poi.openxml4j.exceptions

Examples of org.apache.poi.openxml4j.exceptions.InvalidFormatException


          ContentTypeManager.CONTENT_TYPES_PART_NAME)) {
        try {
          this.contentTypeManager = new ZipContentTypeManager(
              getZipArchive().getInputStream(entry), this);
        } catch (IOException e) {
          throw new InvalidFormatException(e.getMessage());
        }
        break;
      }
    }

    // At this point, we should have loaded the content type part
    if (this.contentTypeManager == null) {
      throw new InvalidFormatException(
          "Package should contain a content type part [M1.13]");
    }

    // Now create all the relationships
    // (Need to create relationships before other
    //  parts, otherwise we might create a part before
    //  its relationship exists, and then it won't tie up)
    entries = this.zipArchive.getEntries();
    while (entries.hasMoreElements()) {
      ZipEntry entry = entries.nextElement();
      PackagePartName partName = buildPartName(entry);
      if(partName == null) continue;

      // Only proceed for Relationships at this stage
      String contentType = contentTypeManager.getContentType(partName);
      if (contentType != null && contentType.equals(ContentTypes.RELATIONSHIPS_PART)) {
        try {
          partList.put(partName, new ZipPackagePart(this, entry,
            partName, contentType));
        } catch (InvalidOperationException e) {
          throw new InvalidFormatException(e.getMessage());
        }
      }
    }

    // Then we can go through all the other parts
    entries = this.zipArchive.getEntries();
    while (entries.hasMoreElements()) {
      ZipEntry entry = entries.nextElement();
      PackagePartName partName = buildPartName(entry);
      if(partName == null) continue;

      String contentType = contentTypeManager
          .getContentType(partName);
      if (contentType != null && contentType.equals(ContentTypes.RELATIONSHIPS_PART)) {
        // Already handled
      }
      else if (contentType != null) {
        try {
          partList.put(partName, new ZipPackagePart(this, entry,
              partName, contentType));
        } catch (InvalidOperationException e) {
          throw new InvalidFormatException(e.getMessage());
        }
      } else {
        throw new InvalidFormatException(
            "The part "
                + partName.getURI().getPath()
                + " does not have any content type ! Rule: Package require content types when retrieving a part from a package. [M.1.14]");
      }
    }
View Full Code Here


      PackagePart[] parts = this.getPartsImpl();
      this.partList = new PackagePartCollection();
      for (PackagePart part : parts) {
        if (partList.containsKey(part.partName))
          throw new InvalidFormatException(
              "A part with the name '"
                  + part.partName
                  + "' already exist : Packages shall not contain equivalent part names and package implementers shall neither create nor recognize packages with equivalent part names. [M1.12]");

        // Check OPC compliance rule M4.1
        if (part.getContentType().equals(
            ContentTypes.CORE_PROPERTIES_PART)) {
          if (!hasCorePropertiesPart)
            hasCorePropertiesPart = true;
          else
            throw new InvalidFormatException(
                "OPC Compliance error [M4.1]: there is more than one core properties relationship in the package !");
        }

        PartUnmarshaller partUnmarshaller = partUnmarshallers
            .get(part.contentType);

        if (partUnmarshaller != null) {
          UnmarshallContext context = new UnmarshallContext(this,
              part.partName);
          try {
            PackagePart unmarshallPart = partUnmarshaller
                .unmarshall(context, part.getInputStream());
            partList.put(unmarshallPart.partName, unmarshallPart);

            // Core properties case
            if (unmarshallPart instanceof PackagePropertiesPart)
              this.packageProperties = (PackagePropertiesPart) unmarshallPart;
          } catch (IOException ioe) {
            logger.log(POILogger.WARN, "Unmarshall operation : IOException for "
                + part.partName);
            continue;
          } catch (InvalidOperationException invoe) {
            throw new InvalidFormatException(invoe.getMessage());
          }
        } else {
          try {
            partList.put(part.partName, part);
          } catch (InvalidOperationException e) {
            throw new InvalidFormatException(e.getMessage());
          }
        }
      }
    }
    return new ArrayList<PackagePart>(partList.values());
View Full Code Here

    else {
      SimpleDateFormat df = new SimpleDateFormat(
          "yyyy-MM-dd'T'HH:mm:ss'Z'");
      Date d = df.parse(s, new ParsePosition(0));
      if (d == null)
        throw new InvalidFormatException("Date not well formated");
      return new Nullable<Date>(d);
    }
  }
View Full Code Here

    this.defaultContentType = new TreeMap<String, String>();
    if (in != null) {
      try {
        parseContentTypesFile(in);
      } catch (InvalidFormatException e) {
        throw new InvalidFormatException(
            "Can't read content types part !");
      }
    }
  }
View Full Code Here

        String contentType = element.attribute(
            CONTENT_TYPE_ATTRIBUTE_NAME).getValue();
        addOverrideContentType(partName, contentType);
      }
    } catch (URISyntaxException urie) {
      throw new InvalidFormatException(urie.getMessage());
    } catch (DocumentException e) {
      throw new InvalidFormatException(e.getMessage());
    }
  }
View Full Code Here

    while (itNS.hasNext()) {
      Namespace ns = itNS.next();

      // Rule M4.2
      if (ns.getURI().equals(PackageNamespaces.MARKUP_COMPATIBILITY))
        throw new InvalidFormatException(
            "OPC Compliance error [M4.2]: A format consumer shall consider the use of the Markup Compatibility namespace to be an error.");
    }

    // Rule M4.3
    if (el.getNamespace().getURI().equals(
        PackageProperties.NAMESPACE_DCTERMS)
        && !(el.getName().equals(KEYWORD_CREATED) || el.getName()
            .equals(KEYWORD_MODIFIED)))
      throw new InvalidFormatException(
          "OPC Compliance error [M4.3]: Producers shall not create a document element that contains refinements to the Dublin Core elements, except for the two specified in the schema: <dcterms:created> and <dcterms:modified> Consumers shall consider a document element that violates this constraint to be an error.");

    // Rule M4.4
    if (el.attribute(new QName("lang", namespaceXML)) != null)
      throw new InvalidFormatException(
          "OPC Compliance error [M4.4]: Producers shall not create a document element that contains the xml:lang attribute. Consumers shall consider a document element that violates this constraint to be an error.");

    // Rule M4.5
    if (el.getNamespace().getURI().equals(
        PackageProperties.NAMESPACE_DCTERMS)) {
      // DCTerms namespace only use with 'created' and 'modified' elements
      String elName = el.getName();
      if (!(elName.equals(KEYWORD_CREATED) || elName
          .equals(KEYWORD_MODIFIED)))
        throw new InvalidFormatException("Namespace error : " + elName
            + " shouldn't have the following naemspace -> "
            + PackageProperties.NAMESPACE_DCTERMS);

      // Check for the 'xsi:type' attribute
      Attribute typeAtt = el.attribute(new QName("type", namespaceXSI));
      if (typeAtt == null)
        throw new InvalidFormatException("The element '" + elName
            + "' must have the '" + namespaceXSI.getPrefix()
            + ":type' attribute present !");

      // Check for the attribute value => 'dcterms:W3CDTF'
      if (!typeAtt.getValue().equals("dcterms:W3CDTF"))
        throw new InvalidFormatException("The element '" + elName
            + "' must have the '" + namespaceXSI.getPrefix()
            + ":type' attribute with the value 'dcterms:W3CDTF' !");
    }

    // Check its children
View Full Code Here

      PackagePart[] parts = this.getPartsImpl();
      this.partList = new PackagePartCollection();
      for (PackagePart part : parts) {
        if (partList.containsKey(part._partName))
          throw new InvalidFormatException(
              "A part with the name '"
                  + part._partName
                  + "' already exist : Packages shall not contain equivalent part names and package implementers shall neither create nor recognize packages with equivalent part names. [M1.12]");

        // Check OPC compliance rule M4.1
        if (part.getContentType().equals(
            ContentTypes.CORE_PROPERTIES_PART)) {
          if (!hasCorePropertiesPart)
            hasCorePropertiesPart = true;
          else
            throw new InvalidFormatException(
                "OPC Compliance error [M4.1]: there is more than one core properties relationship in the package !");
        }

        PartUnmarshaller partUnmarshaller = partUnmarshallers
            .get(part._contentType);

        if (partUnmarshaller != null) {
          UnmarshallContext context = new UnmarshallContext(this,
              part._partName);
          try {
            PackagePart unmarshallPart = partUnmarshaller
                .unmarshall(context, part.getInputStream());
            partList.put(unmarshallPart._partName, unmarshallPart);

            // Core properties case
            if (unmarshallPart instanceof PackagePropertiesPart)
              this.packageProperties = (PackagePropertiesPart) unmarshallPart;
          } catch (IOException ioe) {
            logger.log(POILogger.WARN, "Unmarshall operation : IOException for "
                + part._partName);
            continue;
          } catch (InvalidOperationException invoe) {
            throw new InvalidFormatException(invoe.getMessage());
          }
        } else {
          try {
            partList.put(part._partName, part);
          } catch (InvalidOperationException e) {
            throw new InvalidFormatException(e.getMessage());
          }
        }
      }
    }
    return new ArrayList<PackagePart>(partList.values());
View Full Code Here

          ContentTypeManager.CONTENT_TYPES_PART_NAME)) {
        try {
          this.contentTypeManager = new ZipContentTypeManager(
              getZipArchive().getInputStream(entry), this);
        } catch (IOException e) {
          throw new InvalidFormatException(e.getMessage());
        }
        break;
      }
    }

    // At this point, we should have loaded the content type part
    if (this.contentTypeManager == null) {
      throw new InvalidFormatException(
          "Package should contain a content type part [M1.13]");
    }

    // Now create all the relationships
    // (Need to create relationships before other
    //  parts, otherwise we might create a part before
    //  its relationship exists, and then it won't tie up)
    entries = this.zipArchive.getEntries();
    while (entries.hasMoreElements()) {
      ZipEntry entry = entries.nextElement();
      PackagePartName partName = buildPartName(entry);
      if(partName == null) continue;

      // Only proceed for Relationships at this stage
      String contentType = contentTypeManager.getContentType(partName);
      if (contentType != null && contentType.equals(ContentTypes.RELATIONSHIPS_PART)) {
        try {
          partList.put(partName, new ZipPackagePart(this, entry,
            partName, contentType));
        } catch (InvalidOperationException e) {
          throw new InvalidFormatException(e.getMessage());
        }
      }
    }

    // Then we can go through all the other parts
    entries = this.zipArchive.getEntries();
    while (entries.hasMoreElements()) {
      ZipEntry entry = entries.nextElement();
      PackagePartName partName = buildPartName(entry);
      if(partName == null) continue;

      String contentType = contentTypeManager
          .getContentType(partName);
      if (contentType != null && contentType.equals(ContentTypes.RELATIONSHIPS_PART)) {
        // Already handled
      }
      else if (contentType != null) {
        try {
          partList.put(partName, new ZipPackagePart(this, entry,
              partName, contentType));
        } catch (InvalidOperationException e) {
          throw new InvalidFormatException(e.getMessage());
        }
      } else {
        throw new InvalidFormatException(
            "The part "
                + partName.getURI().getPath()
                + " does not have any content type ! Rule: Package require content types when retrieving a part from a package. [M.1.14]");
      }
    }
View Full Code Here

    while (itNS.hasNext()) {
      Namespace ns = (Namespace) itNS.next();

      // Rule M4.2
      if (ns.getURI().equals(PackageNamespaces.MARKUP_COMPATIBILITY))
        throw new InvalidFormatException(
            "OPC Compliance error [M4.2]: A format consumer shall consider the use of the Markup Compatibility namespace to be an error.");
    }

    // Rule M4.3
    if (el.getNamespace().getURI().equals(
        PackageProperties.NAMESPACE_DCTERMS)
        && !(el.getName().equals(KEYWORD_CREATED) || el.getName()
            .equals(KEYWORD_MODIFIED)))
      throw new InvalidFormatException(
          "OPC Compliance error [M4.3]: Producers shall not create a document element that contains refinements to the Dublin Core elements, except for the two specified in the schema: <dcterms:created> and <dcterms:modified> Consumers shall consider a document element that violates this constraint to be an error.");

    // Rule M4.4
    if (el.attribute(new QName("lang", namespaceXML)) != null)
      throw new InvalidFormatException(
          "OPC Compliance error [M4.4]: Producers shall not create a document element that contains the xml:lang attribute. Consumers shall consider a document element that violates this constraint to be an error.");

    // Rule M4.5
    if (el.getNamespace().getURI().equals(
        PackageProperties.NAMESPACE_DCTERMS)) {
      // DCTerms namespace only use with 'created' and 'modified' elements
      String elName = el.getName();
      if (!(elName.equals(KEYWORD_CREATED) || elName
          .equals(KEYWORD_MODIFIED)))
        throw new InvalidFormatException("Namespace error : " + elName
            + " shouldn't have the following naemspace -> "
            + PackageProperties.NAMESPACE_DCTERMS);

      // Check for the 'xsi:type' attribute
      Attribute typeAtt = el.attribute(new QName("type", namespaceXSI));
      if (typeAtt == null)
        throw new InvalidFormatException("The element '" + elName
            + "' must have the '" + namespaceXSI.getPrefix()
            + ":type' attribute present !");

      // Check for the attribute value => 'dcterms:W3CDTF'
      if (!typeAtt.getValue().equals("dcterms:W3CDTF"))
        throw new InvalidFormatException("The element '" + elName
            + "' must have the '" + namespaceXSI.getPrefix()
            + ":type' attribute with the value 'dcterms:W3CDTF' !");
    }

    // Check its children
View Full Code Here

      throws InvalidFormatException {
    URI partNameURI;
    try {
      partNameURI = toURI(partName);
    } catch (URISyntaxException e) {
      throw new InvalidFormatException(e.getMessage());
    }
    return createPartName(partNameURI);
  }
View Full Code Here

TOP

Related Classes of org.apache.poi.openxml4j.exceptions.InvalidFormatException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.