This is an automated email from the ASF dual-hosted git repository. tallison pushed a commit to branch branch_3x in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/branch_3x by this push: new b9554c2a8 TIKA-4453 -- decrement embedded depth in rpwh via Stephen H (#2277) b9554c2a8 is described below commit b9554c2a85a286259ef0077bb169172c7b08f13f Author: Tim Allison <talli...@apache.org> AuthorDate: Thu Jul 10 09:15:47 2025 -0400 TIKA-4453 -- decrement embedded depth in rpwh via Stephen H (#2277) (cherry picked from commit 388097b687560a6f5337eab895273b1c1e6654ed) --- .../fork/RecursiveMetadataContentHandlerProxy.java | 1 + .../sax/AbstractRecursiveParserWrapperHandler.java | 8 + .../java/org/apache/tika/fork/ForkParserTest.java | 29 + .../resources/test-documents/massive_embedded.xml | 798 +++++++++++++++++++++ 4 files changed, 836 insertions(+) diff --git a/tika-core/src/main/java/org/apache/tika/fork/RecursiveMetadataContentHandlerProxy.java b/tika-core/src/main/java/org/apache/tika/fork/RecursiveMetadataContentHandlerProxy.java index 348c33d92..1195ef20d 100644 --- a/tika-core/src/main/java/org/apache/tika/fork/RecursiveMetadataContentHandlerProxy.java +++ b/tika-core/src/main/java/org/apache/tika/fork/RecursiveMetadataContentHandlerProxy.java @@ -72,6 +72,7 @@ class RecursiveMetadataContentHandlerProxy extends RecursiveParserWrapperHandler public void endEmbeddedDocument(ContentHandler contentHandler, Metadata metadata) throws SAXException { proxyBackToClient(EMBEDDED_DOCUMENT, contentHandler, metadata); + decrementEmbeddedDepth(); } @Override diff --git a/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java b/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java index d423009dc..5c4294dfe 100644 --- a/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java +++ b/tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java @@ -94,6 +94,14 @@ public abstract class AbstractRecursiveParserWrapperHandler extends DefaultHandl embeddedDepth--; } + /** + * This is called by RecursiveMetadataContentHandlerProxy as it + * cannot call endEmbeddedDocument(). + */ + protected void decrementEmbeddedDepth() { + embeddedDepth--; + } + /** * This is called after the full parse has completed. Override this * for custom behavior. Make sure to call this as <code>super.endDocument(...)</code> diff --git a/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java b/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java index b233b44e1..f6ac5335b 100644 --- a/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java +++ b/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java @@ -278,6 +278,35 @@ public class ForkParserTest extends TikaTest { assertEquals("/embed1.xml", m1.get(TikaCoreProperties.EMBEDDED_RESOURCE_PATH)); } + @Test + public void testRecursiveParserWrapperMassiveEmbedded() throws Exception { + Parser parser = new AutoDetectParser(); + RecursiveParserWrapper wrapper = new RecursiveParserWrapper(parser); + RecursiveParserWrapperHandler handler = new RecursiveParserWrapperHandler( + new BasicContentHandlerFactory(BasicContentHandlerFactory.HANDLER_TYPE.TEXT, + 20000)); + try (ForkParser fork = new ForkParser(ForkParserTest.class.getClassLoader(), wrapper); + InputStream is = getResourceAsStream("/test-documents/massive_embedded.xml")) { + Metadata metadata = new Metadata(); + ParseContext context = new ParseContext(); + fork.parse(is, handler, metadata, context); + } + List<Metadata> metadataList = handler.getMetadataList(); + assertEquals(111, metadataList.size()); + Metadata m0 = metadataList.get(0); + assertEquals("Nikolai Lobachevsky", m0.get(TikaCoreProperties.CREATOR)); + assertContains("main_content", m0.get(TikaCoreProperties.TIKA_CONTENT)); + + for (int i = 1; i <= 110; i++) { + assertContains("embed" + i + ".xml", m0.get(TikaCoreProperties.TIKA_CONTENT)); + + Metadata m1 = metadataList.get(i); + assertEquals("embeddedAuthor", m1.get(TikaCoreProperties.CREATOR)); + assertContains("some_embedded_content", m1.get(TikaCoreProperties.TIKA_CONTENT)); + assertEquals("/embed" + i + ".xml", m1.get(TikaCoreProperties.EMBEDDED_RESOURCE_PATH)); + } + } + @Test public void testRPWWithEmbeddedNPE() throws Exception { Parser parser = new AutoDetectParser(); diff --git a/tika-core/src/test/resources/test-documents/massive_embedded.xml b/tika-core/src/test/resources/test-documents/massive_embedded.xml new file mode 100755 index 000000000..217c7347e --- /dev/null +++ b/tika-core/src/test/resources/test-documents/massive_embedded.xml @@ -0,0 +1,798 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<mock> + + <metadata action="add" name="dc:creator">Nikolai Lobachevsky</metadata> + <write element="p">main_content</write> + <!-- auto detection wasn't working for some reason; add content-type as + is to trigger mock on the embedded --> + <embedded filename="embed1.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed2.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed3.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed4.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed5.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed6.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed7.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed8.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed9.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed10.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed11.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed12.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed13.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed14.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed15.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed16.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed17.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed18.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed19.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed20.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed21.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed22.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed23.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed24.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed25.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed26.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed27.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed28.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed29.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed30.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed31.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed32.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed33.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed34.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed35.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed36.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed37.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed38.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed39.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed40.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed41.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed42.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed43.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed44.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed45.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed46.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed47.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed48.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed49.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed50.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed51.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed52.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed53.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed54.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed55.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed56.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed57.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed58.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed59.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed60.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed61.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed62.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed63.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed64.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed65.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed66.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed67.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed68.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed69.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed70.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed71.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed72.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed73.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed74.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed75.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed76.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed77.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed78.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed79.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed80.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed81.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed82.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed83.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed84.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed85.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed86.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed87.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed88.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed89.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed90.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed91.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed92.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed93.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed94.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed95.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed96.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed97.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed98.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed99.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed100.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed101.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed102.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed103.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed104.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed105.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed106.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed107.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed108.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed109.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + + <embedded filename="embed110.xml" content-type="application/mock+xml"> + <mock> + <metadata action="add" name="dc:creator">embeddedAuthor</metadata> + <write element="p">some_embedded_content</write> + </mock> + </embedded> + +</mock> \ No newline at end of file