diff --git a/.travis.yml b/.travis.yml index d266b1659..6990bf032 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,11 +46,11 @@ script: ## PHPLOC - ./vendor/bin/phploc src/ ## PHPDocumentor - - ./vendor/bin/phpdoc -q -d ./src -t ./build/docs --template="responsive-twig" + # - ./vendor/bin/phpdoc -q -d ./src -t ./build/docs --template="responsive-twig" after_script: ## PHPDocumentor - - bash .travis_shell_after_success.sh + # - bash .travis_shell_after_success.sh ## Scrutinizer - wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml diff --git a/composer.json b/composer.json index 4c633b3fb..fcf1b5123 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "phpoffice/common": "0.2.*" }, "require-dev": { - "phpunit/phpunit": "~4.8.36", + "phpunit/phpunit": "4.*|5.*|6.*|7.*", "phpdocumentor/phpdocumentor":"2.*", "phpmd/phpmd": "2.*", "sebastian/phpcpd": "2.*", diff --git a/docs/references.rst b/docs/references.rst index b07b35644..c29d97457 100644 --- a/docs/references.rst +++ b/docs/references.rst @@ -26,6 +26,11 @@ MSDN : MSDN `__ - `Open XML SDK 2.5 with Validator `__ +Library of Congress : + +- `OOXML Format Family -- ISO/IEC 29500 and ECMA 376 `__ +- `Schemas in W3C XML Schema language and in RELAX NG for the Strict variant of PPTX, etc. `__ + OpenDocument --------------------- diff --git a/phpunit.xml.dist b/phpunit.xml.dist index c22a3a050..a9f7e2189 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -6,8 +6,7 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="false" - syntaxCheck="false"> + stopOnFailure="false"> ./tests/PhpPresentation @@ -19,7 +18,7 @@ - + - \ No newline at end of file + diff --git a/samples/Sample_02_Serialized.php b/samples/Sample_02_Serialized.php index 5a5159f86..42cbc2d06 100644 --- a/samples/Sample_02_Serialized.php +++ b/samples/Sample_02_Serialized.php @@ -15,9 +15,9 @@ echo date('H:i:s') . ' Set properties'.EOL; $objPHPPresentation->getDocumentProperties()->setCreator('PHPOffice') ->setLastModifiedBy('PHPPresentation Team') - ->setTitle('Sample 03 Title') - ->setSubject('Sample 03 Subject') - ->setDescription('Sample 03 Description') + ->setTitle('Sample 02 Title') + ->setSubject('Sample 02 Subject') + ->setDescription('Sample 02 Description') ->setKeywords('office 2007 openxml libreoffice odt php') ->setCategory('Sample Category'); diff --git a/samples/Sample_21_Password.php b/samples/Sample_21_Password.php new file mode 100644 index 000000000..ccab133cf --- /dev/null +++ b/samples/Sample_21_Password.php @@ -0,0 +1,28 @@ +ODPresentation'; +$pptReader = IOFactory::createReader('ODPresentation'); +$pptReader->setPassword('motdepasse'); +$oPHPPresentation = $pptReader->load('resources/SamplePassword.odp'); + +$oTree = new PhpPptTree($oPHPPresentation); +echo $oTree->display(); + +echo '

PowerPoint2007

'; +$pptReader = IOFactory::createReader('PowerPoint2007'); +$pptReader->setPassword('motdepasse'); +$oPHPPresentation = $pptReader->load('resources/SamplePassword.pptx'); + +$oTree = new PhpPptTree($oPHPPresentation); +echo $oTree->display(); +if (!CLI) { + include_once 'Sample_Footer.php'; +} diff --git a/samples/Sample_Header.php b/samples/Sample_Header.php index 6cf01f8e0..6cc8fb594 100644 --- a/samples/Sample_Header.php +++ b/samples/Sample_Header.php @@ -1,7 +1,7 @@ = 0x20 && $i <= 0x7E) ? chr($i) : $pad; + } + } + + $hex = str_split(bin2hex($data), $width * 2); + $chars = str_split(strtr($data, $from, $to), $width); + + $offset = 0; + echo '
';
+    foreach ($hex as $i => $line) {
+        echo sprintf('%6X', $offset) . ' : ' . implode(' ', str_split($line, 2)) . ' [' . $chars[$i] . ']' . $newline;
+        $offset += $width;
+    }
+    echo '
'; +} + error_reporting(E_ALL); define('CLI', (PHP_SAPI == 'cli') ? true : false); define('EOL', CLI ? PHP_EOL : '
'); @@ -74,12 +102,11 @@ ->setWidth(600) ->setOffsetX(170) ->setOffsetY(180); -$oShapeRichText->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_CENTER ); +$oShapeRichText->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); $textRun = $oShapeRichText->createTextRun('Thank you for using PHPPresentation!'); $textRun->getFont()->setBold(true) ->setSize(60) - ->setColor( new Color( 'FFE06B20' ) ); - + ->setColor(new Color('FFE06B20')); // Populate samples @@ -109,7 +136,7 @@ function write($phpPresentation, $filename, $writers) { $result = ''; - + // Write documents foreach ($writers as $writer => $extension) { $result .= date('H:i:s') . " Write to {$writer} format"; @@ -177,7 +204,7 @@ function createTemplatedSlide(PhpOffice\PhpPresentation\PhpPresentation $objPHPP { // Create slide $slide = $objPHPPresentation->createSlide(); - + // Add logo $shape = $slide->createDrawingShape(); $shape->setName('PHPPresentation logo') @@ -194,7 +221,8 @@ function createTemplatedSlide(PhpOffice\PhpPresentation\PhpPresentation $objPHPP return $slide; } -class PhpPptTree { +class PhpPptTree +{ protected $oPhpPresentation; protected $htmlOutput; @@ -236,9 +264,9 @@ protected function displayPhpPresentation(PhpPresentation $oPHPPpt) foreach ($oPHPPpt->getAllSlides() as $oSlide) { $this->append('
  • Slide'); $this->append('
      '); - $this->append('
    • Info "Slide"
    • '); + $this->append('
    • Info "Slide"
    • '); foreach ($oSlide->getShapeCollection() as $oShape) { - if($oShape instanceof Group) { + if ($oShape instanceof Group) { $this->append('
    • Shape "Group"'); $this->append('
        '); // $this->append('
      • Info "Group"
      • '); @@ -260,16 +288,16 @@ protected function displayPhpPresentation(PhpPresentation $oPHPPpt) protected function displayShape(AbstractShape $shape) { - if($shape instanceof Drawing\Gd) { - $this->append('
      • Shape "Drawing\Gd"
      • '); - } elseif($shape instanceof Drawing\File) { - $this->append('
      • Shape "Drawing\File"
      • '); - } elseif($shape instanceof Drawing\Base64) { - $this->append('
      • Shape "Drawing\Base64"
      • '); - } elseif($shape instanceof Drawing\ZipFile) { - $this->append('
      • Shape "Drawing\Zip"
      • '); - } elseif($shape instanceof RichText) { - $this->append('
      • Shape "RichText"
      • '); + if ($shape instanceof Drawing\Gd) { + $this->append('
      • Shape "Drawing\Gd"
      • '); + } elseif ($shape instanceof Drawing\File) { + $this->append('
      • Shape "Drawing\File"
      • '); + } elseif ($shape instanceof Drawing\Base64) { + $this->append('
      • Shape "Drawing\Base64"
      • '); + } elseif ($shape instanceof Drawing\ZipFile) { + $this->append('
      • Shape "Drawing\Zip"
      • '); + } elseif ($shape instanceof RichText) { + $this->append('
      • Shape "RichText"
      • '); } else { var_dump($shape); } @@ -297,23 +325,24 @@ protected function displayPhpPresentationInfo(PhpPresentation $oPHPPpt) $this->append(''); foreach ($oPHPPpt->getAllSlides() as $oSlide) { - $this->append('
        '); + $this->append('
        '); $this->append('
        '); - $this->append('
        HashCode
        '.$oSlide->getHashCode().'
        '); - $this->append('
        Slide Layout
        Layout::'.$this->getConstantName('\PhpOffice\PhpPresentation\Slide\Layout', $oSlide->getSlideLayout()).'
        '); - - $this->append('
        Offset X
        '.$oSlide->getOffsetX().'
        '); - $this->append('
        Offset Y
        '.$oSlide->getOffsetY().'
        '); - $this->append('
        Extent X
        '.$oSlide->getExtentX().'
        '); - $this->append('
        Extent Y
        '.$oSlide->getExtentY().'
        '); + $this->append('
        HashCode
        ' . $oSlide->getHashCode() . '
        '); + $this->append('
        Slide Layout
        Layout::' . $this->getConstantName('\PhpOffice\PhpPresentation\Slide\Layout', + $oSlide->getSlideLayout()) . '
        '); + + $this->append('
        Offset X
        ' . $oSlide->getOffsetX() . '
        '); + $this->append('
        Offset Y
        ' . $oSlide->getOffsetY() . '
        '); + $this->append('
        Extent X
        ' . $oSlide->getExtentX() . '
        '); + $this->append('
        Extent Y
        ' . $oSlide->getExtentY() . '
        '); $oBkg = $oSlide->getBackground(); if ($oBkg instanceof Slide\AbstractBackground) { if ($oBkg instanceof Slide\Background\Color) { - $this->append('
        Background Color
        #'.$oBkg->getColor()->getRGB().'
        '); + $this->append('
        Background Color
        #' . $oBkg->getColor()->getRGB() . '
        '); } if ($oBkg instanceof Slide\Background\Image) { $sBkgImgContents = file_get_contents($oBkg->getPath()); - $this->append('
        Background Image
        '); + $this->append('
        Background Image
        '); } } $oNote = $oSlide->getNote(); @@ -330,7 +359,7 @@ protected function displayPhpPresentationInfo(PhpPresentation $oPHPPpt) $this->append('
        '); foreach ($oSlide->getShapeCollection() as $oShape) { - if($oShape instanceof Group) { + if ($oShape instanceof Group) { foreach ($oShape->getShapeCollection() as $oShapeChild) { $this->displayShapeInfo($oShapeChild); } @@ -341,17 +370,33 @@ protected function displayPhpPresentationInfo(PhpPresentation $oPHPPpt) } } + protected function getConstantName($class, $search, $startWith = '') + { + $fooClass = new ReflectionClass($class); + $constants = $fooClass->getConstants(); + $constName = null; + foreach ($constants as $key => $value) { + if ($value == $search) { + if (empty($startWith) || (!empty($startWith) && strpos($key, $startWith) === 0)) { + $constName = $key; + } + break; + } + } + return $constName; + } + protected function displayShapeInfo(AbstractShape $oShape) { - $this->append('
        '); + $this->append('
        '); $this->append('
        '); - $this->append('
        HashCode
        '.$oShape->getHashCode().'
        '); - $this->append('
        Offset X
        '.$oShape->getOffsetX().'
        '); - $this->append('
        Offset Y
        '.$oShape->getOffsetY().'
        '); - $this->append('
        Height
        '.$oShape->getHeight().'
        '); - $this->append('
        Width
        '.$oShape->getWidth().'
        '); - $this->append('
        Rotation
        '.$oShape->getRotation().'°
        '); - $this->append('
        Hyperlink
        '.ucfirst(var_export($oShape->hasHyperlink(), true)).'
        '); + $this->append('
        HashCode
        ' . $oShape->getHashCode() . '
        '); + $this->append('
        Offset X
        ' . $oShape->getOffsetX() . '
        '); + $this->append('
        Offset Y
        ' . $oShape->getOffsetY() . '
        '); + $this->append('
        Height
        ' . $oShape->getHeight() . '
        '); + $this->append('
        Width
        ' . $oShape->getWidth() . '
        '); + $this->append('
        Rotation
        ' . $oShape->getRotation() . '°
        '); + $this->append('
        Hyperlink
        ' . ucfirst(var_export($oShape->hasHyperlink(), true)) . '
        '); $this->append('
        Fill
        '); if (is_null($oShape->getFill())) { $this->append('
        None
        '); @@ -377,14 +422,14 @@ protected function displayShapeInfo(AbstractShape $oShape) call_user_func($oShape->getRenderingFunction(), $oShape->getImageResource()); $sShapeImgContents = ob_get_contents(); ob_end_clean(); - $this->append('
        Mime-Type
        '.$oShape->getMimeType().'
        '); - $this->append('
        Image
        '); - } elseif($oShape instanceof Drawing\AbstractDrawingAdapter) { - $this->append('
        Name
        '.$oShape->getName().'
        '); - $this->append('
        Description
        '.$oShape->getDescription().'
        '); - } elseif($oShape instanceof RichText) { - $this->append('
        # of paragraphs
        '.count($oShape->getParagraphs()).'
        '); - $this->append('
        Inset (T / R / B / L)
        '.$oShape->getInsetTop().'px / '.$oShape->getInsetRight().'px / '.$oShape->getInsetBottom().'px / '.$oShape->getInsetLeft().'px
        '); + $this->append('
        Mime-Type
        ' . $oShape->getMimeType() . '
        '); + $this->append('
        Image
        '); + } elseif ($oShape instanceof Drawing\AbstractDrawingAdapter) { + $this->append('
        Name
        ' . $oShape->getName() . '
        '); + $this->append('
        Description
        ' . $oShape->getDescription() . '
        '); + } elseif ($oShape instanceof RichText) { + $this->append('
        # of paragraphs
        ' . count($oShape->getParagraphs()) . '
        '); + $this->append('
        Inset (T / R / B / L)
        ' . $oShape->getInsetTop() . 'px / ' . $oShape->getInsetRight() . 'px / ' . $oShape->getInsetBottom() . 'px / ' . $oShape->getInsetLeft() . 'px
        '); $this->append('
        Text
        '); $this->append('
        '); foreach ($oShape->getParagraphs() as $oParagraph) { @@ -400,40 +445,41 @@ protected function displayShapeInfo(AbstractShape $oShape) $this->append('
        Bullet Color
        ' . $oParagraph->getBulletStyle()->getBulletColor()->getARGB() . '
        '); } if ($oParagraph->getBulletStyle()->getBulletType() == Bullet::TYPE_BULLET) { - $this->append('
        Bullet Char
        '.$oParagraph->getBulletStyle()->getBulletChar().'
        '); + $this->append('
        Bullet Char
        ' . $oParagraph->getBulletStyle()->getBulletChar() . '
        '); } if ($oParagraph->getBulletStyle()->getBulletType() == Bullet::TYPE_NUMERIC) { - $this->append('
        Bullet Start At
        '.$oParagraph->getBulletStyle()->getBulletNumericStartAt().'
        '); - $this->append('
        Bullet Style
        '.$oParagraph->getBulletStyle()->getBulletNumericStyle().'
        '); + $this->append('
        Bullet Start At
        ' . $oParagraph->getBulletStyle()->getBulletNumericStartAt() . '
        '); + $this->append('
        Bullet Style
        ' . $oParagraph->getBulletStyle()->getBulletNumericStyle() . '
        '); } $this->append('
        Line Spacing
        '.$oParagraph->getLineSpacing().'
        '); $this->append('
        RichText
        '); foreach ($oParagraph->getRichTextElements() as $oRichText) { - if($oRichText instanceof BreakElement) { + if ($oRichText instanceof BreakElement) { $this->append('
        Break
        '); } else { if ($oRichText instanceof TextElement) { - $this->append('
        TextElement
        '); + $this->append('
        TextElement
        '); } else { - $this->append('
        Run
        '); + $this->append('
        Run
        '); } - $this->append('
        '.$oRichText->getText()); + $this->append('
        ' . $oRichText->getText()); $this->append('
        '); - $this->append('
        Font Name
        '.$oRichText->getFont()->getName().'
        '); - $this->append('
        Font Size
        '.$oRichText->getFont()->getSize().'
        '); - $this->append('
        Font Color
        #'.$oRichText->getFont()->getColor()->getARGB().'
        '); + $this->append('
        Font Name
        ' . $oRichText->getFont()->getName() . '
        '); + $this->append('
        Font Size
        ' . $oRichText->getFont()->getSize() . '
        '); + $this->append('
        Font Color
        #' . $oRichText->getFont()->getColor()->getARGB() . '
        '); $this->append('
        Font Transform
        '); - $this->append('Bold : '.($oRichText->getFont()->isBold() ? 'Y' : 'N').' - '); - $this->append('Italic : '.($oRichText->getFont()->isItalic() ? 'Y' : 'N').' - '); - $this->append('Underline : Underline::'.$this->getConstantName('\PhpOffice\PhpPresentation\Style\Font', $oRichText->getFont()->getUnderline()).' - '); - $this->append('Strikethrough : '.($oRichText->getFont()->isStrikethrough() ? 'Y' : 'N').' - '); - $this->append('SubScript : '.($oRichText->getFont()->isSubScript() ? 'Y' : 'N').' - '); - $this->append('SuperScript : '.($oRichText->getFont()->isSuperScript() ? 'Y' : 'N')); + $this->append('Bold : ' . ($oRichText->getFont()->isBold() ? 'Y' : 'N') . ' - '); + $this->append('Italic : ' . ($oRichText->getFont()->isItalic() ? 'Y' : 'N') . ' - '); + $this->append('Underline : Underline::' . $this->getConstantName('\PhpOffice\PhpPresentation\Style\Font', + $oRichText->getFont()->getUnderline()) . ' - '); + $this->append('Strikethrough : ' . ($oRichText->getFont()->isStrikethrough() ? 'Y' : 'N') . ' - '); + $this->append('SubScript : ' . ($oRichText->getFont()->isSubScript() ? 'Y' : 'N') . ' - '); + $this->append('SuperScript : ' . ($oRichText->getFont()->isSuperScript() ? 'Y' : 'N')); $this->append('
        '); if ($oRichText instanceof TextElement) { if ($oRichText->hasHyperlink()) { - $this->append('
        Hyperlink URL
        '.$oRichText->getHyperlink()->getUrl().'
        '); - $this->append('
        Hyperlink Tooltip
        '.$oRichText->getHyperlink()->getTooltip().'
        '); + $this->append('
        Hyperlink URL
        ' . $oRichText->getHyperlink()->getUrl() . '
        '); + $this->append('
        Hyperlink Tooltip
        ' . $oRichText->getHyperlink()->getTooltip() . '
        '); } } $this->append('
        '); @@ -449,59 +495,47 @@ protected function displayShapeInfo(AbstractShape $oShape) $this->append('
        '); $this->append('
        '); } - - protected function getConstantName($class, $search, $startWith = '') { - $fooClass = new ReflectionClass($class); - $constants = $fooClass->getConstants(); - $constName = null; - foreach ($constants as $key => $value ) { - if ($value == $search) { - if (empty($startWith) || (!empty($startWith) && strpos($key, $startWith) === 0)) { - $constName = $key; - } - break; - } - } - return $constName; - } } + ?> -<?php echo $pageTitle; ?> - - - - - - - - + <?php echo $pageTitle; ?> + + + + + + + +
        -
        -setWidthAndHeight(160,120); - * @return self + * @return $this */ public function setWidthAndHeight($width = 0, $height = 0) { @@ -309,7 +309,7 @@ public function getRotation() * Set Rotation * * @param int $pValue - * @return self + * @return $this */ public function setRotation($pValue = 0) { @@ -363,7 +363,7 @@ public function getShadow() * * @param \PhpOffice\PhpPresentation\Style\Shadow $pValue * @throws \Exception - * @return self + * @return $this */ public function setShadow(Shadow $pValue = null) { @@ -400,7 +400,7 @@ public function getHyperlink() * * @param \PhpOffice\PhpPresentation\Shape\Hyperlink $pHyperlink * @throws \Exception - * @return self + * @return $this */ public function setHyperlink(Hyperlink $pHyperlink = null) { diff --git a/src/PhpPresentation/Reader/AbstractReader.php b/src/PhpPresentation/Reader/AbstractReader.php new file mode 100644 index 000000000..e086cb4fa --- /dev/null +++ b/src/PhpPresentation/Reader/AbstractReader.php @@ -0,0 +1,44 @@ +password; + } + + /** + * @param string $password + * @return AbstractReader + */ + public function setPassword($password) + { + $this->password = $password; + return $this; + } +} \ No newline at end of file diff --git a/src/PhpPresentation/Reader/ODPresentation.php b/src/PhpPresentation/Reader/ODPresentation.php index d65832229..4635babac 100644 --- a/src/PhpPresentation/Reader/ODPresentation.php +++ b/src/PhpPresentation/Reader/ODPresentation.php @@ -35,31 +35,45 @@ /** * Serialized format reader */ -class ODPresentation implements ReaderInterface +class ODPresentation extends AbstractReader implements ReaderInterface { /** * Output Object * @var PhpPresentation */ protected $oPhpPresentation; + /** * Output Object * @var \ZipArchive */ protected $oZip; + + /** + * @var string + */ + protected $filename; + /** * @var array[] */ protected $arrayStyles = array(); + /** * @var array[] */ protected $arrayCommonStyles = array(); + /** * @var \PhpOffice\Common\XMLReader */ protected $oXMLReader; + /** + * @var \PhpOffice\Common\XMLReader + */ + protected $oXMLMetaInfManifest; + /** * Can the current \PhpOffice\PhpPresentation\Reader\ReaderInterface read the file? * @@ -124,22 +138,21 @@ public function load($pFilename) */ protected function loadFile($pFilename) { + $this->filename = $pFilename; + $this->oPhpPresentation = new PhpPresentation(); $this->oPhpPresentation->removeSlideByIndex(); $this->oZip = new ZipArchive(); - $this->oZip->open($pFilename); - - $this->oXMLReader = new XMLReader(); - if ($this->oXMLReader->getDomFromZip($pFilename, 'meta.xml') !== false) { + $this->oZip->open($this->filename); + + if ($this->loadFileFromODP('meta.xml') !== false) { $this->loadDocumentProperties(); } - $this->oXMLReader = new XMLReader(); - if ($this->oXMLReader->getDomFromZip($pFilename, 'styles.xml') !== false) { + if ($this->loadFileFromODP('styles.xml') !== false) { $this->loadStylesFile(); } - $this->oXMLReader = new XMLReader(); - if ($this->oXMLReader->getDomFromZip($pFilename, 'content.xml') !== false) { + if ($this->loadFileFromODP('content.xml') !== false) { $this->loadSlides(); } @@ -573,4 +586,141 @@ protected function loadStylesFile() } } } + + /** + * @param string $filename + * @return bool + * @throws \Exception + */ + protected function loadFileFromODP($filename) + { + $bEncrypted = false; + + if (!$this->oXMLMetaInfManifest) { + $this->oXMLMetaInfManifest = new XMLReader(); + if ($this->oXMLMetaInfManifest->getDomFromZip($this->filename, 'META-INF/manifest.xml') === false) { + return false; + } + } + // Search file in META-INF/manifest.xml + $oElement = $this->oXMLMetaInfManifest->getElement('/manifest:manifest/manifest:file-entry[@manifest:full-path=\''.$filename.'\']'); + if (!$oElement) { + return false; + } + // Has it some manifest:encryption-data ? + $oElementEncryption = $this->oXMLMetaInfManifest->getElement('manifest:encryption-data', $oElement); + if ($oElementEncryption) { + $bEncrypted = true; + } + + $fileContent = $this->oZip->getFromName($filename); + if (!$fileContent){ + return false; + } + + // No Encrypted file + if (!$bEncrypted) { + $this->oXMLReader = new XMLReader(); + $this->oXMLReader->getDomFromString($fileContent); + return true; + } + + //return false; + /* + + + + + + + */ + return false; + // Encrypted file + $checksum = $oElementEncryption->getAttribute('manifest:checksum'); + + $oEltKeyDerivation = $this->oXMLMetaInfManifest->getElement('manifest:key-derivation', $oElementEncryption); + $salt = $oEltKeyDerivation->getAttribute('manifest:salt'); + //$salt = base64_decode($salt); + echo 'manifest:salt : '; + var_dump($salt); + $iterationCount = $oEltKeyDerivation->getAttribute('manifest:iteration-count'); + echo 'manifest:iteration-count : '; + var_dump($iterationCount); + $keySize = $oEltKeyDerivation->getAttribute('manifest:key-size'); + echo 'manifest:key-size : '; + var_dump($keySize); + + $oEltAlgorithm = $this->oXMLMetaInfManifest->getElement('manifest:algorithm', $oElementEncryption); + $iv = $oEltAlgorithm->getAttribute('manifest:initialisation-vector'); + $iv = base64_decode($iv); + echo 'manifest:initialisation-vector : '; + var_dump($iv); + + $pwdHash = hash('sha256', $this->getPassword()); + echo 'sha256('.$this->getPassword().'): '; + var_dump($pwdHash); + //$pwdHash = substr($pwdHash, 0 , 32); + //var_dump($pwdHash); + + $key = hash_pbkdf2('sha1', $pwdHash, $salt, $iterationCount, $keySize, true); + echo 'hash_pbkdf2 (sha1, hash, salt, iterationCount, $iterationCount) : '; + var_dump($key); + //$key = $this->hash_pbkdf2('sha1', $pwdHash, $salt, $iterationCount, $keySize, true); + //echo 'hash_pbkdf2 (sha1, hash, salt, iterationCount, $iterationCount) : '; + //var_dump($key); + + $data = openssl_decrypt($fileContent, 'AES-256-CBC', $key, 0, $iv); + if(!$data) { + while ($msg = openssl_error_string()) + var_dump($msg); + die(); + } else { + var_dump($data); + $data = gzinflate($data); + var_dump($data); + } + + /*$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $fileContent, MCRYPT_MODE_CBC, $iv); + var_dump($data); + $data = gzinflate($data); + if($data) { + var_dump($data); + }*/ + + return false; + } + + protected function hash_pbkdf2($a = 'sha256', $password, $salt, $rounds = 5000, $key_length = 32, $raw_output = false) + { + // Derived key + $dk = ''; + // Create key + for ($block=1; $block<=$key_length; $block++) + { + // Initial hash for this block + $ib = $h = hash_hmac($a, $salt . pack('N', $block), $password, true); + // Perform block iterations + for ($i=1; $i<$rounds; $i++) + { + // XOR each iteration + $ib ^= ($h = hash_hmac($a, $h, $password, true)); + } + // Append iterated block + $dk .= $ib; + } + // Return derived key of correct length + $key = substr($dk, 0, $key_length); + return $raw_output ? $key : base64_encode($key); + } + } diff --git a/src/PhpPresentation/Reader/PowerPoint2007.php b/src/PhpPresentation/Reader/PowerPoint2007.php index 2548b377f..e21159225 100644 --- a/src/PhpPresentation/Reader/PowerPoint2007.php +++ b/src/PhpPresentation/Reader/PowerPoint2007.php @@ -17,6 +17,9 @@ namespace PhpOffice\PhpPresentation\Reader; +use PhpOffice\Common\XMLReader; +use PhpOffice\Common\Drawing as CommonDrawing; +use PhpOffice\Common\Microsoft\OLERead; use PhpOffice\PhpPresentation\DocumentLayout; use PhpOffice\PhpPresentation\PhpPresentation; use PhpOffice\PhpPresentation\Shape\Placeholder; @@ -35,14 +38,12 @@ use PhpOffice\PhpPresentation\Style\Fill; use PhpOffice\PhpPresentation\Style\SchemeColor; use PhpOffice\PhpPresentation\Style\TextStyle; -use PhpOffice\Common\XMLReader; -use PhpOffice\Common\Drawing as CommonDrawing; use ZipArchive; /** * Serialized format reader */ -class PowerPoint2007 implements ReaderInterface +class PowerPoint2007 extends AbstractReader implements ReaderInterface { /** * Output Object @@ -105,7 +106,15 @@ public function fileSupportsUnserializePhpPresentation($pFilename = '') if (is_array($oZip->statName('[Content_Types].xml')) && is_array($oZip->statName('ppt/presentation.xml'))) { return true; } + } else { + $oOLE = new OLERead(); + try { + $oOLE->read($pFilename); + return true; + } catch (\Exception $e) { + } } + return false; } @@ -141,7 +150,12 @@ protected function loadFile($pFilename) $this->filename = $pFilename; $this->oZip = new ZipArchive(); - $this->oZip->open($this->filename); + + if ($this->oZip->open($this->filename) == ZipArchive::ER_NOZIP) { + $this->loadEncryptedFile(); + return $this->oPhpPresentation; + } + $docPropsCore = $this->oZip->getFromName('docProps/core.xml'); if ($docPropsCore !== false) { $this->loadDocumentProperties($docPropsCore); @@ -1297,4 +1311,231 @@ protected function loadSlideShapes($oSlide, $oElements, $xmlReader) } } } + + protected function loadEncryptedFile() + { + //return false; + $oOLE = new OLERead(); + $oOLE->read($this->filename); + + $oStreamEncrypted = $oOLE->getStream($oOLE->encryptedPackage); + $pos = 0; + $size = self::getInt4d($oStreamEncrypted, $pos); + $pos += 8; + $data = ''; + for ($inc = 0 ; $inc < $size ; $inc++) { + $data .= pack('v', self::getInt1d($oStreamEncrypted, $pos + $inc)); + } + + $oStream = $oOLE->getStream($oOLE->encryptionInfo); + $pos = 0; + // EncryptionVersionInfo + $vMajor = self::getInt2d($oStream, $pos); + $pos += 2; + $vMinor = self::getInt2d($oStream, $pos); + $pos += 2; + // EncryptionHeader.Flags + $pos += 4; + // EncryptionHeaderSize + $size = self::getInt4d($oStream, $pos); + $pos += 4; + echo 'EncryptionHeaderSize : ' . $size. '
        '; // + + // EncryptionHeader + // EncryptionHeader > Flags + $flags = self::getInt4d($oStream, $pos); + echo 'EncryptionHeader > Flags > fCryptoAPI : ' . (($flags >> 2) & bindec('1')). '
        '; // + echo 'EncryptionHeader > Flags > fDocProps : ' . (($flags >> 3) & bindec('1')). '
        '; // + echo 'EncryptionHeader > Flags > fExternal : ' . (($flags >> 4) & bindec('1')). '
        '; // + echo 'EncryptionHeader > Flags > fAES : ' . (($flags >> 5) & bindec('1')). '
        '; // + $pos += 4; + $size -= 4; + // EncryptionHeader > SizeExtra + $sizeExtra = self::getInt4d($oStream, $pos); + echo 'EncryptionHeader > SizeExtra : '.$sizeExtra. '
        '; + $pos += 4; + $size -= 4; + // EncryptionHeader > AlgID + $algID = self::getInt4d($oStream, $pos); + echo 'EncryptionHeader > AlgID :'.$algID.' ('.hexdec('0x00006801').' = 0x00006801 = RC4) - ('.hexdec('0x0000660E').' = 0x0000660E = AES-128) - ('.hexdec('0x0000660F').' = 0x0000660F = AES-192) - ('.hexdec('0x00006610').' = 0x00006610 = AES-256)'. '
        '; + $pos += 4; + $size -= 4; + // EncryptionHeader > AlgIDHash + $algIDHash = self::getInt4d($oStream, $pos); + echo 'EncryptionHeader > AlgIDHash : '.$algIDHash. ' ('.hexdec('0x00008004').' = 0x00008004 = SHA1)'. '
        '; + $pos += 4; + $size -= 4; + // EncryptionHeader > KeySize + $keySize = self::getInt4d($oStream, $pos); + echo 'EncryptionHeader > KeySize : '.$keySize. ' ('.hexdec('0x00000080').' = 0x00000080 = AES-128) - ('.hexdec('0x000000C0').' = 0x000000C0 = AES-192) - ('.hexdec('0x00000100').' = 0x00000100 = AES-256)'. '
        '; + $pos += 4; + $size -= 4; + // EncryptionHeader > ProviderType + $providerType = self::getInt4d($oStream, $pos); + echo 'EncryptionHeader > ProviderType : '.$providerType. ' ('.hexdec('0x00000018').' = 0x00000018)'. '
        '; + $pos += 4; + $size -= 4; + // EncryptionHeader > Reserved1 + $pos += 4; + $size -= 4; + // EncryptionHeader > Reserved2 + $pos += 4; + $size -= 4; + // EncryptionHeader > CSPName + $CSPName = ''; + for ($inc = 0 ; $inc <= $size ; $inc += 2) { + $chr = self::getInt2d($oStream, $pos); + $pos += 2; + if ($chr === 0) { + break; + } + $CSPName .= chr($chr); + } + echo 'EncryptionHeader > CSPName : '.$CSPName. '
        '; + // EncryptionVerifier + // EncryptionVerifier > SaltSize + $saltSize = self::getInt4d($oStream, $pos); + echo 'EncryptionVerifier > SaltSize : '.$saltSize.' ('.hexdec('0x00000010').' = 0x00000010)'; + hex_dump($saltSize); + $pos += 4; + // EncryptionVerifier > Salt + $salt = ''; + for ($inc = 0 ; $inc < 16 ; $inc ++) { + $salt .= pack('v', self::getInt1d($oStream, $pos)); + $pos += 1; + } + echo 'EncryptionVerifier > Salt : '; + hex_dump($salt); + // EncryptionVerifier > EncryptedVerifier + $encryptedVerifier = ''; + for ($inc = 0 ; $inc < 16 ; $inc ++) { + $encryptedVerifier .= pack('v', self::getInt1d($oStream, $pos)); + $pos += 1; + } + echo 'EncryptionVerifier > EncryptedVerifier : '; + hex_dump($encryptedVerifier); + // EncryptionVerifier > VerifierHashSize + $verifierHashSize = self::getInt4d($oStream, $pos); + echo 'EncryptionVerifier > VerifierHashSize ('.hexdec('0x00000010').' = 0x00000010) :'; + hex_dump($verifierHashSize); + $pos += 4; + // EncryptionVerifier > EncryptedVerifierHash + // mon cas : AES donc 32 + echo 'EncryptionVerifier > EncryptedVerifierHash :'; + $encryptedVerifierHash = ''; + for ($inc = 0 ; $inc < 32 ; $inc ++) { + $encryptedVerifierHash .= pack('v', self::getInt1d($oStream, $pos)); + $pos += 1; + } + hex_dump($encryptedVerifierHash); + + // https://github.com/doy/spreadsheet-parsexlsx/pull/37/files#diff-e61fbe6112ca2b7a3c08a4ea62d74ffeR1314 + + // https://msdn.microsoft.com/en-us/library/dd925430(v=office.12).aspx + // H0 = H(salt + password) + $hash = $salt . iconv("ISO-8859-1", "UTF-16LE", $this->getPassword()); + echo 'Hash (length : '.strlen($hash).')'; + hex_dump($hash); + for($inc = 0 ; $inc < 50000 ; $inc++) { + $hash = sha1(pack('L', $inc).$hash, true); + } + echo 'Hash (length : '.strlen($hash).')'; + hex_dump($hash); + // Hn = H(iterator + Hn-1) + $hash = sha1($hash . 0x00000000, true); + echo 'Hash (length : '.strlen($hash).')'; + hex_dump($hash); + + $keySize /=8; + + $x36 = ''; + for($inc = 0 ; $inc < 64 ; $inc++) { + $x36 .= pack('H*', 0x36); + } + echo 'x36 (length : '.strlen($x36).')'; + hex_dump($x36); + + $x1 = ($x36 ^ $hash); + echo 'Hash = $x36 xor $hash (length : '.strlen($x1).')'; + hex_dump($x1); + + if (strlen($x1) >= $keySize) { + $hash = substr($x1, 0, $keySize); + } else { + $x5C = ''; + for($inc = 0 ; $inc < 64 ; $inc++) { + $x5C .= pack('H*', '5C'); + } + echo '$x5C (length : '.strlen($x5C).')'; + hex_dump($x5C); + + $x2 = ($x5C ^ $hash); + echo '$x1 = $x5C xor $hash (length : '.strlen($x2).')'; + hex_dump($x2); + + $hash = substr($x1.$x2, 0, $keySize); + } + + echo 'Final hash (length : '.strlen($hash).')'; + hex_dump($hash); + // https://msdn.microsoft.com/en-us/library/dd926426(v=office.12).aspx + $verifier = openssl_decrypt($encryptedVerifier, 'AES-128-ECB', $hash, 0, ''); + echo 'Verifier :'; + hex_dump($verifier); + $verifierHash = openssl_decrypt($encryptedVerifierHash, 'AES-128-ECB', $hash, 0, ''); + echo 'VerifierHash :'; + hex_dump($verifierHash); + + $verifierHash0 = sha1($verifier, true); + echo 'VerifierHash :'; + hex_dump($verifierHash); + echo 'VerifierHash sha1($verifier, true):'; + hex_dump($verifierHash0); + } + + /** + * Read 8-bit unsigned integer + * + * @param string $data + * @param int $pos + * @return int + */ + public static function getInt1d($data, $pos) + { + return ord($data[$pos]); + } + + /** + * Read 16-bit unsigned integer + * + * @param string $data + * @param int $pos + * @return int + */ + public static function getInt2d($data, $pos) + { + return ord($data[$pos]) | (ord($data[$pos+1]) << 8); + } + + /** + * Read 32-bit signed integer + * + * @param string $data + * @param int $pos + * @return int + */ + public static function getInt4d($data, $pos) + { + // FIX: represent numbers correctly on 64-bit system + // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334 + // Hacked by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems + $or24 = ord($data[$pos + 3]); + if ($or24 >= 128) { + // negative number + $ord24 = -abs((256 - $or24) << 24); + } else { + $ord24 = ($or24 & 127) << 24; + } + return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | $ord24; + } } diff --git a/src/PhpPresentation/Reader/Serialized.php b/src/PhpPresentation/Reader/Serialized.php index 5843107e4..7349ecdd3 100644 --- a/src/PhpPresentation/Reader/Serialized.php +++ b/src/PhpPresentation/Reader/Serialized.php @@ -97,7 +97,8 @@ private function loadSerialized($pFilename) for ($i = 0; $i < $file->getSlideCount(); ++$i) { for ($j = 0; $j < $file->getSlide($i)->getShapeCollection()->count(); ++$j) { if ($file->getSlide($i)->getShapeCollection()->offsetGet($j) instanceof AbstractDrawingAdapter) { - $file->getSlide($i)->getShapeCollection()->offsetGet($j)->setPath('zip://' . $pFilename . '#media/' . $file->getSlide($i)->getShapeCollection()->offsetGet($j)->getIndexedFilename(), false); + $imgTemp = $file->getSlide($i)->getShapeCollection()->offsetGet($j); + $imgTemp->setPath('zip://' . $pFilename . '#media/' . $imgTemp->getImageIndex() . '/' . pathinfo($imgTemp->getPath(), PATHINFO_BASENAME), false); } } } diff --git a/src/PhpPresentation/Shape/Chart/Axis.php b/src/PhpPresentation/Shape/Chart/Axis.php index eeff28fea..e9433da7c 100644 --- a/src/PhpPresentation/Shape/Chart/Axis.php +++ b/src/PhpPresentation/Shape/Chart/Axis.php @@ -342,7 +342,7 @@ public function getOutline() * @param Outline $outline * @return Axis */ - public function setOutline($outline) + public function setOutline(Outline $outline) { $this->outline = $outline; return $this; diff --git a/src/PhpPresentation/Shape/Chart/Marker.php b/src/PhpPresentation/Shape/Chart/Marker.php index 736069775..c1ca912fb 100644 --- a/src/PhpPresentation/Shape/Chart/Marker.php +++ b/src/PhpPresentation/Shape/Chart/Marker.php @@ -66,12 +66,11 @@ public function getSymbol() /** * @param string $symbol - * @return Marker + * @return $this */ public function setSymbol($symbol = self::SYMBOL_NONE) { $this->symbol = $symbol; - return $this; } @@ -85,12 +84,11 @@ public function getSize() /** * @param int $size - * @return Marker + * @return $this */ public function setSize($size = 5) { $this->size = $size; - return $this; } } diff --git a/src/PhpPresentation/Shape/Chart/Type/AbstractType.php b/src/PhpPresentation/Shape/Chart/Type/AbstractType.php index e3eb3802c..57c74db54 100644 --- a/src/PhpPresentation/Shape/Chart/Type/AbstractType.php +++ b/src/PhpPresentation/Shape/Chart/Type/AbstractType.php @@ -105,7 +105,7 @@ public function setHashIndex($value) * Add Series * * @param \PhpOffice\PhpPresentation\Shape\Chart\Series $value - * @return self + * @return $this */ public function addSeries(Series $value) { @@ -127,7 +127,7 @@ public function getSeries() * Set Series * * @param array $value Array of \PhpOffice\PhpPresentation\Shape\Chart\Series - * @return self + * @return $this */ public function setSeries($value = array()) { diff --git a/src/PhpPresentation/Shape/Chart/View3D.php b/src/PhpPresentation/Shape/Chart/View3D.php index dc773cc23..80ffea6e3 100644 --- a/src/PhpPresentation/Shape/Chart/View3D.php +++ b/src/PhpPresentation/Shape/Chart/View3D.php @@ -186,7 +186,7 @@ public function getHeightPercent() * Set HeightPercent (5 to 500) * * @param int $value - * @return self + * @return $this */ public function setHeightPercent($value = 100) { @@ -209,7 +209,7 @@ public function getDepthPercent() * Set DepthPercent (20 to 2000) * * @param int $value - * @return self + * @return $this */ public function setDepthPercent($value = 100) { diff --git a/src/PhpPresentation/Shape/Comment.php b/src/PhpPresentation/Shape/Comment.php index 96f2fb601..9dfe73ff3 100644 --- a/src/PhpPresentation/Shape/Comment.php +++ b/src/PhpPresentation/Shape/Comment.php @@ -115,7 +115,7 @@ public function getHeight() * Set Height * * @param int $pValue - * @return self + * @return $this */ public function setHeight($pValue = 0) { @@ -136,7 +136,7 @@ public function getWidth() * Set Width * * @param int $pValue - * @return self + * @return $this */ public function setWidth($pValue = 0) { diff --git a/src/PhpPresentation/Shape/Drawing/File.php b/src/PhpPresentation/Shape/Drawing/File.php index 541f5925f..e92098803 100644 --- a/src/PhpPresentation/Shape/Drawing/File.php +++ b/src/PhpPresentation/Shape/Drawing/File.php @@ -2,6 +2,8 @@ namespace PhpOffice\PhpPresentation\Shape\Drawing; +use PhpOffice\Common\File as CommonFile; + class File extends AbstractDrawingAdapter { /** @@ -50,7 +52,7 @@ public function setPath($pValue = '', $pVerifyFile = true) */ public function getContents() { - return file_get_contents($this->getPath()); + return CommonFile::fileGetContents($this->getPath()); } @@ -68,10 +70,10 @@ public function getExtension() */ public function getMimeType() { - if (!file_exists($this->getPath())) { + if (!CommonFile::fileExists($this->getPath())) { throw new \Exception('File '.$this->getPath().' does not exist'); } - $image = getimagesize($this->getPath()); + $image = getimagesizefromstring(CommonFile::fileGetContents($this->getPath())); return image_type_to_mime_type($image[2]); } diff --git a/src/PhpPresentation/Shape/Group.php b/src/PhpPresentation/Shape/Group.php index e4ebdc4b3..5a4faf967 100644 --- a/src/PhpPresentation/Shape/Group.php +++ b/src/PhpPresentation/Shape/Group.php @@ -103,7 +103,7 @@ public function getOffsetX() * Ignores setting the X Offset, preserving the default behavior. * * @param int $pValue - * @return self + * @return $this */ public function setOffsetX($pValue = 0) { @@ -130,7 +130,7 @@ public function getOffsetY() * Ignores setting the Y Offset, preserving the default behavior. * * @param int $pValue - * @return self + * @return $this */ public function setOffsetY($pValue = 0) { @@ -173,7 +173,7 @@ public function getExtentY() * Ignores setting the width, preserving the default behavior. * * @param int $pValue - * @return self + * @return $this */ public function setWidth($pValue = 0) { @@ -184,7 +184,7 @@ public function setWidth($pValue = 0) * Ignores setting the height, preserving the default behavior. * * @param int $pValue - * @return self + * @return $this */ public function setHeight($pValue = 0) { diff --git a/src/PhpPresentation/Slide/Transition.php b/src/PhpPresentation/Slide/Transition.php index 56c760e39..b2e6a2958 100644 --- a/src/PhpPresentation/Slide/Transition.php +++ b/src/PhpPresentation/Slide/Transition.php @@ -33,8 +33,7 @@ class Transition const TRANSITION_BLINDS_VERTICAL = 'blinds_vert'; const TRANSITION_CHECKER_HORIZONTAL = 'checker_horz'; const TRANSITION_CHECKER_VERTICAL = 'checker_vert'; - const TRANSITION_CIRCLE_HORIZONTAL = 'circle_horz'; - const TRANSITION_CIRCLE_VERTICAL = 'circle_vert'; + const TRANSITION_CIRCLE = 'circle'; const TRANSITION_COMB_HORIZONTAL = 'comb_horz'; const TRANSITION_COMB_VERTICAL = 'comb_vert'; const TRANSITION_COVER_DOWN = 'cover_d'; diff --git a/src/PhpPresentation/Style/Shadow.php b/src/PhpPresentation/Style/Shadow.php index f500de951..acf672e83 100644 --- a/src/PhpPresentation/Style/Shadow.php +++ b/src/PhpPresentation/Style/Shadow.php @@ -123,7 +123,7 @@ public function isVisible() * Set Visible * * @param boolean $pValue - * @return self + * @return $this */ public function setVisible($pValue = false) { @@ -146,7 +146,7 @@ public function getBlurRadius() * Set Blur radius * * @param int $pValue - * @return self + * @return $this */ public function setBlurRadius($pValue = 6) { @@ -169,7 +169,7 @@ public function getDistance() * Set Shadow distance * * @param int $pValue - * @return self + * @return $this */ public function setDistance($pValue = 2) { @@ -192,7 +192,7 @@ public function getDirection() * Set Shadow direction (in degrees) * * @param int $pValue - * @return self + * @return $this */ public function setDirection($pValue = 0) { @@ -215,7 +215,7 @@ public function getAlignment() * Set Shadow alignment * * @param string $pValue - * @return self + * @return $this */ public function setAlignment($pValue = self::SHADOW_BOTTOM_RIGHT) { @@ -239,7 +239,7 @@ public function getColor() * * @param \PhpOffice\PhpPresentation\Style\Color $pValue * @throws \Exception - * @return self + * @return $this */ public function setColor(Color $pValue = null) { @@ -262,7 +262,7 @@ public function getAlpha() * Set Alpha * * @param int $pValue - * @return self + * @return $this */ public function setAlpha($pValue = 0) { diff --git a/src/PhpPresentation/Writer/ODPresentation/Content.php b/src/PhpPresentation/Writer/ODPresentation/Content.php index 88fc37ac1..cb399ab17 100644 --- a/src/PhpPresentation/Writer/ODPresentation/Content.php +++ b/src/PhpPresentation/Writer/ODPresentation/Content.php @@ -25,7 +25,6 @@ use PhpOffice\PhpPresentation\Style\Border; use PhpOffice\PhpPresentation\Style\Fill; use PhpOffice\PhpPresentation\Style\Shadow; -use PhpOffice\PhpPresentation\Writer\ODPresentation; class Content extends AbstractDecoratorWriter { @@ -182,7 +181,7 @@ public function writeContent() $objWriter->writeAttribute('fo:font-family', $oStyle->getBulletFont()); $objWriter->writeAttribute('style:font-family-generic', 'swiss'); $objWriter->writeAttribute('style:use-window-font-color', 'true'); - $objWriter->writeAttribute('fo:font-size', '100'); + $objWriter->writeAttribute('fo:font-size', '100%'); $objWriter->endElement(); $objWriter->endElement(); } @@ -239,7 +238,7 @@ public function writeContent() if ($item->getFont()->isBold()) { $objWriter->writeAttribute('fo:font-weight', 'bold'); } - $objWriter->writeAttribute('fo:language', ($item->getLanguage() ? $item->getLanguage() : 'en-US')); + $objWriter->writeAttribute('fo:language', ($item->getLanguage() ? $item->getLanguage() : 'en')); // @todo : style:text-underline-style $objWriter->endElement(); @@ -473,6 +472,7 @@ public function writeShapeTxt(XMLWriter $objWriter, RichText $shape) if ($richtext->hasHyperlink() === true && $richtext->getHyperlink()->getUrl() != '') { // text:a $objWriter->startElement('text:a'); + $objWriter->writeAttribute('xlink:type', 'simple'); $objWriter->writeAttribute('xlink:href', $richtext->getHyperlink()->getUrl()); $objWriter->text($richtext->getText()); $objWriter->endElement(); @@ -536,6 +536,7 @@ public function writeShapeTxt(XMLWriter $objWriter, RichText $shape) if ($richtext->hasHyperlink() === true && $richtext->getHyperlink()->getUrl() != '') { // text:a $objWriter->startElement('text:a'); + $objWriter->writeAttribute('xlink:type', 'simple'); $objWriter->writeAttribute('xlink:href', $richtext->getHyperlink()->getUrl()); $objWriter->text($richtext->getText()); $objWriter->endElement(); @@ -580,6 +581,9 @@ public function writeShapeTxt(XMLWriter $objWriter, RichText $shape) */ public function writeShapeComment(XMLWriter $objWriter, Comment $oShape) { + /** + * Note : This element is not valid in the Schema 1.2 + */ // officeooo:annotation $objWriter->startElement('officeooo:annotation'); $objWriter->writeAttribute('svg:x', number_format(CommonDrawing::pixelsToCentimeters($oShape->getOffsetX()), 2, '.', '').'cm'); @@ -630,75 +634,84 @@ public function writeShapeTable(XMLWriter $objWriter, Table $shape) $objWriter->writeAttribute('svg:height', Text::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getHeight()), 3) . 'cm'); $objWriter->writeAttribute('svg:width', Text::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getWidth()), 3) . 'cm'); - // table:table - $objWriter->startElement('table:table'); + $arrayRows = $shape->getRows(); + if (!empty($arrayRows)) { + $firstRow = reset($arrayRows); + $arrayCells = $firstRow->getCells(); + // table:table + $objWriter->startElement('table:table'); + foreach ($arrayCells as $shapeCell) { + $objWriter->startElement('table:table-column'); + $objWriter->endElement(); + } + foreach ($arrayRows as $keyRow => $shapeRow) { + // table:table-row + $objWriter->startElement('table:table-row'); + $objWriter->writeAttribute('table:style-name', 'gr'.$this->shapeId.'r'.$keyRow); + //@todo getFill + + $numColspan = 0; + foreach ($shapeRow->getCells() as $keyCell => $shapeCell) { + if ($numColspan == 0) { + // table:table-cell + $objWriter->startElement('table:table-cell'); + $objWriter->writeAttribute('table:style-name', 'gr' . $this->shapeId.'r'.$keyRow.'c'.$keyCell); + if ($shapeCell->getColspan() > 1) { + $objWriter->writeAttribute('table:number-columns-spanned', $shapeCell->getColspan()); + $numColspan = $shapeCell->getColspan() - 1; + } - foreach ($shape->getRows() as $keyRow => $shapeRow) { - // table:table-row - $objWriter->startElement('table:table-row'); - $objWriter->writeAttribute('table:style-name', 'gr'.$this->shapeId.'r'.$keyRow); - //@todo getFill + // text:p + $objWriter->startElement('text:p'); - $numColspan = 0; - foreach ($shapeRow->getCells() as $keyCell => $shapeCell) { - if ($numColspan == 0) { - // table:table-cell - $objWriter->startElement('table:table-cell'); - $objWriter->writeAttribute('table:style-name', 'gr' . $this->shapeId.'r'.$keyRow.'c'.$keyCell); - if ($shapeCell->getColspan() > 1) { - $objWriter->writeAttribute('table:number-columns-spanned', $shapeCell->getColspan()); - $numColspan = $shapeCell->getColspan() - 1; - } - - // text:p - $objWriter->startElement('text:p'); - - // text:span - foreach ($shapeCell->getParagraphs() as $shapeParagraph) { - foreach ($shapeParagraph->getRichTextElements() as $shapeRichText) { - if ($shapeRichText instanceof TextElement || $shapeRichText instanceof Run) { - // text:span - $objWriter->startElement('text:span'); - if ($shapeRichText instanceof Run) { - $objWriter->writeAttribute('text:style-name', 'T_' . $shapeRichText->getHashCode()); - } - if ($shapeRichText->hasHyperlink() === true && $shapeRichText->getHyperlink()->getUrl() != '') { - // text:a - $objWriter->startElement('text:a'); - $objWriter->writeAttribute('xlink:href', $shapeRichText->getHyperlink()->getUrl()); - $objWriter->text($shapeRichText->getText()); + // text:span + foreach ($shapeCell->getParagraphs() as $shapeParagraph) { + foreach ($shapeParagraph->getRichTextElements() as $shapeRichText) { + if ($shapeRichText instanceof TextElement) { + // text:span + $objWriter->startElement('text:span'); + if ($shapeRichText instanceof Run) { + $objWriter->writeAttribute('text:style-name', 'T_' . $shapeRichText->getHashCode()); + } + if ($shapeRichText->hasHyperlink() === true && $shapeRichText->getHyperlink()->getUrl() !== '') { + // text:a + $objWriter->startElement('text:a'); + $objWriter->writeAttribute('xlink:type', 'simple'); + $objWriter->writeAttribute('xlink:href', $shapeRichText->getHyperlink()->getUrl()); + $objWriter->text($shapeRichText->getText()); + $objWriter->endElement(); + } else { + $objWriter->text($shapeRichText->getText()); + } + $objWriter->endElement(); + } elseif ($shapeRichText instanceof BreakElement) { + // text:span + $objWriter->startElement('text:span'); + // text:line-break + $objWriter->startElement('text:line-break'); + $objWriter->endElement(); $objWriter->endElement(); - } else { - $objWriter->text($shapeRichText->getText()); } - $objWriter->endElement(); - } elseif ($shapeRichText instanceof BreakElement) { - // text:span - $objWriter->startElement('text:span'); - // text:line-break - $objWriter->startElement('text:line-break'); - $objWriter->endElement(); - $objWriter->endElement(); } } - } - // > text:p - $objWriter->endElement(); + // > text:p + $objWriter->endElement(); - // > table:table-cell - $objWriter->endElement(); - } else { - // table:covered-table-cell - $objWriter->writeElement('table:covered-table-cell'); - $numColspan--; + // > table:table-cell + $objWriter->endElement(); + } else { + // table:covered-table-cell + $objWriter->writeElement('table:covered-table-cell'); + $numColspan--; + } } + // > table:table-row + $objWriter->endElement(); } - // > table:table-row + // > table:table $objWriter->endElement(); } - // > table:table - $objWriter->endElement(); // > draw:frame $objWriter->endElement(); } @@ -815,6 +828,7 @@ public function writeTxtStyle(XMLWriter $objWriter, RichText $shape) $objWriter->writeAttribute('style:parent-style-name', 'standard'); // style:graphic-properties $objWriter->startElement('style:graphic-properties'); + $objWriter->writeAttribute('style:mirror', 'none'); $this->writeStylePartShadow($objWriter, $shape->getShadow()); if (is_bool($shape->hasAutoShrinkVertical())) { $objWriter->writeAttribute('draw:auto-grow-height', var_export($shape->hasAutoShrinkVertical(), true)); @@ -927,6 +941,7 @@ public function writeDrawingStyle(XMLWriter $objWriter, AbstractDrawingAdapter $ // style:graphic-properties $objWriter->startElement('style:graphic-properties'); $objWriter->writeAttribute('draw:stroke', 'none'); + $objWriter->writeAttribute('style:mirror', 'none'); $this->writeStylePartFill($objWriter, $shape->getFill()); $this->writeStylePartShadow($objWriter, $shape->getShadow()); $objWriter->endElement(); @@ -996,25 +1011,31 @@ public function writeTableStyle(XMLWriter $objWriter, Table $shape) $objWriter->writeAttribute('style:name', 'gr' . $this->shapeId.'r'.$keyRow.'c'.$keyCell); $objWriter->writeAttribute('style:family', 'table-cell'); + /** + * Note : This element is not valid in the Schema 1.2 + */ // style:graphic-properties - $objWriter->startElement('style:graphic-properties'); - if ($shapeCell->getFill()->getFillType() == Fill::FILL_SOLID) { - $objWriter->writeAttribute('draw:fill', 'solid'); - $objWriter->writeAttribute('draw:fill-color', '#'.$shapeCell->getFill()->getStartColor()->getRGB()); - } - if ($shapeCell->getFill()->getFillType() == Fill::FILL_GRADIENT_LINEAR) { - $objWriter->writeAttribute('draw:fill', 'gradient'); - $objWriter->writeAttribute('draw:fill-gradient-name', 'gradient_'.$shapeCell->getFill()->getHashCode()); + if ($shapeCell->getFill()->getFillType() != Fill::FILL_NONE) { + $objWriter->startElement('style:graphic-properties'); + if ($shapeCell->getFill()->getFillType() == Fill::FILL_SOLID) { + $objWriter->writeAttribute('draw:fill', 'solid'); + $objWriter->writeAttribute('draw:fill-color', '#'.$shapeCell->getFill()->getStartColor()->getRGB()); + } + if ($shapeCell->getFill()->getFillType() == Fill::FILL_GRADIENT_LINEAR) { + $objWriter->writeAttribute('draw:fill', 'gradient'); + $objWriter->writeAttribute('draw:fill-gradient-name', 'gradient_'.$shapeCell->getFill()->getHashCode()); + } + $objWriter->endElement(); } - $objWriter->endElement(); - // style:graphic-properties // style:paragraph-properties $objWriter->startElement('style:paragraph-properties'); $cellBorders = $shapeCell->getBorders(); - if ($cellBorders->getBottom()->getHashCode() == $cellBorders->getTop()->getHashCode() - && $cellBorders->getBottom()->getHashCode() == $cellBorders->getLeft()->getHashCode() - && $cellBorders->getBottom()->getHashCode() == $cellBorders->getRight()->getHashCode()) { + $cellBordersBottomHashCode = $cellBorders->getBottom()->getHashCode(); + if ($cellBordersBottomHashCode == $cellBorders->getTop()->getHashCode() + && $cellBordersBottomHashCode == $cellBorders->getLeft()->getHashCode() + && $cellBordersBottomHashCode == $cellBorders->getRight()->getHashCode()) { $lineStyle = 'none'; $lineWidth = Text::numberFormat($cellBorders->getBottom()->getLineWidth() / 1.75, 2); $lineColor = $cellBorders->getBottom()->getColor()->getRGB(); @@ -1060,8 +1081,9 @@ public function writeTableStyle(XMLWriter $objWriter, Table $shape) } $objWriter->writeAttribute('fo:border-left', $lineWidth.'pt '.$lineStyle.' #'.$lineColor); } + // >style:paragraph-properties $objWriter->endElement(); - + // >style:style $objWriter->endElement(); foreach ($shapeCell->getParagraphs() as $shapeParagraph) { @@ -1150,10 +1172,7 @@ public function writeStyleSlide(XMLWriter $objWriter, Slide $slide, $incPage) case Transition::TRANSITION_CHECKER_VERTICAL: $objWriter->writeAttribute('presentation:transition-style', 'vertical-checkerboard'); break; - case Transition::TRANSITION_CIRCLE_HORIZONTAL: - $objWriter->writeAttribute('presentation:transition-style', 'none'); - break; - case Transition::TRANSITION_CIRCLE_VERTICAL: + case Transition::TRANSITION_CIRCLE: $objWriter->writeAttribute('presentation:transition-style', 'none'); break; case Transition::TRANSITION_COMB_HORIZONTAL: @@ -1307,8 +1326,11 @@ public function writeStyleSlide(XMLWriter $objWriter, Slide $slide, $incPage) * @param XMLWriter $objWriter * @param Fill $oFill */ - protected function writeStylePartFill(XMLWriter $objWriter, Fill $oFill) + protected function writeStylePartFill(XMLWriter $objWriter, $oFill) { + if (!($oFill instanceof Fill)) { + return; + } switch ($oFill->getFillType()) { case Fill::FILL_SOLID: $objWriter->writeAttribute('draw:fill', 'solid'); @@ -1319,7 +1341,6 @@ protected function writeStylePartFill(XMLWriter $objWriter, Fill $oFill) $objWriter->writeAttribute('draw:fill', 'none'); break; } - $objWriter->writeAttribute('style:mirror', 'none'); } @@ -1363,6 +1384,5 @@ protected function writeStylePartShadow(XMLWriter $objWriter, Shadow $oShadow) $objWriter->writeAttribute('draw:shadow-offset-y', '-' . $distanceCms . 'cm'); } $objWriter->writeAttribute('draw:shadow-opacity', (100 - $oShadow->getAlpha()) . '%'); - $objWriter->writeAttribute('style:mirror', 'none'); } } diff --git a/src/PhpPresentation/Writer/ODPresentation/Mimetype.php b/src/PhpPresentation/Writer/ODPresentation/Mimetype.php index 546b6f341..1efd13e59 100644 --- a/src/PhpPresentation/Writer/ODPresentation/Mimetype.php +++ b/src/PhpPresentation/Writer/ODPresentation/Mimetype.php @@ -2,6 +2,8 @@ namespace PhpOffice\PhpPresentation\Writer\ODPresentation; +use PhpOffice\Common\Adapter\Zip\ZipInterface; + class Mimetype extends AbstractDecoratorWriter { /** diff --git a/src/PhpPresentation/Writer/ODPresentation/ObjectsChart.php b/src/PhpPresentation/Writer/ODPresentation/ObjectsChart.php index 0aec5562e..2b827ba21 100644 --- a/src/PhpPresentation/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPresentation/Writer/ODPresentation/ObjectsChart.php @@ -139,33 +139,18 @@ protected function writeContentPart(Chart $chart) // office:automatic-styles $this->xmlContent->startElement('office:automatic-styles'); - // Chart + // Styles $this->writeChartStyle($chart); - - // Axis $this->writeAxisStyle($chart); - - // Series $this->numSeries = 0; foreach ($chartType->getSeries() as $series) { $this->writeSeriesStyle($chart, $series); - $this->numSeries++; } - - // Floor $this->writeFloorStyle(); - - // Legend $this->writeLegendStyle($chart); - - // PlotArea $this->writePlotAreaStyle($chart); - - // Title $this->writeTitleStyle($chart->getTitle()); - - // Wall $this->writeWallStyle($chart); // > office:automatic-styles @@ -191,16 +176,9 @@ protected function writeContentPart(Chart $chart) $this->xmlContent->writeAttributeIf($chartType instanceof Line, 'chart:class', 'chart:line'); $this->xmlContent->writeAttributeIf($chartType instanceof Scatter, 'chart:class', 'chart:scatter'); - //**** Title **** $this->writeTitle($chart->getTitle()); - - //**** Legend **** $this->writeLegend($chart); - - //**** Plotarea **** $this->writePlotArea($chart); - - //**** Table **** $this->writeTable(); // > chart:chart @@ -227,7 +205,6 @@ private function writeAxis(Chart $chart) $this->xmlContent->startElement('chart:axis'); $this->xmlContent->writeAttribute('chart:dimension', 'x'); $this->xmlContent->writeAttribute('chart:name', 'primary-x'); - $this->xmlContent->writeAttribute('chartooo:axis-type', 'text'); $this->xmlContent->writeAttribute('chart:style-name', 'styleAxisX'); // chart:axis > chart:categories $this->xmlContent->startElement('chart:categories'); @@ -303,6 +280,12 @@ protected function writeAxisStyle(Chart $chart) $this->xmlContent->writeAttribute('chart:maximum', $chart->getPlotArea()->getAxisX()->getMaxBounds()); } $this->xmlContent->endElement(); + // style:style > style:graphic-properties + $this->xmlContent->startElement('style:graphic-properties'); + $this->xmlContent->writeAttribute('draw:stroke', 'solid'); + $this->xmlContent->writeAttribute('svg:stroke-width', '0.026cm'); + $this->xmlContent->writeAttribute('svg:stroke-color', '#878787'); + $this->xmlContent->endElement(); // style:style > style:text-properties $oFont = $chart->getPlotArea()->getAxisX()->getFont(); $this->xmlContent->startElement('style:text-properties'); @@ -311,11 +294,6 @@ protected function writeAxisStyle(Chart $chart) $this->xmlContent->writeAttribute('fo:font-size', $oFont->getSize().'pt'); $this->xmlContent->writeAttribute('fo:font-style', $oFont->isItalic() ? 'italic' : 'normal'); $this->xmlContent->endElement(); - // style:style > style:graphic-properties - $this->xmlContent->startElement('style:graphic-properties'); - $this->xmlContent->writeAttribute('svg:stroke-width', '0.026cm'); - $this->xmlContent->writeAttribute('svg:stroke-color', '#878787'); - $this->xmlContent->endElement(); // ##style:style $this->xmlContent->endElement(); @@ -338,13 +316,19 @@ protected function writeAxisStyle(Chart $chart) if ($chartType instanceof AbstractTypePie) { $this->xmlContent->writeAttribute('chart:reverse-direction', 'true'); } - if ($chart->getPlotArea()->getAxisY()->getMinBounds() != null) { + if ($chart->getPlotArea()->getAxisY()->getMinBounds() !== null) { $this->xmlContent->writeAttribute('chart:minimum', $chart->getPlotArea()->getAxisY()->getMinBounds()); } - if ($chart->getPlotArea()->getAxisY()->getMaxBounds() != null) { + if ($chart->getPlotArea()->getAxisY()->getMaxBounds() !== null) { $this->xmlContent->writeAttribute('chart:maximum', $chart->getPlotArea()->getAxisY()->getMaxBounds()); } $this->xmlContent->endElement(); + // style:graphic-properties + $this->xmlContent->startElement('style:graphic-properties'); + $this->xmlContent->writeAttribute('draw:stroke', 'solid'); + $this->xmlContent->writeAttribute('svg:stroke-width', '0.026cm'); + $this->xmlContent->writeAttribute('svg:stroke-color', '#878787'); + $this->xmlContent->endElement(); // style:style > style:text-properties $oFont = $chart->getPlotArea()->getAxisY()->getFont(); $this->xmlContent->startElement('style:text-properties'); @@ -353,11 +337,6 @@ protected function writeAxisStyle(Chart $chart) $this->xmlContent->writeAttribute('fo:font-size', $oFont->getSize().'pt'); $this->xmlContent->writeAttribute('fo:font-style', $oFont->isItalic() ? 'italic' : 'normal'); $this->xmlContent->endElement(); - // style:graphic-properties - $this->xmlContent->startElement('style:graphic-properties'); - $this->xmlContent->writeAttribute('svg:stroke-width', '0.026cm'); - $this->xmlContent->writeAttribute('svg:stroke-color', '#878787'); - $this->xmlContent->endElement(); // ## style:style $this->xmlContent->endElement(); @@ -621,17 +600,17 @@ private function writeSeries(Chart $chart, Chart\Series $series) $this->xmlContent->startElement('chart:series'); $this->xmlContent->writeAttribute('chart:values-cell-range-address', 'table-local.$'.$this->rangeCol.'$2:.$'.$this->rangeCol.'$'.($numRange+1)); $this->xmlContent->writeAttribute('chart:label-cell-address', 'table-local.$'.$this->rangeCol.'$1'); - if ($chartType instanceof Area) { - $this->xmlContent->writeAttribute('chart:class', 'chart:area'); - } elseif ($chartType instanceof AbstractTypeBar) { - $this->xmlContent->writeAttribute('chart:class', 'chart:bar'); - } elseif ($chartType instanceof Line) { - $this->xmlContent->writeAttribute('chart:class', 'chart:line'); - } elseif ($chartType instanceof AbstractTypePie) { - $this->xmlContent->writeAttribute('chart:class', 'chart:circle'); - } elseif ($chartType instanceof Scatter) { - $this->xmlContent->writeAttribute('chart:class', 'chart:scatter'); - } + // if ($chartType instanceof Area) { + // $this->xmlContent->writeAttribute('chart:class', 'chart:area'); + // } elseif ($chartType instanceof AbstractTypeBar) { + // $this->xmlContent->writeAttribute('chart:class', 'chart:bar'); + // } elseif ($chartType instanceof Line) { + // $this->xmlContent->writeAttribute('chart:class', 'chart:line'); + // } elseif ($chartType instanceof AbstractTypePie) { + // $this->xmlContent->writeAttribute('chart:class', 'chart:circle'); + // } elseif ($chartType instanceof Scatter) { + // $this->xmlContent->writeAttribute('chart:class', 'chart:scatter'); + // } $this->xmlContent->writeAttribute('chart:style-name', 'styleSeries'.$this->numSeries); if ($chartType instanceof Area || $chartType instanceof AbstractTypeBar || $chartType instanceof Line || $chartType instanceof Scatter) { $dataPointFills = $series->getDataPointFills(); @@ -639,16 +618,16 @@ private function writeSeries(Chart $chart, Chart\Series $series) $incRepeat = $numRange; if (!empty($dataPointFills)) { $inc = 0; - $incRepeat = 0; + $incRepeat = 1; $newFill = new Fill(); do { - if ($series->getDataPointFill($inc)->getHashCode() != $newFill->getHashCode()) { + if ($series->getDataPointFill($inc)->getHashCode() !== $newFill->getHashCode()) { // chart:data-point $this->xmlContent->startElement('chart:data-point'); $this->xmlContent->writeAttribute('chart:repeated', $incRepeat); // > chart:data-point $this->xmlContent->endElement(); - $incRepeat = 0; + $incRepeat = 1; // chart:data-point $this->xmlContent->startElement('chart:data-point'); @@ -826,15 +805,6 @@ private function writeTable() $this->xmlContent->startElement('table:table'); $this->xmlContent->writeAttribute('table:name', 'table-local'); - // table:table-header-columns - $this->xmlContent->startElement('table:table-header-columns'); - // table:table-column - $this->xmlContent->startElement('table:table-column'); - // > table:table-column - $this->xmlContent->endElement(); - // > table:table-header-columns - $this->xmlContent->endElement(); - // table:table-columns $this->xmlContent->startElement('table:table-columns'); // table:table-column @@ -848,11 +818,55 @@ private function writeTable() // > table:table-columns $this->xmlContent->endElement(); + // table:table-header-columns + $this->xmlContent->startElement('table:table-header-columns'); + // table:table-column + $this->xmlContent->writeElement('table:table-column'); + // > table:table-header-columns + $this->xmlContent->endElement(); + + // table:table-rows + $this->xmlContent->startElement('table:table-rows'); + if (empty($this->arrayData)) { + $this->xmlContent->startElement('table:table-row'); + $this->xmlContent->startElement('table:table-cell'); + $this->xmlContent->endElement(); + $this->xmlContent->endElement(); + } else { + foreach ($this->arrayData as $row) { + // table:table-row + $this->xmlContent->startElement('table:table-row'); + foreach ($row as $cell) { + // table:table-cell + $this->xmlContent->startElement('table:table-cell'); + + $cellNumeric = is_numeric($cell); + $this->xmlContent->writeAttributeIf(!$cellNumeric, 'office:value-type', 'string'); + $this->xmlContent->writeAttributeIf($cellNumeric, 'office:value-type', 'float'); + $this->xmlContent->writeAttributeIf($cellNumeric, 'office:value', $cell); + // text:p + $this->xmlContent->startElement('text:p'); + $this->xmlContent->text($cell); + // > text:p + $this->xmlContent->endElement(); + // > table:table-cell + $this->xmlContent->endElement(); + } + // > table:table-row + $this->xmlContent->endElement(); + } + } + // > table:table-rows + $this->xmlContent->endElement(); + // table:table-header-rows $this->xmlContent->startElement('table:table-header-rows'); // table:table-row $this->xmlContent->startElement('table:table-row'); - if (!empty($this->arrayData)) { + if (empty($this->arrayData)) { + $this->xmlContent->startElement('table:table-cell'); + $this->xmlContent->endElement(); + } else { $rowFirst = reset($this->arrayData); foreach ($rowFirst as $key => $cell) { // table:table-cell @@ -876,34 +890,6 @@ private function writeTable() // > table:table-header-rows $this->xmlContent->endElement(); - // table:table-rows - $this->xmlContent->startElement('table:table-rows'); - - foreach ($this->arrayData as $row) { - // table:table-row - $this->xmlContent->startElement('table:table-row'); - foreach ($row as $cell) { - // table:table-cell - $this->xmlContent->startElement('table:table-cell'); - - $cellNumeric = is_numeric($cell); - $this->xmlContent->writeAttributeIf(!$cellNumeric, 'office:value-type', 'string'); - $this->xmlContent->writeAttributeIf($cellNumeric, 'office:value-type', 'float'); - $this->xmlContent->writeAttributeIf($cellNumeric, 'office:value', $cell); - // text:p - $this->xmlContent->startElement('text:p'); - $this->xmlContent->text($cell); - // > text:p - $this->xmlContent->endElement(); - // > table:table-cell - $this->xmlContent->endElement(); - } - // > table:table-row - $this->xmlContent->endElement(); - } - - // > table:table-rows - $this->xmlContent->endElement(); // > table:table $this->xmlContent->endElement(); } @@ -924,7 +910,6 @@ private function writeTitle(Title $oTitle) // > text:p $this->xmlContent->startElement('text:p'); $this->xmlContent->text($oTitle->getText()); - // > text:p $this->xmlContent->endElement(); // > chart:title $this->xmlContent->endElement(); @@ -959,7 +944,6 @@ private function writeWall() // chart:wall $this->xmlContent->startElement('chart:wall'); $this->xmlContent->writeAttribute('chart:style-name', 'styleWall'); - // > chart:wall $this->xmlContent->endElement(); } diff --git a/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php b/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php index b01ebdda4..c8d0b7a6d 100644 --- a/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php +++ b/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php @@ -130,7 +130,7 @@ protected function writeColor(XMLWriter $objWriter, Color $color, $alpha = null) // a:alpha $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $alpha . '%'); + $objWriter->writeAttribute('val', $alpha * 1000); $objWriter->endElement(); $objWriter->endElement(); @@ -202,13 +202,13 @@ protected function writeGradientFill(XMLWriter $objWriter, Fill $pFill) $objWriter->startElement('a:gsLst'); // a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0%'); + $objWriter->writeAttribute('pos', '0'); $this->writeColor($objWriter, $pFill->getStartColor()); $objWriter->endElement(); // a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100%'); + $objWriter->writeAttribute('pos', '100000'); $this->writeColor($objWriter, $pFill->getEndColor()); $objWriter->endElement(); diff --git a/src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php b/src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php index 9c09730f5..0c220f00f 100644 --- a/src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php +++ b/src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php @@ -265,10 +265,10 @@ protected function writeShapeText(XMLWriter $objWriter, RichText $shape, $shapeI $objWriter->startElement('a:' . $shape->getAutoFit()); if ($shape->getAutoFit() == RichText::AUTOFIT_NORMAL) { if (!is_null($shape->getFontScale())) { - $objWriter->writeAttribute('fontScale', (int)($shape->getFontScale() * 1000)); + $objWriter->writeAttribute('fontScale', $shape->getFontScale() * 1000); } if (!is_null($shape->getLineSpaceReduction())) { - $objWriter->writeAttribute('lnSpcReduction', (int)($shape->getLineSpaceReduction() * 1000)); + $objWriter->writeAttribute('lnSpcReduction', $shape->getLineSpaceReduction() * 1000); } } $objWriter->endElement(); @@ -524,7 +524,7 @@ protected function writeParagraphs(XMLWriter $objWriter, $paragraphs, $bIsPlaceh $objWriter->startElement('a:lnSpc'); $objWriter->startElement('a:spcPct'); - $objWriter->writeAttribute('val', $paragraph->getLineSpacing() . "%"); + $objWriter->writeAttribute('val', $paragraph->getLineSpacing() * 1000); $objWriter->endElement(); $objWriter->endElement(); @@ -579,23 +579,14 @@ protected function writeParagraphs(XMLWriter $objWriter, $paragraphs, $bIsPlaceh // Lang $objWriter->writeAttribute('lang', ($element->getLanguage() ? $element->getLanguage() : 'en-US')); - $objWriter->writeAttributeIf($element->getFont()->isBold(), 'b', '1'); $objWriter->writeAttributeIf($element->getFont()->isItalic(), 'i', '1'); $objWriter->writeAttributeIf($element->getFont()->isStrikethrough(), 'strike', 'sngStrike'); - - // Size $objWriter->writeAttribute('sz', ($element->getFont()->getSize() * 100)); - - // Character spacing $objWriter->writeAttribute('spc', $element->getFont()->getCharacterSpacing()); - - // Underline $objWriter->writeAttribute('u', $element->getFont()->getUnderline()); - - // Superscript / subscript - $objWriter->writeAttributeIf($element->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($element->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($element->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($element->getFont()->isSubScript(), 'baseline', '-250000'); // Color - a:solidFill $objWriter->startElement('a:solidFill'); @@ -1393,15 +1384,8 @@ protected function writeSlideTransition(XMLWriter $objWriter, $transition) $objWriter->writeAttribute('dir', 'vert'); $objWriter->endElement(); break; - case Slide\Transition::TRANSITION_CIRCLE_HORIZONTAL: - $objWriter->startElement('p:circle'); - $objWriter->writeAttribute('dir', 'horz'); - $objWriter->endElement(); - break; - case Slide\Transition::TRANSITION_CIRCLE_VERTICAL: - $objWriter->startElement('p:circle'); - $objWriter->writeAttribute('dir', 'vert'); - $objWriter->endElement(); + case Slide\Transition::TRANSITION_CIRCLE: + $objWriter->writeElement('p:circle'); break; case Slide\Transition::TRANSITION_COMB_HORIZONTAL: $objWriter->startElement('p:comb'); diff --git a/src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php b/src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php index 1f186bbaa..7109881c6 100644 --- a/src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php +++ b/src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php @@ -38,7 +38,7 @@ public function render() $this->getZip()->addFromString('ppt/charts/_rels/' . $shape->getIndexedFilename() . '.rels', $this->writeChartRelationships($shape)); $pFilename = tempnam(sys_get_temp_dir(), 'PHPExcel'); $this->getZip()->addFromString('ppt/embeddings/' . $shape->getIndexedFilename() . '.xlsx', $this->writeSpreadsheet($this->getPresentation(), $shape, $pFilename . '.xlsx')); - + // remove temp file if (@unlink($pFilename) === false) { throw new \Exception('The file ' . $pFilename . ' could not removed.'); @@ -424,14 +424,13 @@ protected function writeTitle(XMLWriter $objWriter, Title $subject) $objWriter->startElement('a:rPr'); $objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('dirty', '0'); - $objWriter->writeAttribute('b', ($subject->getFont()->isBold() ? 'true' : 'false')); $objWriter->writeAttribute('i', ($subject->getFont()->isItalic() ? 'true' : 'false')); $objWriter->writeAttribute('strike', ($subject->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($subject->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $subject->getFont()->getUnderline()); - $objWriter->writeAttributeIf($subject->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($subject->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($subject->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($subject->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -593,8 +592,8 @@ protected function writeLegend(XMLWriter $objWriter, Legend $subject) $objWriter->writeAttribute('strike', ($subject->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($subject->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $subject->getFont()->getUnderline()); - $objWriter->writeAttributeIf($subject->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($subject->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($subject->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($subject->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -794,7 +793,7 @@ protected function writeTypeArea(XMLWriter $objWriter, Area $subject, $includeSh */ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeSheet = false) { - // c:bar3DChart + // c:barChart $objWriter->startElement('c:barChart'); // c:barDir @@ -866,10 +865,10 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee $objWriter->startElement('c:txPr'); // a:bodyPr - $objWriter->writeElement('a:bodyPr', null); + $objWriter->writeElement('a:bodyPr'); // a:lstStyle - $objWriter->writeElement('a:lstStyle', null); + $objWriter->writeElement('a:lstStyle'); // a:p $objWriter->startElement('a:p'); @@ -885,23 +884,23 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); - // Font - a:solidFill + // a:solidFill $objWriter->startElement('a:solidFill'); - $this->writeColor($objWriter, $series->getFont()->getColor()); - + // >a:solidFill $objWriter->endElement(); - - // Font - a:latin + // a:latin $objWriter->startElement('a:latin'); $objWriter->writeAttribute('typeface', $series->getFont()->getName()); + // >a:latin $objWriter->endElement(); + // >a:defRPr $objWriter->endElement(); - + // >a:pPr $objWriter->endElement(); // a:endParaRPr @@ -910,8 +909,9 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee $objWriter->writeAttribute('dirty', '0'); $objWriter->endElement(); + // >a:p $objWriter->endElement(); - + // >a:lstStyle $objWriter->endElement(); // c:dLblPos @@ -929,12 +929,12 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee // c:showPercent $this->writeElementWithValAttribute($objWriter, 'c:showPercent', $series->hasShowPercentage() ? '1' : '0'); + // c:separator + $objWriter->writeElement('c:separator', $series->hasShowSeparator() ? $series->getSeparator() : ''); + // c:showLeaderLines $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:separator - $objWriter->writeElementIf($series->hasShowSeparator(), 'c:separator', 'val', $series->getSeparator()); - $objWriter->endElement(); // c:spPr @@ -969,23 +969,19 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee ++$seriesIndex; } - // c:overlap - $objWriter->startElement('c:overlap'); - if ($subject->getBarGrouping() == Bar::GROUPING_CLUSTERED) { - $objWriter->writeAttribute('val', '0'); - } elseif ($subject->getBarGrouping() == Bar::GROUPING_STACKED || $subject->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED) { - $objWriter->writeAttribute('val', '100'); - } - $objWriter->endElement(); - // c:gapWidth $objWriter->startElement('c:gapWidth'); $objWriter->writeAttribute('val', $subject->getGapWidthPercent()); $objWriter->endElement(); - // c:shape - $objWriter->startElement('c:shape'); - $objWriter->writeAttribute('val', 'box'); + // c:overlap + $barGrouping = $subject->getBarGrouping(); + $objWriter->startElement('c:overlap'); + if ($barGrouping === Bar::GROUPING_CLUSTERED) { + $objWriter->writeAttribute('val', '0'); + } elseif ($barGrouping === Bar::GROUPING_STACKED || $barGrouping === Bar::GROUPING_PERCENTSTACKED) { + $objWriter->writeAttribute('val', '100000'); + } $objWriter->endElement(); // c:axId @@ -998,9 +994,8 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee $objWriter->writeAttribute('val', '52749440'); $objWriter->endElement(); - // c:axId - $objWriter->startElement('c:axId'); - $objWriter->writeAttribute('val', '0'); + // c:extLst + $objWriter->startElement('c:extLst'); $objWriter->endElement(); $objWriter->endElement(); @@ -1099,8 +1094,8 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -1143,9 +1138,6 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include // c:showLeaderLines $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:separator - $objWriter->writeElementIf($series->hasShowSeparator(), 'c:separator', 'val', $series->getSeparator()); - $objWriter->endElement(); // c:spPr @@ -1185,11 +1177,6 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include $objWriter->writeAttribute('val', $subject->getGapWidthPercent()); $objWriter->endElement(); - // c:shape - $objWriter->startElement('c:shape'); - $objWriter->writeAttribute('val', 'box'); - $objWriter->endElement(); - // c:axId $objWriter->startElement('c:axId'); $objWriter->writeAttribute('val', '52743552'); @@ -1322,8 +1309,8 @@ protected function writeTypeDoughnut(XMLWriter $objWriter, Doughnut $subject, $i $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); // c:dLbls\c:txPr\a:p\a:pPr\a:defRPr\a:solidFill $objWriter->startElement('a:solidFill'); @@ -1455,8 +1442,8 @@ protected function writeTypePie(XMLWriter $objWriter, Pie $subject, $includeShee $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -1505,9 +1492,6 @@ protected function writeTypePie(XMLWriter $objWriter, Pie $subject, $includeShee // c:showLeaderLines $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:separator - $objWriter->writeElementIf($series->hasShowSeparator(), 'c:separator', 'val', $series->getSeparator()); - $objWriter->endElement(); // Write X axis data @@ -1621,8 +1605,8 @@ protected function writeTypePie3D(XMLWriter $objWriter, Pie3D $subject, $include $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -1668,9 +1652,6 @@ protected function writeTypePie3D(XMLWriter $objWriter, Pie3D $subject, $include // c:showLeaderLines $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:separator - $objWriter->writeElementIf($series->hasShowSeparator(), 'c:separator', 'val', $series->getSeparator()); - $objWriter->endElement(); // Write X axis data @@ -1776,8 +1757,8 @@ protected function writeTypeLine(XMLWriter $objWriter, Line $subject, $includeSh $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -1820,9 +1801,6 @@ protected function writeTypeLine(XMLWriter $objWriter, Line $subject, $includeSh // c:showLeaderLines $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:separator - $objWriter->writeElementIf($series->hasShowSeparator(), 'c:separator', 'val', $series->getSeparator()); - // > c:dLbls $objWriter->endElement(); @@ -1916,6 +1894,15 @@ protected function writeTypeScatter(XMLWriter $objWriter, Scatter $subject, $inc $this->writeSingleValueOrReference($objWriter, $includeSheet, $series->getTitle(), $coords); $objWriter->endElement(); + // c:spPr + $objWriter->startElement('c:spPr'); + // Write fill + $this->writeFill($objWriter, $series->getFill()); + // Write outline + $this->writeOutline($objWriter, $series->getOutline()); + // ## c:spPr + $objWriter->endElement(); + // Marker $this->writeSeriesMarker($objWriter, $series->getMarker()); @@ -1945,8 +1932,8 @@ protected function writeTypeScatter(XMLWriter $objWriter, Scatter $subject, $inc $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); - $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($series->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($series->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); @@ -1989,21 +1976,16 @@ protected function writeTypeScatter(XMLWriter $objWriter, Scatter $subject, $inc // c:showPercent $this->writeElementWithValAttribute($objWriter, 'c:showPercent', $series->hasShowPercentage() ? '1' : '0'); - // c:showLeaderLines - $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:separator - $objWriter->writeElementIf($series->hasShowSeparator(), 'c:separator', 'val', $series->getSeparator()); + $separator = $series->getSeparator(); + if (!empty($separator) && $separator != PHP_EOL) { + // c:dLbls\c:separator + $objWriter->writeElement('c:separator', $separator); + } - $objWriter->endElement(); + // c:showLeaderLines + $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); - // c:spPr - $objWriter->startElement('c:spPr'); - // Write fill - $this->writeFill($objWriter, $series->getFill()); - // Write outline - $this->writeOutline($objWriter, $series->getOutline()); - // ## c:spPr $objWriter->endElement(); // Write X axis data @@ -2225,8 +2207,8 @@ protected function writeAxis(XMLWriter $objWriter, Chart\Axis $oAxis, $typeAxis, $objWriter->writeAttribute('strike', ($oAxis->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); $objWriter->writeAttribute('sz', ($oAxis->getFont()->getSize() * 100)); $objWriter->writeAttribute('u', $oAxis->getFont()->getUnderline()); - $objWriter->writeAttributeIf($oAxis->getFont()->isSuperScript(), 'baseline', '30000'); - $objWriter->writeAttributeIf($oAxis->getFont()->isSubScript(), 'baseline', '-25000'); + $objWriter->writeAttributeIf($oAxis->getFont()->isSuperScript(), 'baseline', '300000'); + $objWriter->writeAttributeIf($oAxis->getFont()->isSubScript(), 'baseline', '-250000'); // Font - a:solidFill $objWriter->startElement('a:solidFill'); diff --git a/src/PhpPresentation/Writer/PowerPoint2007/PptTheme.php b/src/PhpPresentation/Writer/PowerPoint2007/PptTheme.php index 81dd52153..d6e5ac105 100644 --- a/src/PhpPresentation/Writer/PowerPoint2007/PptTheme.php +++ b/src/PhpPresentation/Writer/PowerPoint2007/PptTheme.php @@ -199,7 +199,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0%'); + $objWriter->writeAttribute('pos', '0'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -207,12 +207,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '50%'); + $objWriter->writeAttribute('val', '50000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '300%'); + $objWriter->writeAttribute('val', '300000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -223,7 +223,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '35%'); + $objWriter->writeAttribute('pos', '35000'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -231,12 +231,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '37%'); + $objWriter->writeAttribute('val', '37000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '300%'); + $objWriter->writeAttribute('val', '300000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -247,7 +247,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100%'); + $objWriter->writeAttribute('pos', '100000'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -255,12 +255,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '15%'); + $objWriter->writeAttribute('val', '15000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '350%'); + $objWriter->writeAttribute('val', '350000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -290,7 +290,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0%'); + $objWriter->writeAttribute('pos', '0'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -298,12 +298,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '51%'); + $objWriter->writeAttribute('val', '51000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '130%'); + $objWriter->writeAttribute('val', '130000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -314,7 +314,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '80%'); + $objWriter->writeAttribute('pos', '80000'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -322,12 +322,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '93%'); + $objWriter->writeAttribute('val', '93000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '130%'); + $objWriter->writeAttribute('val', '130000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -338,7 +338,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100%'); + $objWriter->writeAttribute('pos', '100000'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -346,12 +346,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '94%'); + $objWriter->writeAttribute('val', '94000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '135%'); + $objWriter->writeAttribute('val', '135000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -394,12 +394,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '95%'); + $objWriter->writeAttribute('val', '95000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '105%'); + $objWriter->writeAttribute('val', '105000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/ @@ -497,7 +497,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', '38%'); + $objWriter->writeAttribute('val', '38000'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/ $objWriter->endElement(); @@ -533,7 +533,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', '35%'); + $objWriter->writeAttribute('val', '35'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/ $objWriter->endElement(); @@ -569,7 +569,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', '35%'); + $objWriter->writeAttribute('val', '35000'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/ $objWriter->endElement(); @@ -661,7 +661,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0%'); + $objWriter->writeAttribute('pos', '0'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -669,12 +669,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '40%'); + $objWriter->writeAttribute('val', '40000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '350%'); + $objWriter->writeAttribute('val', '350000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -685,7 +685,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '40%'); + $objWriter->writeAttribute('pos', '40000'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -693,17 +693,17 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '45%'); + $objWriter->writeAttribute('val', '45000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '99%'); + $objWriter->writeAttribute('val', '99000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '350%'); + $objWriter->writeAttribute('val', '350000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -714,7 +714,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100%'); + $objWriter->writeAttribute('pos', '100000'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -722,12 +722,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '20%'); + $objWriter->writeAttribute('val', '20000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '255%'); + $objWriter->writeAttribute('val', '255000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -745,10 +745,10 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/a:fillToRect $objWriter->startElement('a:fillToRect'); - $objWriter->writeAttribute('b', '180%'); - $objWriter->writeAttribute('l', '50%'); - $objWriter->writeAttribute('r', '50%'); - $objWriter->writeAttribute('t', '-80%'); + $objWriter->writeAttribute('b', '180000'); + $objWriter->writeAttribute('l', '50000'); + $objWriter->writeAttribute('r', '50000'); + $objWriter->writeAttribute('t', '-80000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/ @@ -766,7 +766,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0%'); + $objWriter->writeAttribute('pos', '0'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -774,12 +774,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '80%'); + $objWriter->writeAttribute('val', '80000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '300%'); + $objWriter->writeAttribute('val', '300000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -790,7 +790,7 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100%'); + $objWriter->writeAttribute('pos', '100000'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); @@ -798,12 +798,12 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '30%'); + $objWriter->writeAttribute('val', '30000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '200%'); + $objWriter->writeAttribute('val', '200000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ @@ -821,10 +821,10 @@ protected function writeTheme(Slide\SlideMaster $oMasterSlide) // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/a:fillToRect $objWriter->startElement('a:fillToRect'); - $objWriter->writeAttribute('b', '50%'); - $objWriter->writeAttribute('l', '50%'); - $objWriter->writeAttribute('r', '50%'); - $objWriter->writeAttribute('t', '50%'); + $objWriter->writeAttribute('b', '50000'); + $objWriter->writeAttribute('l', '50000'); + $objWriter->writeAttribute('r', '50000'); + $objWriter->writeAttribute('t', '50000'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/ diff --git a/src/PhpPresentation/Writer/Serialized.php b/src/PhpPresentation/Writer/Serialized.php index c7e5bb2cd..2d57e8416 100644 --- a/src/PhpPresentation/Writer/Serialized.php +++ b/src/PhpPresentation/Writer/Serialized.php @@ -67,7 +67,7 @@ public function save($pFilename) for ($j = 0; $j < $oPresentation->getSlide($i)->getShapeCollection()->count(); ++$j) { if ($oPresentation->getSlide($i)->getShapeCollection()->offsetGet($j) instanceof AbstractDrawingAdapter) { $imgTemp = $oPresentation->getSlide($i)->getShapeCollection()->offsetGet($j); - $objZip->addFromString('media/' . $imgTemp->getIndexedFilename(), file_get_contents($imgTemp->getPath())); + $objZip->addFromString('media/' . $imgTemp->getImageIndex() . '/' . pathinfo($imgTemp->getPath(), PATHINFO_BASENAME), file_get_contents($imgTemp->getPath())); } } } @@ -97,7 +97,8 @@ private function writeSerialized(PhpPresentation $pPhpPresentation = null, $pFil for ($i = 0; $i < $slideCount; ++$i) { for ($j = 0; $j < $pPhpPresentation->getSlide($i)->getShapeCollection()->count(); ++$j) { if ($pPhpPresentation->getSlide($i)->getShapeCollection()->offsetGet($j) instanceof AbstractDrawingAdapter) { - $pPhpPresentation->getSlide($i)->getShapeCollection()->offsetGet($j)->setPath('zip://' . $pFilename . '#media/' . $pPhpPresentation->getSlide($i)->getShapeCollection()->offsetGet($j)->getIndexedFilename(), false); + $imgTemp = $pPhpPresentation->getSlide($i)->getShapeCollection()->offsetGet($j); + $imgTemp->setPath('zip://' . $pFilename . '#media/' . $imgTemp->getImageIndex() . '/' . pathinfo($imgTemp->getPath(), PATHINFO_BASENAME), false); } } } diff --git a/tests/PhpPresentation/Tests/AbstractShapeTest.php b/tests/PhpPresentation/Tests/AbstractShapeTest.php index 3a13efb61..a6774d9d3 100644 --- a/tests/PhpPresentation/Tests/AbstractShapeTest.php +++ b/tests/PhpPresentation/Tests/AbstractShapeTest.php @@ -63,7 +63,7 @@ public function testHeight() { $object = new RichText(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setHeight()); $this->assertEquals(0, $object->getHeight()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setHeight($value)); @@ -88,7 +88,7 @@ public function testOffsetX() { $object = new RichText(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setOffsetX()); $this->assertEquals(0, $object->getOffsetX()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setOffsetX($value)); @@ -99,7 +99,7 @@ public function testOffsetY() { $object = new RichText(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setOffsetY()); $this->assertEquals(0, $object->getOffsetY()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setOffsetY($value)); @@ -110,7 +110,7 @@ public function testRotation() { $object = new RichText(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setRotation()); $this->assertEquals(0, $object->getRotation()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setRotation($value)); @@ -131,7 +131,7 @@ public function testWidth() { $object = new RichText(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setWidth()); $this->assertEquals(0, $object->getWidth()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setWidth($value)); @@ -142,7 +142,7 @@ public function testWidthAndHeight() { $object = new RichText(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\AbstractShape', $object->setWidthAndHeight()); $this->assertEquals(0, $object->getWidth()); $this->assertEquals(0, $object->getHeight()); diff --git a/tests/PhpPresentation/Tests/DocumentLayoutTest.php b/tests/PhpPresentation/Tests/DocumentLayoutTest.php index 34f5cca58..abe8f4f1f 100644 --- a/tests/PhpPresentation/Tests/DocumentLayoutTest.php +++ b/tests/PhpPresentation/Tests/DocumentLayoutTest.php @@ -57,7 +57,7 @@ public function testSetCustomLayout() public function testCX() { - $value = rand(1, 100000); + $value = mt_rand(1, 100000); $object = new DocumentLayout(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\DocumentLayout', $object->setCX($value)); $this->assertEquals($value, $object->getCX()); @@ -77,7 +77,7 @@ public function testCX() public function testCY() { - $value = rand(1, 100000); + $value = mt_rand(1, 100000); $object = new DocumentLayout(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\DocumentLayout', $object->setCY($value)); $this->assertEquals($value, $object->getCY()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/AxisTest.php b/tests/PhpPresentation/Tests/Shape/Chart/AxisTest.php index a245ccfbe..1c0acc9ae 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/AxisTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/AxisTest.php @@ -40,7 +40,7 @@ public function testConstruct() public function testBounds() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $object = new Axis(); $this->assertNull($object->getMinBounds()); @@ -90,7 +90,7 @@ public function testGridLines() public function testHashIndex() { $object = new Axis(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Axis', $object->setHashIndex($value)); @@ -107,12 +107,14 @@ public function testIsVisible() $this->assertTrue($object->isVisible()); } - public function testTitle() + public function testOutline() { + $oMock = $this->getMockBuilder('PhpOffice\PhpPresentation\Style\\Outline')->getMock(); + $object = new Axis(); - $this->assertEquals('Axis Title', $object->getTitle()); - $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Axis', $object->setTitle('AAAA')); - $this->assertEquals('AAAA', $object->getTitle()); + $this->assertInstanceOf('PhpOffice\PhpPresentation\Style\\Outline', $object->getOutline()); + $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Axis', $object->setOutline($oMock)); + $this->assertInstanceOf('PhpOffice\PhpPresentation\Style\\Outline', $object->getOutline()); } public function testTickMark() @@ -133,9 +135,17 @@ public function testTickMark() $this->assertEquals(Axis::TICK_MARK_NONE, $object->getMajorTickMark()); } + public function testTitle() + { + $object = new Axis(); + $this->assertEquals('Axis Title', $object->getTitle()); + $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Axis', $object->setTitle('AAAA')); + $this->assertEquals('AAAA', $object->getTitle()); + } + public function testUnit() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $object = new Axis(); $this->assertNull($object->getMinorUnit()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/LegendTest.php b/tests/PhpPresentation/Tests/Shape/Chart/LegendTest.php index 9df161465..8c44739dd 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/LegendTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/LegendTest.php @@ -80,7 +80,7 @@ public function testFont() public function testHashIndex() { $object = new Legend(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Legend', $object->setHashIndex($value)); @@ -90,7 +90,7 @@ public function testHashIndex() public function testHeight() { $object = new Legend(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Legend', $object->setHeight()); $this->assertEquals(0, $object->getHeight()); @@ -101,7 +101,7 @@ public function testHeight() public function testOffsetX() { $object = new Legend(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Legend', $object->setOffsetX()); $this->assertEquals(0, $object->getOffsetX()); @@ -112,7 +112,7 @@ public function testOffsetX() public function testOffsetY() { $object = new Legend(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Legend', $object->setOffsetY()); $this->assertEquals(0, $object->getOffsetY()); @@ -145,7 +145,7 @@ public function testVisible() public function testWidth() { $object = new Legend(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Legend', $object->setWidth()); $this->assertEquals(0, $object->getWidth()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/MarkerTest.php b/tests/PhpPresentation/Tests/Shape/Chart/MarkerTest.php index ae915aa0d..36b41db48 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/MarkerTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/MarkerTest.php @@ -48,7 +48,7 @@ public function testSymbol() public function testSize() { $object = new Marker(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Marker', $object->setSize($value)); $this->assertEquals($value, $object->getSize()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/PlotAreaTest.php b/tests/PhpPresentation/Tests/Shape/Chart/PlotAreaTest.php index e34a56b20..c9a29a3fb 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/PlotAreaTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/PlotAreaTest.php @@ -41,7 +41,7 @@ public function testConstruct() public function testHashIndex() { $object = new PlotArea(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\PlotArea', $object->setHashIndex($value)); @@ -51,7 +51,7 @@ public function testHashIndex() public function testHeight() { $object = new PlotArea(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\PlotArea', $object->setHeight()); $this->assertEquals(0, $object->getHeight()); @@ -62,7 +62,7 @@ public function testHeight() public function testOffsetX() { $object = new PlotArea(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\PlotArea', $object->setOffsetX()); $this->assertEquals(0, $object->getOffsetX()); @@ -73,7 +73,7 @@ public function testOffsetX() public function testOffsetY() { $object = new PlotArea(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\PlotArea', $object->setOffsetY()); $this->assertEquals(0, $object->getOffsetY()); @@ -102,7 +102,7 @@ public function testTypeException() public function testWidth() { $object = new PlotArea(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\PlotArea', $object->setWidth()); $this->assertEquals(0, $object->getWidth()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/SeriesTest.php b/tests/PhpPresentation/Tests/Shape/Chart/SeriesTest.php index 943d810d1..6f4161109 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/SeriesTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/SeriesTest.php @@ -98,7 +98,7 @@ public function testFont() public function testHashIndex() { $object = new Series(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Series', $object->setHashIndex($value)); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/TitleTest.php b/tests/PhpPresentation/Tests/Shape/Chart/TitleTest.php index ecf5580f6..7c326ed8b 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/TitleTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/TitleTest.php @@ -60,7 +60,7 @@ public function testFont() public function testHashIndex() { $object = new Title(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Title', $object->setHashIndex($value)); @@ -70,7 +70,7 @@ public function testHashIndex() public function testHeight() { $object = new Title(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Title', $object->setHeight()); $this->assertEquals(0, $object->getHeight()); @@ -81,7 +81,7 @@ public function testHeight() public function testOffsetX() { $object = new Title(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Title', $object->setOffsetX()); $this->assertEquals(0.01, $object->getOffsetX()); @@ -92,7 +92,7 @@ public function testOffsetX() public function testOffsetY() { $object = new Title(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Title', $object->setOffsetY()); $this->assertEquals(0.01, $object->getOffsetY()); @@ -125,7 +125,7 @@ public function testVisible() public function testWidth() { $object = new Title(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Title', $object->setWidth()); $this->assertEquals(0, $object->getWidth()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/Type/AbstractTest.php b/tests/PhpPresentation/Tests/Shape/Chart/Type/AbstractTest.php index 44ef9f6f1..8fe41e264 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/Type/AbstractTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/Type/AbstractTest.php @@ -39,7 +39,7 @@ public function testAxis() public function testHashIndex() { $object = new Scatter(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Type\\Scatter', $object->setHashIndex($value)); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/Type/Bar3DTest.php b/tests/PhpPresentation/Tests/Shape/Chart/Type/Bar3DTest.php index d7aff69bd..f2a216f22 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/Type/Bar3DTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/Type/Bar3DTest.php @@ -78,7 +78,7 @@ public function testBarGrouping() public function testGapWidthPercent() { - $value = rand(0, 500); + $value = mt_rand(0, 500); $object = new Bar3D(); $this->assertEquals(150, $object->getGapWidthPercent()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Type\\Bar3D', $object->setGapWidthPercent($value)); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/Type/BarTest.php b/tests/PhpPresentation/Tests/Shape/Chart/Type/BarTest.php index 75b64f052..d558dd7b3 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/Type/BarTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/Type/BarTest.php @@ -78,7 +78,7 @@ public function testBarGrouping() public function testGapWidthPercent() { - $value = rand(0, 500); + $value = mt_rand(0, 500); $object = new Bar(); $this->assertEquals(150, $object->getGapWidthPercent()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\Type\\Bar', $object->setGapWidthPercent($value)); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/Type/DoughnutTest.php b/tests/PhpPresentation/Tests/Shape/Chart/Type/DoughnutTest.php index a1a3155cb..92c2a3486 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/Type/DoughnutTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/Type/DoughnutTest.php @@ -48,7 +48,7 @@ public function testData() public function testHoleSize() { - $rand = rand(10, 90); + $rand = mt_rand(10, 90); $object = new Doughnut(); $this->assertEquals(50, $object->getHoleSize()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/Type/Pie3DTest.php b/tests/PhpPresentation/Tests/Shape/Chart/Type/Pie3DTest.php index 32888a900..54abf433c 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/Type/Pie3DTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/Type/Pie3DTest.php @@ -56,8 +56,7 @@ public function testSeries() public function testExplosion() { - $value = rand(0, 100); - + $value = mt_rand(0, 100); $object = new Pie3D(); $this->assertEquals(0, $object->getExplosion()); diff --git a/tests/PhpPresentation/Tests/Shape/Chart/View3DTest.php b/tests/PhpPresentation/Tests/Shape/Chart/View3DTest.php index c2fb4dd02..ce85e4fad 100644 --- a/tests/PhpPresentation/Tests/Shape/Chart/View3DTest.php +++ b/tests/PhpPresentation/Tests/Shape/Chart/View3DTest.php @@ -30,7 +30,7 @@ class View3DTest extends TestCase public function testDepthPercent() { $object = new View3D(); - $value = rand(20, 20000); + $value = mt_rand(20, 20000); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\View3D', $object->setDepthPercent()); $this->assertEquals(100, $object->getDepthPercent()); @@ -41,7 +41,7 @@ public function testDepthPercent() public function testHashIndex() { $object = new View3D(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertEmpty($object->getHashIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\View3D', $object->setHashIndex($value)); @@ -51,7 +51,7 @@ public function testHashIndex() public function testHeightPercent() { $object = new View3D(); - $value = rand(5, 500); + $value = mt_rand(5, 500); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\View3D', $object->setHeightPercent()); $this->assertEquals(100, $object->getHeightPercent()); @@ -62,7 +62,7 @@ public function testHeightPercent() public function testPerspective() { $object = new View3D(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\View3D', $object->setPerspective()); $this->assertEquals(30, $object->getPerspective()); @@ -85,7 +85,7 @@ public function testRightAngleAxes() public function testRotationX() { $object = new View3D(); - $value = rand(-90, 90); + $value = mt_rand(-90, 90); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\View3D', $object->setRotationX()); $this->assertEquals(0, $object->getRotationX()); @@ -96,7 +96,7 @@ public function testRotationX() public function testRotationY() { $object = new View3D(); - $value = rand(-90, 90); + $value = mt_rand(-90, 90); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart\\View3D', $object->setRotationY()); $this->assertEquals(0, $object->getRotationY()); diff --git a/tests/PhpPresentation/Tests/Shape/Comment/AuthorTest.php b/tests/PhpPresentation/Tests/Shape/Comment/AuthorTest.php index f88dc2a81..481a16b92 100644 --- a/tests/PhpPresentation/Tests/Shape/Comment/AuthorTest.php +++ b/tests/PhpPresentation/Tests/Shape/Comment/AuthorTest.php @@ -38,7 +38,7 @@ public function testConstruct() public function testGetSetIndex() { - $expectedVal = rand(1, 100); + $expectedVal = mt_rand(1, 100); $object = new Author(); $this->assertNull($object->getIndex()); diff --git a/tests/PhpPresentation/Tests/Shape/Drawing/DrawingTest.php b/tests/PhpPresentation/Tests/Shape/Drawing/DrawingTest.php index eb520c00c..deb3e04a8 100644 --- a/tests/PhpPresentation/Tests/Shape/Drawing/DrawingTest.php +++ b/tests/PhpPresentation/Tests/Shape/Drawing/DrawingTest.php @@ -30,10 +30,10 @@ function function_exists($function) namespace PhpOffice\PhpPresentation\Tests\Shape\Drawing; // @codingStandardsIgnoreStart -use PhpOffice\PhpPresentation\Tests\PhpPresentationTestCase; +use PHPUnit\Framework\TestCase; // @codingStandardsIgnoreEnd -class DrawingTest extends PhpPresentationTestCase +class DrawingTest extends TestCase { public static $getimagesizefromstringExists = true; diff --git a/tests/PhpPresentation/Tests/Shape/HyperlinkTest.php b/tests/PhpPresentation/Tests/Shape/HyperlinkTest.php index cfeeb6dc4..022d07383 100644 --- a/tests/PhpPresentation/Tests/Shape/HyperlinkTest.php +++ b/tests/PhpPresentation/Tests/Shape/HyperlinkTest.php @@ -66,7 +66,7 @@ public function testGetHashCode() public function testSetGetHashIndex() { $object = new Hyperlink(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } @@ -79,7 +79,7 @@ public function testGetSetSlideNumber() $this->assertEquals(1, $object->getSlideNumber()); $this->assertEquals('ppaction://hlinksldjump', $object->getUrl()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Hyperlink', $object->setSlideNumber($value)); $this->assertEquals($value, $object->getSlideNumber()); diff --git a/tests/PhpPresentation/Tests/Shape/LineTest.php b/tests/PhpPresentation/Tests/Shape/LineTest.php index d452a925e..01472af5f 100644 --- a/tests/PhpPresentation/Tests/Shape/LineTest.php +++ b/tests/PhpPresentation/Tests/Shape/LineTest.php @@ -33,7 +33,7 @@ class LineTest extends TestCase */ public function testConstruct() { - $value = rand(1, 100); + $value = mt_rand(1, 100); $object = new Line($value, $value, $value, $value); $this->assertEquals(Border::LINE_SINGLE, $object->getBorder()->getLineStyle()); diff --git a/tests/PhpPresentation/Tests/Shape/PlaceholderTest.php b/tests/PhpPresentation/Tests/Shape/PlaceholderTest.php index d9dcb1142..7c0bdbaae 100644 --- a/tests/PhpPresentation/Tests/Shape/PlaceholderTest.php +++ b/tests/PhpPresentation/Tests/Shape/PlaceholderTest.php @@ -36,7 +36,7 @@ public function testConstruct() public function testIdx() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $object = new Placeholder(Placeholder::PH_TYPE_BODY); $this->assertNull($object->getIdx()); diff --git a/tests/PhpPresentation/Tests/Shape/RichText/ParagraphTest.php b/tests/PhpPresentation/Tests/Shape/RichText/ParagraphTest.php index 608389899..11118e725 100644 --- a/tests/PhpPresentation/Tests/Shape/RichText/ParagraphTest.php +++ b/tests/PhpPresentation/Tests/Shape/RichText/ParagraphTest.php @@ -93,7 +93,7 @@ public function testHashCode() public function testHashIndex() { $object = new Paragraph(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } @@ -104,7 +104,7 @@ public function testHashIndex() public function testLineSpacing() { $object = new Paragraph(); - $valueExpected = rand(1, 100); + $valueExpected = mt_rand(1, 100); $this->assertEquals(100, $object->getLineSpacing()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->setLineSpacing($valueExpected)); $this->assertEquals($valueExpected, $object->getLineSpacing()); diff --git a/tests/PhpPresentation/Tests/Shape/RichTextTest.php b/tests/PhpPresentation/Tests/Shape/RichTextTest.php index 0c903c405..1671e4045 100644 --- a/tests/PhpPresentation/Tests/Shape/RichTextTest.php +++ b/tests/PhpPresentation/Tests/Shape/RichTextTest.php @@ -42,12 +42,12 @@ public function testActiveParagraph() $this->assertEquals(0, $object->getActiveParagraphIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->createParagraph()); $this->assertCount(2, $object->getParagraphs()); - $value = rand(0, 1); + $value = mt_rand(0, 1); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->setActiveParagraph($value)); $this->assertEquals($value, $object->getActiveParagraphIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->getActiveParagraph()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->getParagraph()); - $value = rand(0, 1); + $value = mt_rand(0, 1); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->getParagraph($value)); } @@ -75,7 +75,7 @@ public function testColumns() { $object = new RichText(); - $value = rand(1, 16); + $value = mt_rand(1, 16); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText', $object->setColumns($value)); $this->assertEquals($value, $object->getColumns()); } @@ -206,7 +206,7 @@ public function testGetSetInset() $this->assertEquals(4.8, $object->getInsetTop()); // Value - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText', $object->setInsetBottom($value)); $this->assertEquals($value, $object->getInsetBottom()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText', $object->setInsetLeft($value)); diff --git a/tests/PhpPresentation/Tests/Shape/Table/CellTest.php b/tests/PhpPresentation/Tests/Shape/Table/CellTest.php index 6d9e9040d..b06278d70 100644 --- a/tests/PhpPresentation/Tests/Shape/Table/CellTest.php +++ b/tests/PhpPresentation/Tests/Shape/Table/CellTest.php @@ -49,12 +49,12 @@ public function testActiveParagraph() $this->assertEquals(0, $object->getActiveParagraphIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->createParagraph()); $this->assertCount(2, $object->getParagraphs()); - $value = rand(0, 1); + $value = mt_rand(0, 1); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->setActiveParagraph($value)); $this->assertEquals($value, $object->getActiveParagraphIndex()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->getActiveParagraph()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->getParagraph()); - $value = rand(0, 1); + $value = mt_rand(0, 1); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Paragraph', $object->getParagraph($value)); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setParagraphs(array())); @@ -89,7 +89,7 @@ public function testGetParagraphException() public function testSetGetHashIndex() { $object = new Cell(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } @@ -155,7 +155,7 @@ public function testGetSetColspan() $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setColSpan()); $this->assertEquals(0, $object->getColSpan()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setColSpan($value)); $this->assertEquals($value, $object->getColSpan()); } @@ -175,7 +175,7 @@ public function testGetSetRowspan() $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setRowSpan()); $this->assertEquals(0, $object->getRowSpan()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setRowSpan($value)); $this->assertEquals($value, $object->getRowSpan()); } @@ -187,7 +187,7 @@ public function testGetSetWidth() $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setWidth()); $this->assertEquals(0, $object->getWidth()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Cell', $object->setWidth($value)); $this->assertEquals($value, $object->getWidth()); } diff --git a/tests/PhpPresentation/Tests/Shape/Table/RowTest.php b/tests/PhpPresentation/Tests/Shape/Table/RowTest.php index afea5df52..87e2574a2 100644 --- a/tests/PhpPresentation/Tests/Shape/Table/RowTest.php +++ b/tests/PhpPresentation/Tests/Shape/Table/RowTest.php @@ -37,7 +37,7 @@ public function testConstruct() $this->assertCount(1, $object->getCells()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Fill', $object->getFill()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object = new Row($value); $this->assertCount($value, $object->getCells()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Fill', $object->getFill()); @@ -85,7 +85,7 @@ public function testNextCellException() public function testSetGetHashIndex() { $object = new Row(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } @@ -105,7 +105,7 @@ public function testGetSetHeight() $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Row', $object->setHeight()); $this->assertEquals(0, $object->getHeight()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Table\\Row', $object->setHeight($value)); $this->assertEquals($value, $object->getHeight()); } diff --git a/tests/PhpPresentation/Tests/Shape/TableTest.php b/tests/PhpPresentation/Tests/Shape/TableTest.php index 983e72baa..2df8db727 100644 --- a/tests/PhpPresentation/Tests/Shape/TableTest.php +++ b/tests/PhpPresentation/Tests/Shape/TableTest.php @@ -36,7 +36,7 @@ public function testConstruct() public function testNumColums() { - $value = rand(1, 100); + $value = mt_rand(1, 100); $object = new Table(); $this->assertEquals(1, $object->getNumColumns()); diff --git a/tests/PhpPresentation/Tests/Slide/Background/ImageTest.php b/tests/PhpPresentation/Tests/Slide/Background/ImageTest.php index 6f5c9fd62..f92b4830b 100644 --- a/tests/PhpPresentation/Tests/Slide/Background/ImageTest.php +++ b/tests/PhpPresentation/Tests/Slide/Background/ImageTest.php @@ -12,7 +12,7 @@ public function testColor() $object = new Image(); $imagePath = PHPPRESENTATION_TESTS_BASE_DIR.DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'images'.DIRECTORY_SEPARATOR.'PhpPresentationLogo.png'; - $numSlide = rand(1, 100); + $numSlide = mt_rand(1, 100); $this->assertNull($object->getPath()); $this->assertEmpty($object->getFilename()); diff --git a/tests/PhpPresentation/Tests/Slide/NoteTest.php b/tests/PhpPresentation/Tests/Slide/NoteTest.php index 48f93e3d6..58db5abaa 100644 --- a/tests/PhpPresentation/Tests/Slide/NoteTest.php +++ b/tests/PhpPresentation/Tests/Slide/NoteTest.php @@ -82,7 +82,7 @@ public function testShape() public function testSetGetHashIndex() { $object = new Note(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertNull($object->getHashIndex()); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); diff --git a/tests/PhpPresentation/Tests/Slide/TransitionTest.php b/tests/PhpPresentation/Tests/Slide/TransitionTest.php index 3390b11c4..6aa8e9940 100644 --- a/tests/PhpPresentation/Tests/Slide/TransitionTest.php +++ b/tests/PhpPresentation/Tests/Slide/TransitionTest.php @@ -63,19 +63,19 @@ public function testTimeTrigger() $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\Transition', $object->setTimeTrigger()); $this->assertFalse($object->hasTimeTrigger()); $this->assertNull($object->getAdvanceTimeTrigger()); - $value = rand(1, 1000); + $value = mt_rand(1, 1000); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\Transition', $object->setTimeTrigger(true, $value)); $this->assertTrue($object->hasTimeTrigger()); $this->assertEquals($value, $object->getAdvanceTimeTrigger()); - $value = rand(1, 1000); + $value = mt_rand(1, 1000); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\Transition', $object->setTimeTrigger(null, $value)); $this->assertTrue($object->hasTimeTrigger()); $this->assertEquals($value, $object->getAdvanceTimeTrigger()); - $value = rand(1, 1000); + $value = mt_rand(1, 1000); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\Transition', $object->setTimeTrigger(false, $value)); $this->assertFalse($object->hasTimeTrigger()); $this->assertNull($object->getAdvanceTimeTrigger()); - $value = rand(1, 1000); + $value = mt_rand(1, 1000); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\Transition', $object->setTimeTrigger(null, $value)); $this->assertFalse($object->hasTimeTrigger()); $this->assertNull($object->getAdvanceTimeTrigger()); diff --git a/tests/PhpPresentation/Tests/SlideTest.php b/tests/PhpPresentation/Tests/SlideTest.php index 3c1881faa..bc6fddce6 100644 --- a/tests/PhpPresentation/Tests/SlideTest.php +++ b/tests/PhpPresentation/Tests/SlideTest.php @@ -59,8 +59,7 @@ public function testParent() public function testSlideMasterId() { - $value = rand(1, 100); - + $value = mt_rand(1, 100); $object = new Slide(); $this->assertEquals(1, $object->getSlideMasterId()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide', $object->setSlideMasterId()); diff --git a/tests/PhpPresentation/Tests/Style/AlignmentTest.php b/tests/PhpPresentation/Tests/Style/AlignmentTest.php index f9b3fc265..9041ba0d9 100644 --- a/tests/PhpPresentation/Tests/Style/AlignmentTest.php +++ b/tests/PhpPresentation/Tests/Style/AlignmentTest.php @@ -88,7 +88,12 @@ public function testSetGetVertical() public function testSetGetLevelExceptionMin() { $object = new Alignment(); - $this->setExpectedException('\Exception', 'Invalid value should be more than 0.'); + if (method_exists($this, 'setExpectedException')) { + $this->setExpectedException('\Exception', 'Invalid value should be more than 0.'); + } + if (method_exists($this, 'expectException')) { + $this->expectException('\Exception', 'Invalid value should be more than 0.'); + } $object->setLevel(-1); } @@ -98,7 +103,7 @@ public function testSetGetLevelExceptionMin() public function testSetGetLevel() { $object = new Alignment(); - $value = rand(1, 8); + $value = mt_rand(1, 8); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setLevel($value)); $this->assertEquals($value, $object->getLevel()); } @@ -111,18 +116,18 @@ public function testSetGetIndent() $object = new Alignment(); // != Alignment::HORIZONTAL_GENERAL $object->setHorizontal(Alignment::HORIZONTAL_CENTER); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setIndent($value)); $this->assertEquals(0, $object->getIndent()); - $value = rand(-100, 0); + $value = mt_rand(-100, 0); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setIndent($value)); $this->assertEquals($value, $object->getIndent()); $object->setHorizontal(Alignment::HORIZONTAL_GENERAL); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setIndent($value)); $this->assertEquals($value, $object->getIndent()); - $value = rand(-100, 0); + $value = mt_rand(-100, 0); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setIndent($value)); $this->assertEquals($value, $object->getIndent()); } @@ -133,7 +138,7 @@ public function testSetGetIndent() public function testSetGetMarginBottom() { $object = new Alignment(); - $value = rand(0, 100); + $value = mt_rand(0, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginBottom($value)); $this->assertEquals($value, $object->getMarginBottom()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginBottom()); @@ -148,18 +153,18 @@ public function testSetGetMarginLeft() $object = new Alignment(); // != Alignment::HORIZONTAL_GENERAL $object->setHorizontal(Alignment::HORIZONTAL_CENTER); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginLeft($value)); $this->assertEquals(0, $object->getMarginLeft()); - $value = rand(-100, 0); + $value = mt_rand(-100, 0); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginLeft($value)); $this->assertEquals($value, $object->getMarginLeft()); $object->setHorizontal(Alignment::HORIZONTAL_GENERAL); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginLeft($value)); $this->assertEquals($value, $object->getMarginLeft()); - $value = rand(-100, 0); + $value = mt_rand(-100, 0); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginLeft($value)); $this->assertEquals($value, $object->getMarginLeft()); } @@ -172,18 +177,18 @@ public function testSetGetMarginRight() $object = new Alignment(); // != Alignment::HORIZONTAL_GENERAL $object->setHorizontal(Alignment::HORIZONTAL_CENTER); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginRight($value)); $this->assertEquals(0, $object->getMarginRight()); - $value = rand(-100, 0); + $value = mt_rand(-100, 0); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginRight($value)); $this->assertEquals($value, $object->getMarginRight()); $object->setHorizontal(Alignment::HORIZONTAL_GENERAL); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginRight($value)); $this->assertEquals($value, $object->getMarginRight()); - $value = rand(-100, 0); + $value = mt_rand(-100, 0); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginRight($value)); $this->assertEquals($value, $object->getMarginRight()); } @@ -194,7 +199,7 @@ public function testSetGetMarginRight() public function testSetGetMarginTop() { $object = new Alignment(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginTop($value)); $this->assertEquals($value, $object->getMarginTop()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Alignment', $object->setMarginTop()); diff --git a/tests/PhpPresentation/Tests/Style/BorderTest.php b/tests/PhpPresentation/Tests/Style/BorderTest.php index 04689e28f..263861963 100644 --- a/tests/PhpPresentation/Tests/Style/BorderTest.php +++ b/tests/PhpPresentation/Tests/Style/BorderTest.php @@ -74,7 +74,7 @@ public function testSetGetDashStyle() public function testSetGetHashIndex() { $object = new Border(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } @@ -101,7 +101,7 @@ public function testSetGetLineWidth() $object = new Border(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Border', $object->setLineWidth()); $this->assertEquals(1, $object->getLineWidth()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Border', $object->setLineWidth($value)); $this->assertEquals($value, $object->getLineWidth()); } diff --git a/tests/PhpPresentation/Tests/Style/BordersTest.php b/tests/PhpPresentation/Tests/Style/BordersTest.php index ffc95e61c..0d492d44e 100644 --- a/tests/PhpPresentation/Tests/Style/BordersTest.php +++ b/tests/PhpPresentation/Tests/Style/BordersTest.php @@ -50,7 +50,7 @@ public function testConstruct() public function testSetGetHashIndex() { $object = new Borders(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } diff --git a/tests/PhpPresentation/Tests/Style/BulletTest.php b/tests/PhpPresentation/Tests/Style/BulletTest.php index 464a2def8..85f1cfc3a 100644 --- a/tests/PhpPresentation/Tests/Style/BulletTest.php +++ b/tests/PhpPresentation/Tests/Style/BulletTest.php @@ -94,7 +94,7 @@ public function testSetGetBulletNumericStartAt() $object = new Bullet(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Bullet', $object->setBulletNumericStartAt()); $this->assertEquals(1, $object->getBulletNumericStartAt()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Bullet', $object->setBulletNumericStartAt($value)); $this->assertEquals($value, $object->getBulletNumericStartAt()); } @@ -129,7 +129,7 @@ public function testSetGetBulletType() public function testSetGetHashIndex() { $object = new Bullet(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } diff --git a/tests/PhpPresentation/Tests/Style/ColorTest.php b/tests/PhpPresentation/Tests/Style/ColorTest.php index 73ef362c9..65045e757 100644 --- a/tests/PhpPresentation/Tests/Style/ColorTest.php +++ b/tests/PhpPresentation/Tests/Style/ColorTest.php @@ -43,7 +43,7 @@ public function testConstruct() */ public function testAlpha() { - $randAlpha = rand(0, 100); + $randAlpha = mt_rand(0, 100); $object = new Color(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Color', $object->setARGB()); $this->assertEquals(100, $object->getAlpha()); @@ -95,7 +95,7 @@ public function testSetGetRGB() public function testSetGetHashIndex() { $object = new Color(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } diff --git a/tests/PhpPresentation/Tests/Style/FillTest.php b/tests/PhpPresentation/Tests/Style/FillTest.php index 667c69b49..a63c1ca16 100644 --- a/tests/PhpPresentation/Tests/Style/FillTest.php +++ b/tests/PhpPresentation/Tests/Style/FillTest.php @@ -75,7 +75,7 @@ public function testSetGetRotation() $object = new Fill(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Fill', $object->setRotation()); $this->assertEquals(0, $object->getRotation()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Fill', $object->setRotation($value)); $this->assertEquals($value, $object->getRotation()); } @@ -99,7 +99,7 @@ public function testSetGetStartColor() public function testSetGetHashIndex() { $object = new Fill(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } diff --git a/tests/PhpPresentation/Tests/Style/FontTest.php b/tests/PhpPresentation/Tests/Style/FontTest.php index 18b5ccfb8..f6546ff38 100644 --- a/tests/PhpPresentation/Tests/Style/FontTest.php +++ b/tests/PhpPresentation/Tests/Style/FontTest.php @@ -109,7 +109,7 @@ public function testSetGetSize() $this->assertEquals(10, $object->getSize()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Font', $object->setSize('')); $this->assertEquals(10, $object->getSize()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Font', $object->setSize($value)); $this->assertEquals($value, $object->getSize()); } @@ -240,7 +240,7 @@ public function testSetIsSuperScript() public function testSetGetHashIndex() { $object = new Font(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } diff --git a/tests/PhpPresentation/Tests/Style/OutlineTest.php b/tests/PhpPresentation/Tests/Style/OutlineTest.php index 898ab2822..ebeb75dcf 100644 --- a/tests/PhpPresentation/Tests/Style/OutlineTest.php +++ b/tests/PhpPresentation/Tests/Style/OutlineTest.php @@ -56,7 +56,7 @@ public function testSetGetWidth() { $object = new Outline(); $this->assertNull($object->getWidth()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Outline', $object->setWidth($value)); $this->assertEquals($value, $object->getWidth()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Outline', $object->setWidth(1.5)); diff --git a/tests/PhpPresentation/Tests/Style/ShadowTest.php b/tests/PhpPresentation/Tests/Style/ShadowTest.php index 93364e8f4..e82cdee6e 100644 --- a/tests/PhpPresentation/Tests/Style/ShadowTest.php +++ b/tests/PhpPresentation/Tests/Style/ShadowTest.php @@ -64,7 +64,7 @@ public function testSetGetAlpha() $object = new Shadow(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setAlpha()); $this->assertEquals(0, $object->getAlpha()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setAlpha($value)); $this->assertEquals($value, $object->getAlpha()); } @@ -77,7 +77,7 @@ public function testSetGetBlurRadius() $object = new Shadow(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setBlurRadius()); $this->assertEquals(6, $object->getBlurRadius()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setBlurRadius($value)); $this->assertEquals($value, $object->getBlurRadius()); } @@ -103,7 +103,7 @@ public function testSetGetDirection() $object = new Shadow(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setDirection()); $this->assertEquals(0, $object->getDirection()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setDirection($value)); $this->assertEquals($value, $object->getDirection()); } @@ -116,7 +116,7 @@ public function testSetGetDistance() $object = new Shadow(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setDistance()); $this->assertEquals(2, $object->getDistance()); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\Shadow', $object->setDistance($value)); $this->assertEquals($value, $object->getDistance()); } @@ -127,7 +127,7 @@ public function testSetGetDistance() public function testSetGetHashIndex() { $object = new Shadow(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $object->setHashIndex($value); $this->assertEquals($value, $object->getHashIndex()); } diff --git a/tests/PhpPresentation/Tests/Style/TextStyleTest.php b/tests/PhpPresentation/Tests/Style/TextStyleTest.php index 67a719d2c..55e98a6b7 100644 --- a/tests/PhpPresentation/Tests/Style/TextStyleTest.php +++ b/tests/PhpPresentation/Tests/Style/TextStyleTest.php @@ -87,7 +87,7 @@ public function testConstructDefaultFalse() public function testLevel() { - $value = rand(0, 9); + $value = mt_rand(0, 9); $object = new TextStyle(false); $oParagraph = new Paragraph(); diff --git a/tests/PhpPresentation/Tests/Writer/ODPresentation/ContentTest.php b/tests/PhpPresentation/Tests/Writer/ODPresentation/ContentTest.php index 566945efb..5de3107c5 100644 --- a/tests/PhpPresentation/Tests/Writer/ODPresentation/ContentTest.php +++ b/tests/PhpPresentation/Tests/Writer/ODPresentation/ContentTest.php @@ -36,6 +36,7 @@ public function testDrawingWithHyperlink() $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/office:event-listeners/presentation:event-listener'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'xlink:href', 'https://github.com/PHPOffice/PHPPresentation/'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testDrawingShapeFill() @@ -83,6 +84,7 @@ public function testComment() $element = '/office:document-content/office:body/office:presentation/draw:page/officeooo:annotation/text:p'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlElementEquals('content.xml', $element, $expectedText); + $this->assertIsSchemaOpenDocumentNotValid('1.2'); } public function testCommentWithoutAuthor() @@ -93,6 +95,7 @@ public function testCommentWithoutAuthor() $element = '/office:document-content/office:body/office:presentation/draw:page/officeooo:annotation'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'dc:creator'); + $this->assertIsSchemaOpenDocumentNotValid('1.2'); } public function testFillGradientLinearRichText() @@ -107,6 +110,7 @@ public function testFillGradientLinearRichText() $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:fill', 'gradient'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:fill-gradient-name', 'gradient_' . $oShape->getFill()->getHashCode()); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testFillSolidRichText() @@ -119,6 +123,7 @@ public function testFillSolidRichText() $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:fill', 'solid'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:fill-color', '#' . $oShape->getFill()->getStartColor()->getRGB()); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:fill-color', '#' . $oShape->getFill()->getEndColor()->getRGB()); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testGroup() @@ -132,6 +137,7 @@ public function testGroup() $this->assertZipXmlElementExists('content.xml', $element); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:g/draw:frame/office:event-listeners/presentation:event-listener'; $this->assertZipXmlElementExists('content.xml', $element); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testList() @@ -149,6 +155,7 @@ public function testList() $this->assertZipXmlElementExists('content.xml', $element); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/draw:text-box/text:list/text:list-item/text:p/text:span'; $this->assertZipXmlElementExists('content.xml', $element); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testInnerList() @@ -176,6 +183,7 @@ public function testInnerList() $this->assertZipXmlElementExists('content.xml', $element); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/draw:text-box/text:list/text:list-item/text:list/text:list-item/text:p/text:span'; $this->assertZipXmlElementExists('content.xml', $element); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testParagraphRichText() @@ -194,6 +202,7 @@ public function testParagraphRichText() $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/draw:text-box/text:p/text:span/text:a'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'xlink:href', 'http://www.google.fr'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testListWithRichText() @@ -209,15 +218,16 @@ public function testListWithRichText() $this->assertZipXmlElementExists('content.xml', $element); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/draw:text-box/text:list/text:list-item/text:p/text:span/text:line-break'; $this->assertZipXmlElementExists('content.xml', $element); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testMedia() { $expectedName = 'MyName'; - $expectedWidth = rand(1, 100); - $expectedHeight = rand(1, 100); - $expectedX = rand(1, 100); - $expectedY = rand(1, 100); + $expectedWidth = mt_rand(1, 100); + $expectedHeight = mt_rand(1, 100); + $expectedX = mt_rand(1, 100); + $expectedY = mt_rand(1, 100); $oMedia = new Media(); $oMedia->setPath(PHPPRESENTATION_TESTS_BASE_DIR . '/resources/videos/sintel_trailer-480p.ogv') @@ -247,6 +257,7 @@ public function testMedia() $this->assertZipXmlAttributeStartsWith('content.xml', $element, 'draw:mime-type', 'application/vnd.sun.star.media'); $this->assertZipXmlAttributeStartsWith('content.xml', $element, 'xlink:href', 'Pictures/'); $this->assertZipXmlAttributeEndsWith('content.xml', $element, 'xlink:href', 'ogv'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testNote() @@ -259,6 +270,7 @@ public function testNote() $this->assertZipXmlElementExists('content.xml', $element); $element = '/office:document-content/office:body/office:presentation/draw:page/presentation:notes/draw:frame/draw:text-box/text:p/text:span'; $this->assertZipXmlElementExists('content.xml', $element); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testRichTextAutoShrink() @@ -268,6 +280,7 @@ public function testRichTextAutoShrink() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'gr1\']/style:graphic-properties'; $this->assertZipXmlAttributeNotExists('content.xml', $element, 'draw:auto-grow-height'); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'draw:auto-grow-width'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oRichText1->setAutoShrinkHorizontal(false); $oRichText1->setAutoShrinkVertical(true); @@ -277,6 +290,7 @@ public function testRichTextAutoShrink() $this->assertZipXmlAttributeExists('content.xml', $element, 'draw:auto-grow-width'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:auto-grow-height', 'true'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:auto-grow-width', 'false'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oRichText1->setAutoShrinkHorizontal(true); $oRichText1->setAutoShrinkVertical(false); @@ -286,6 +300,7 @@ public function testRichTextAutoShrink() $this->assertZipXmlAttributeExists('content.xml', $element, 'draw:auto-grow-width'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:auto-grow-height', 'false'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:auto-grow-width', 'true'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testRichTextRunLanguage() @@ -296,14 +311,16 @@ public function testRichTextRunLanguage() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'T_' . $oRun->getHashCode() . '\']/style:text-properties'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeExists('content.xml', $element, 'fo:language'); - $this->assertZipXmlAttributeEquals('content.xml', $element, 'fo:language', 'en-US'); + $this->assertZipXmlAttributeEquals('content.xml', $element, 'fo:language', 'en'); + $this->assertIsSchemaOpenDocumentValid('1.2'); - $oRun->setLanguage('de_DE'); + $oRun->setLanguage('de'); $this->resetPresentationFile(); $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeExists('content.xml', $element, 'fo:language'); - $this->assertZipXmlAttributeEquals('content.xml', $element, 'fo:language', 'de_DE'); + $this->assertZipXmlAttributeEquals('content.xml', $element, 'fo:language', 'de'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testRichTextBorder() @@ -317,6 +334,7 @@ public function testRichTextBorder() $this->assertZipXmlAttributeNotExists('content.xml', $element, 'svg:stroke-width'); $this->assertZipXmlAttributeExists('content.xml', $element, 'draw:stroke'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:stroke', 'none'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oRichText1->getBorder()->setColor(new Color('FF4672A8'))->setDashStyle(Border::DASH_SOLID)->setLineStyle(Border::LINE_SINGLE); $this->resetPresentationFile(); @@ -330,6 +348,7 @@ public function testRichTextBorder() $this->assertZipXmlAttributeExists('content.xml', $element, 'draw:stroke'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:stroke', 'solid'); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'draw:stroke-dash'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oRichText1->getBorder()->setColor(new Color('FF4672A8'))->setDashStyle(Border::DASH_DASH); $this->resetPresentationFile(); @@ -338,18 +357,19 @@ public function testRichTextBorder() $this->assertZipXmlAttributeExists('content.xml', $element, 'draw:stroke-dash'); $this->assertZipXmlAttributeStartsWith('content.xml', $element, 'draw:stroke-dash', 'strokeDash_'); $this->assertZipXmlAttributeEndsWith('content.xml', $element, 'draw:stroke-dash', $oRichText1->getBorder()->getDashStyle()); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testRichTextShadow() { - $randAlpha = rand(0, 100); + $randAlpha = mt_rand(0, 100); $oRichText = $this->oPresentation->getActiveSlide()->createRichTextShape(); $oRichText->createTextRun('AAA'); $oRichText->getShadow()->setVisible(true)->setAlpha($randAlpha)->setBlurRadius(2); $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'gr1\']/style:graphic-properties'; for ($inc = 0; $inc <= 360; $inc += 45) { - $randDistance = rand(0, 100); + $randDistance = mt_rand(0, 100); $oRichText->getShadow()->setDirection($inc)->setDistance($randDistance); $this->assertZipXmlElementExists('content.xml', $element); @@ -380,6 +400,7 @@ public function testRichTextShadow() $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:shadow-offset-y', '-' . Drawing::pixelsToCentimeters($randDistance) . 'cm'); } } + $this->assertIsSchemaOpenDocumentValid('1.2'); $this->resetPresentationFile(); } } @@ -390,6 +411,7 @@ public function testSlideName() $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'draw:name'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $this->oPresentation->getActiveSlide()->setName('AAAA'); $this->resetPresentationFile(); @@ -397,12 +419,14 @@ public function testSlideName() $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeExists('content.xml', $element, 'draw:name'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:name', 'AAAA'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $this->oPresentation->getActiveSlide()->setName(); $this->resetPresentationFile(); $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'draw:name'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testStyleAlignment() @@ -457,6 +481,8 @@ public function testStyleAlignment() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'P_'.$p6HashCode.'\']/style:paragraph-properties'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'fo:text-align', 'right'); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testStyleFont() @@ -470,14 +496,29 @@ public function testStyleFont() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'T_'.$expectedHashCode.'\']/style:text-properties'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'fo:font-weight', 'bold'); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTable() { - $this->oPresentation->getActiveSlide()->createTableShape(); + $oShape = $this->oPresentation->getActiveSlide()->createTableShape(); + $oShape->createRow(); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/table:table'; $this->assertZipXmlElementExists('content.xml', $element); + + $this->assertIsSchemaOpenDocumentValid('1.2'); + } + + public function testTableEmpty() + { + $this->oPresentation->getActiveSlide()->createTableShape(); + + $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/table:table'; + $this->assertZipXmlElementNotExists('content.xml', $element); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTableCellFill() @@ -502,11 +543,13 @@ public function testTableCellFill() $this->assertZipXmlAttributeEquals('content.xml', $element, 'draw:fill', 'solid'); $this->assertZipXmlAttributeStartsWith('content.xml', $element, 'draw:fill-color', '#'); $this->assertZipXmlAttributeEndsWith('content.xml', $element, 'draw:fill-color', $oColor->getRGB()); + + $this->assertIsSchemaOpenDocumentNotValid('1.2'); } public function testTableWithColspan() { - $value = rand(2, 100); + $value = mt_rand(2, 100); $oShape = $this->oPresentation->getActiveSlide()->createTableShape($value); $oRow = $oShape->createRow(); @@ -516,6 +559,8 @@ public function testTableWithColspan() $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/table:table/table:table-row/table:table-cell'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'table:number-columns-spanned', $value); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } /** @@ -534,6 +579,8 @@ public function testTableWithHyperlink() $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/table:table/table:table-row/table:table-cell/text:p/text:span/text:a'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeEquals('content.xml', $element, 'xlink:href', 'https://github.com/PHPOffice/PHPPresentation/'); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTableWithText() @@ -552,16 +599,19 @@ public function testTableWithText() $this->assertZipXmlElementEquals('content.xml', $element, 'Test'); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/table:table/table:table-row/table:table-cell/text:p/text:span/text:line-break'; $this->assertZipXmlElementExists('content.xml', $element); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTransition() { - $value = rand(1000, 5000); + $value = mt_rand(1000, 5000); $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'stylePage0\']/style:drawing-page-properties'; $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'presentation:duration'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oTransition = new Transition(); $oTransition->setTimeTrigger(true, $value); @@ -574,21 +624,25 @@ public function testTransition() $this->assertZipXmlAttributeEndsWith('content.xml', $element, 'presentation:duration', 'S'); $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:duration', number_format($value / 1000, 6, '.', '')); $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:transition-type', 'automatic'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oTransition->setSpeed(Transition::SPEED_FAST); $this->resetPresentationFile(); $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:transition-speed', 'fast'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oTransition->setSpeed(Transition::SPEED_MEDIUM); $this->resetPresentationFile(); $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:transition-speed', 'medium'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oTransition->setSpeed(Transition::SPEED_SLOW); $this->resetPresentationFile(); $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:transition-speed', 'slow'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $rcTransition = new \ReflectionClass('PhpOffice\PhpPresentation\Slide\Transition'); $arrayConstants = $rcTransition->getConstants(); @@ -745,12 +799,14 @@ public function testTransition() $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:transition-style', 'none'); break; } + $this->assertIsSchemaOpenDocumentValid('1.2'); } $oTransition->setTimeTrigger(false); $oTransition->setManualTrigger(true); $this->resetPresentationFile(); $this->assertZipXmlAttributeContains('content.xml', $element, 'presentation:transition-type', 'manual'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testVisibility() @@ -759,6 +815,7 @@ public function testVisibility() $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeNotExists('content.xml', $element, 'presentation:visibility'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oSlide = $this->oPresentation->getActiveSlide(); $oSlide->setIsVisible(false); @@ -767,5 +824,6 @@ public function testVisibility() $this->assertZipXmlElementExists('content.xml', $element); $this->assertZipXmlAttributeExists('content.xml', $element, 'presentation:visibility'); $this->assertZipXmlAttributeEquals('content.xml', $element, 'presentation:visibility', 'hidden'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } } diff --git a/tests/PhpPresentation/Tests/Writer/ODPresentation/MetaInfManifestTest.php b/tests/PhpPresentation/Tests/Writer/ODPresentation/MetaInfManifestTest.php index 99e0de277..671d8027b 100644 --- a/tests/PhpPresentation/Tests/Writer/ODPresentation/MetaInfManifestTest.php +++ b/tests/PhpPresentation/Tests/Writer/ODPresentation/MetaInfManifestTest.php @@ -26,6 +26,7 @@ public function testDrawing() $this->assertZipXmlElementExists('META-INF/manifest.xml', $element); $this->assertZipXmlAttributeStartsWith('META-INF/manifest.xml', $element, 'manifest:full-path', 'Pictures/PhpPresentationLogo'); $this->assertZipXmlAttributeEndsWith('META-INF/manifest.xml', $element, 'manifest:full-path', '.png'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } /** @@ -55,6 +56,7 @@ public function testMemoryDrawing() $element = '/manifest:manifest/manifest:file-entry[5]'; $this->assertZipXmlElementExists('META-INF/manifest.xml', $element); $this->assertZipXmlAttributeEquals('META-INF/manifest.xml', $element, 'manifest:full-path', 'Pictures/' . $oShape->getIndexedFilename()); + $this->assertIsSchemaOpenDocumentValid('1.2'); } /** @@ -71,6 +73,7 @@ public function testDrawingZip() $element = '/manifest:manifest/manifest:file-entry[5]'; $this->assertZipXmlElementExists('META-INF/manifest.xml', $element); $this->assertZipXmlAttributeEquals('META-INF/manifest.xml', $element, 'manifest:full-path', 'Pictures/' . $oShape->getIndexedFilename()); + $this->assertIsSchemaOpenDocumentValid('1.2'); } /** @@ -99,6 +102,7 @@ public function testDrawingBase64() $element = '/manifest:manifest/manifest:file-entry[5]'; $this->assertZipXmlElementExists('META-INF/manifest.xml', $element); $this->assertZipXmlAttributeEquals('META-INF/manifest.xml', $element, 'manifest:full-path', 'Pictures/' . $oShape->getIndexedFilename()); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testSlideBackground() @@ -110,5 +114,6 @@ public function testSlideBackground() $element = '/manifest:manifest/manifest:file-entry[5]'; $this->assertZipXmlElementExists('META-INF/manifest.xml', $element); $this->assertZipXmlAttributeEquals('META-INF/manifest.xml', $element, 'manifest:full-path', 'Pictures/' . str_replace(' ', '_', $oBkgImage->getIndexedFilename(0))); + $this->assertIsSchemaOpenDocumentValid('1.2'); } } diff --git a/tests/PhpPresentation/Tests/Writer/ODPresentation/ObjectsChartTest.php b/tests/PhpPresentation/Tests/Writer/ODPresentation/ObjectsChartTest.php index 877c731cc..f9c329851 100644 --- a/tests/PhpPresentation/Tests/Writer/ODPresentation/ObjectsChartTest.php +++ b/tests/PhpPresentation/Tests/Writer/ODPresentation/ObjectsChartTest.php @@ -19,7 +19,6 @@ use PhpOffice\PhpPresentation\Style\Fill; use PhpOffice\PhpPresentation\Style\Outline; use PhpOffice\PhpPresentation\Tests\PhpPresentationTestCase; -use PhpOffice\PhpPresentation\Writer\ODPresentation; /** * Test class for PhpOffice\PhpPresentation\Writer\ODPresentation\Manifest @@ -74,6 +73,9 @@ public function testAxisFont() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'fo:font-style', 'normal'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'fo:font-size', '16pt'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'fo:font-family', 'Arial'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testLegend() @@ -99,6 +101,8 @@ public function testLegend() $this->assertZipXmlElementExists('Object 1/content.xml', $element); $element = '/office:document-content/office:body/office:chart/chart:chart/table:table/table:table-header-rows/table:table-row/table:table-cell[@office:value-type=\'string\']'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oChart->getLegend()->setPosition(Legend::POSITION_RIGHT); $this->resetPresentationFile(); @@ -106,6 +110,8 @@ public function testLegend() $element = '/office:document-content/office:body/office:chart/chart:chart/chart:legend'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:legend-position', 'end'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oChart->getLegend()->setPosition(Legend::POSITION_LEFT); $this->resetPresentationFile(); @@ -113,6 +119,8 @@ public function testLegend() $element = '/office:document-content/office:body/office:chart/chart:chart/chart:legend'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:legend-position', 'start'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oChart->getLegend()->setPosition(Legend::POSITION_BOTTOM); $this->resetPresentationFile(); @@ -120,6 +128,8 @@ public function testLegend() $element = '/office:document-content/office:body/office:chart/chart:chart/chart:legend'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:legend-position', 'bottom'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oChart->getLegend()->setPosition(Legend::POSITION_TOP); $this->resetPresentationFile(); @@ -127,6 +137,8 @@ public function testLegend() $element = '/office:document-content/office:body/office:chart/chart:chart/chart:legend'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:legend-position', 'top'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oChart->getLegend()->setPosition(Legend::POSITION_TOPRIGHT); $this->resetPresentationFile(); @@ -134,6 +146,8 @@ public function testLegend() $element = '/office:document-content/office:body/office:chart/chart:chart/chart:legend'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:legend-position', 'top-end'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testSeries() @@ -151,6 +165,8 @@ public function testSeries() $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-number'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'value'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oSeries->setShowValue(false); $this->resetPresentationFile(); @@ -159,6 +175,8 @@ public function testSeries() $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-number'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); // $showCategoryName = false / $showPercentage = true / $showValue = true $oSeries->setShowValue(true); @@ -169,6 +187,8 @@ public function testSeries() $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-number'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'value-and-percentage'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); // $showCategoryName = false / $showPercentage = true / $showValue = false $oSeries->setShowValue(false); @@ -178,6 +198,8 @@ public function testSeries() $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-number'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'percentage'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); // $showCategoryName = false / $showPercentage = true / $showValue = false $oSeries->setShowCategoryName(true); @@ -186,6 +208,8 @@ public function testSeries() $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-text'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-text', 'true'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTitleVisibility() @@ -202,10 +226,15 @@ public function testTitleVisibility() $this->assertZipXmlElementExists('Object 1/content.xml', $elementTitle); $this->assertZipXmlElementExists('Object 1/content.xml', $elementStyle); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $this->assertInstanceOf('PhpOffice\PhpPresentation\Shape\Chart\Title', $oShape->getTitle()->setVisible(false)); $this->resetPresentationFile(); $this->assertZipXmlElementNotExists('Object 1/content.xml', $elementTitle); $this->assertZipXmlElementNotExists('Object 1/content.xml', $elementStyle); + + // chart:title : Element chart failed to validate attributes $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeArea() @@ -223,18 +252,20 @@ public function testTypeArea() $element = '/office:document-content/office:body/office:chart/chart:chart/chart:plot-area/chart:series'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); - $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:class', 'chart:area'); $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\']/style:graphic-properties'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'draw:fill'); $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'draw:fill-color'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'draw:fill-color', '#93A9CE'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeAxisBounds() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $oSeries = new Series('Downloads', array('A' => 1, 'B' => 2, 'C' => 4, 'D' => 3, 'E' => 2)); $oSeries->getFill()->setStartColor(new Color('FFAABBCC')); @@ -248,6 +279,9 @@ public function testTypeAxisBounds() $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:minimum'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:maximum'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oShape->getPlotArea()->getAxisX()->setMinBounds($value); $this->resetPresentationFile(); @@ -255,6 +289,9 @@ public function testTypeAxisBounds() $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:minimum'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:minimum', $value); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oShape->getPlotArea()->getAxisX()->setMinBounds(null); $oShape->getPlotArea()->getAxisX()->setMaxBounds($value); $this->resetPresentationFile(); @@ -263,6 +300,9 @@ public function testTypeAxisBounds() $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:maximum'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:maximum', $value); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oShape->getPlotArea()->getAxisX()->setMinBounds($value); $oShape->getPlotArea()->getAxisX()->setMaxBounds($value); $this->resetPresentationFile(); @@ -271,6 +311,9 @@ public function testTypeAxisBounds() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:minimum', $value); $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:maximum'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:maximum', $value); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeBar() @@ -301,6 +344,9 @@ public function testTypeBar() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:overlap', '0'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:percentage'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'value'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeBarGroupingStacked() @@ -317,6 +363,9 @@ public function testTypeBarGroupingStacked() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:overlap', '100'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:percentage'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'value'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeBarGroupingPercentStacked() @@ -333,6 +382,9 @@ public function testTypeBarGroupingPercentStacked() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:overlap', '100'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:percentage', 'true'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'percentage'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeBarHorizontal() @@ -357,6 +409,9 @@ public function testTypeBarHorizontal() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:vertical', 'true'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:three-dimensional'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:right-angled-axes'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeBar3D() @@ -385,6 +440,9 @@ public function testTypeBar3D() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:three-dimensional', 'true'); $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:right-angled-axes'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:right-angled-axes', 'true'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeBar3DHorizontal() @@ -411,12 +469,15 @@ public function testTypeBar3DHorizontal() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:three-dimensional', 'true'); $this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:right-angled-axes'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:right-angled-axes', 'true'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeDoughnut() { - // $randHoleSize = rand(10, 90); - $randSeparator = chr(rand(ord('A'), ord('Z'))); + // $randHoleSize = mt_rand(10, 90); + $randSeparator = chr(mt_rand(ord('A'), ord('Z'))); $oSlide = $this->oPresentation->getActiveSlide(); $oShape = $oSlide->createChartShape(); @@ -436,6 +497,8 @@ public function testTypeDoughnut() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:class', 'chart:ring'); $element = '/office:document-content/office:automatic-styles/style:style/style:chart-properties/chart:label-separator/text:p'; $this->assertZipXmlElementNotExists('Object 1/content.xml', $element); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); // $oDoughnut->setHoleSize($randHoleSize); // $this->resetPresentationFile(); @@ -446,8 +509,10 @@ public function testTypeDoughnut() $element = '/office:document-content/office:automatic-styles/style:style/style:chart-properties/chart:label-separator/text:p'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlElementEquals('Object 1/content.xml', $element, $randSeparator); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } - + public function testTypeLine() { $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); @@ -471,7 +536,6 @@ public function testTypeLine() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'svg:stroke-width', '0.026cm'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'svg:stroke-color', '#878787'); - $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleAxisY\']/style:chart-properties'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:tick-marks-major-inner', 'false'); @@ -481,6 +545,9 @@ public function testTypeLine() $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'svg:stroke-width', '0.026cm'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'svg:stroke-color', '#878787'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeLineGridlines() @@ -521,7 +588,7 @@ public function testTypeLineGridlines() $this->resetPresentationFile(); $this->oPresentation->removeSlideByIndex(0)->createSlide(); - $expectedSizePts = rand(1, 100); + $expectedSizePts = mt_rand(1, 100); $expectedSizeCm = number_format(CommonDrawing::pointsToCentimeters($expectedSizePts), 2, '.', '').'cm'; $expectedElementGrid = '/office:document-content/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension=\''.$arrayTest['dimension'].'\']/chart:grid'; $expectedElementStyle = '/office:document-content/office:automatic-styles/style:style[@style:name=\''.$arrayTest['styleName'].'\']/style:graphic-properties'; @@ -553,6 +620,9 @@ public function testTypeLineGridlines() $this->assertZipXmlAttributeEndsWith('Object 1/content.xml', $expectedElementStyle, 'svg:stroke-width', 'cm'); $this->assertZipXmlAttributeStartsWith('Object 1/content.xml', $expectedElementStyle, 'svg:stroke-color', '#'); $this->assertZipXmlAttributeEndsWith('Object 1/content.xml', $expectedElementStyle, 'svg:stroke-color', $expectedColor->getRGB()); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } } @@ -565,7 +635,7 @@ public function testTypeLineMarker() $expectedSymbol5 = Marker::SYMBOL_NONE; $expectedElement = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\'][@style:family=\'chart\']/style:chart-properties'; - $expectedSize = rand(1, 100); + $expectedSize = mt_rand(1, 100); $expectedSizeCm = number_format(CommonDrawing::pointsToCentimeters($expectedSize), 2, '.', '').'cm'; $oShape = $this->oPresentation->getActiveSlide()->createChartShape(); @@ -587,24 +657,36 @@ public function testTypeLineMarker() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-width', $expectedSizeCm); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-height', $expectedSizeCm); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol2); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-name', 'horizontal-bar'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol3); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-name', 'circle'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol4); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-name', 'arrow-up'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol5); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -612,11 +694,14 @@ public function testTypeLineMarker() $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $expectedElement, 'chart:symbol-name'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $expectedElement, 'chart:symbol-width'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $expectedElement, 'chart:symbol-height'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeLineSeriesOutline() { - $expectedWidth = rand(1, 100); + $expectedWidth = mt_rand(1, 100); $expectedWidthCm = number_format(CommonDrawing::pointsToCentimeters($expectedWidth), 3, '.', '').'cm'; $expectedElement = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\'][@style:family=\'chart\']/style:graphic-properties'; @@ -646,6 +731,8 @@ public function testTypeLineSeriesOutline() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-width', '0.079cm'); $this->assertZipXmlAttributeExists('Object 1/content.xml', $expectedElement, 'svg:stroke-color'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-color', '#4a7ebb'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oSeries->setOutline($oOutline); $oLine->setSeries(array($oSeries)); @@ -657,6 +744,8 @@ public function testTypeLineSeriesOutline() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-width', $expectedWidthCm); $this->assertZipXmlAttributeExists('Object 1/content.xml', $expectedElement, 'svg:stroke-color'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-color', '#' . $oColor->getRGB()); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypePie() @@ -685,6 +774,9 @@ public function testTypePie() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleAxisY\']/style:chart-properties'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:reverse-direction', 'true'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypePie3D() @@ -713,11 +805,14 @@ public function testTypePie3D() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleAxisY\']/style:chart-properties'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:reverse-direction', 'true'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypePie3DExplosion() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); $oSeries->setShowSeriesName(true); @@ -730,6 +825,8 @@ public function testTypePie3DExplosion() $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\'][@style:family=\'chart\']/style:chart-properties'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:pie-offset', $value); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeScatter() @@ -744,6 +841,8 @@ public function testTypeScatter() $element = '/office:document-content/office:body/office:chart/chart:chart'; $this->assertZipXmlElementExists('Object 1/content.xml', $element); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:class', 'chart:scatter'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeScatterMarker() @@ -754,7 +853,7 @@ public function testTypeScatterMarker() $expectedSymbol4 = Marker::SYMBOL_TRIANGLE; $expectedSymbol5 = Marker::SYMBOL_NONE; $expectedElement = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\'][@style:family=\'chart\']/style:chart-properties'; - $expectedSize = rand(1, 100); + $expectedSize = mt_rand(1, 100); $expectedSizeCm = number_format(CommonDrawing::pointsToCentimeters($expectedSize), 2, '.', '').'cm'; $oShape = $this->oPresentation->getActiveSlide()->createChartShape(); @@ -776,24 +875,36 @@ public function testTypeScatterMarker() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-width', $expectedSizeCm); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-height', $expectedSizeCm); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol2); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-name', 'horizontal-bar'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol3); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-name', 'circle'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol4); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'chart:symbol-name', 'arrow-up'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); + $oSeries->getMarker()->setSymbol($expectedSymbol5); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -801,11 +912,14 @@ public function testTypeScatterMarker() $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $expectedElement, 'chart:symbol-name'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $expectedElement, 'chart:symbol-width'); $this->assertZipXmlAttributeNotExists('Object 1/content.xml', $expectedElement, 'chart:symbol-height'); + + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testTypeScatterSeriesOutline() { - $expectedWidth = rand(1, 100); + $expectedWidth = mt_rand(1, 100); $expectedWidthCm = number_format(CommonDrawing::pointsToCentimeters($expectedWidth), 3, '.', '').'cm'; $expectedElement = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\'][@style:family=\'chart\']/style:graphic-properties'; @@ -834,6 +948,8 @@ public function testTypeScatterSeriesOutline() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-width', '0.079cm'); $this->assertZipXmlAttributeExists('Object 1/content.xml', $expectedElement, 'svg:stroke-color'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-color', '#4a7ebb'); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); $oSeries->setOutline($oOutline); $oScatter->setSeries(array($oSeries)); @@ -845,5 +961,7 @@ public function testTypeScatterSeriesOutline() $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-width', $expectedWidthCm); $this->assertZipXmlAttributeExists('Object 1/content.xml', $expectedElement, 'svg:stroke-color'); $this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-color', '#' . $oColor->getRGB()); + // chart:title : Element chart failed to validate attributes + $this->assertIsSchemaOpenDocumentValid('1.2'); } } diff --git a/tests/PhpPresentation/Tests/Writer/ODPresentation/StylesTest.php b/tests/PhpPresentation/Tests/Writer/ODPresentation/StylesTest.php index 1d013fef5..4846c75b6 100644 --- a/tests/PhpPresentation/Tests/Writer/ODPresentation/StylesTest.php +++ b/tests/PhpPresentation/Tests/Writer/ODPresentation/StylesTest.php @@ -28,6 +28,7 @@ public function testDocumentLayout() $this->assertZipXmlElementExists('styles.xml', $element); $this->assertZipXmlAttributeEquals('styles.xml', $element, 'style:print-orientation', 'landscape'); + $this->assertIsSchemaOpenDocumentValid('1.2'); $oDocumentLayout->setDocumentLayout(DocumentLayout::LAYOUT_A4, false); $this->oPresentation->setLayout($oDocumentLayout); @@ -35,6 +36,7 @@ public function testDocumentLayout() $this->assertZipXmlElementExists('styles.xml', $element); $this->assertZipXmlAttributeEquals('styles.xml', $element, 'style:print-orientation', 'portrait'); + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testCustomDocumentLayout() @@ -50,6 +52,8 @@ public function testCustomDocumentLayout() $element = "/office:document-styles/office:master-styles/style:master-page"; $this->assertZipXmlElementExists('styles.xml', $element); $this->assertZipXmlAttributeEquals('styles.xml', $element, 'style:page-layout-name', 'sPL0'); + + $this->assertIsSchemaOpenDocumentValid('1.2'); } public function testGradientTable() @@ -62,6 +66,8 @@ public function testGradientTable() $element = "/office:document-styles/office:styles/draw:gradient"; $this->assertZipXmlAttributeEquals('styles.xml', $element, 'draw:name', 'gradient_' . $oCell->getFill()->getHashCode()); + + $this->assertIsSchemaOpenDocumentNotValid('1.2'); } public function testStrokeDash() @@ -113,6 +119,7 @@ public function testStrokeDash() $this->assertZipXmlAttributeExists('styles.xml', $element, 'draw:dots2-length'); break; } + $this->assertIsSchemaOpenDocumentValid('1.2'); $this->resetPresentationFile(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/CommentAuthorsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/CommentAuthorsTest.php index 453f0a97a..23ed3a402 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/CommentAuthorsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/CommentAuthorsTest.php @@ -27,11 +27,13 @@ public function testComments() $this->assertZipXmlAttributeEquals('ppt/commentAuthors.xml', $expectedElement, 'id', 0); $this->assertZipXmlAttributeEquals('ppt/commentAuthors.xml', $expectedElement, 'name', $expectedName); $this->assertZipXmlAttributeEquals('ppt/commentAuthors.xml', $expectedElement, 'initials', $expectedInitials); + $this->assertIsSchemaECMA376Valid(); } public function testWithoutComment() { $this->assertZipFileNotExists('ppt/commentAuthors.xml'); + $this->assertIsSchemaECMA376Valid(); } public function testWithoutCommentAuthor() @@ -40,6 +42,7 @@ public function testWithoutCommentAuthor() $this->oPresentation->getActiveSlide()->addShape($oComment); $this->assertZipFileNotExists('ppt/commentAuthors.xml'); + $this->assertIsSchemaECMA376Valid(); } public function testWithSameAuthor() @@ -58,5 +61,6 @@ public function testWithSameAuthor() $this->assertZipFileExists('ppt/commentAuthors.xml'); $this->assertZipXmlElementExists('ppt/commentAuthors.xml', $expectedElement); $this->assertZipXmlElementCount('ppt/commentAuthors.xml', $expectedElement, 1); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsAppTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsAppTest.php index e8019c551..03683ac2e 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsAppTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsAppTest.php @@ -17,6 +17,7 @@ class DocPropsAppTest extends PhpPresentationTestCase public function testRender() { $this->assertZipFileExists('docProps/app.xml'); + $this->assertIsSchemaECMA376Valid(); } public function testCompany() @@ -28,5 +29,6 @@ public function testCompany() $this->assertZipFileExists('docProps/app.xml'); $this->assertZipXmlElementExists('docProps/app.xml', '/Properties/Company'); $this->assertZipXmlElementEquals('docProps/app.xml', '/Properties/Company', $expected); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCoreTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCoreTest.php index 2c3fb6112..7fa204115 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCoreTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCoreTest.php @@ -12,6 +12,7 @@ public function testRender() { $this->assertZipFileExists('docProps/core.xml'); $this->assertZipXmlElementNotExists('docProps/core.xml', '/cp:coreProperties/cp:contentStatus'); + $this->assertIsSchemaECMA376Valid(); } public function testDocumentProperties() @@ -39,6 +40,7 @@ public function testDocumentProperties() $this->assertZipXmlElementEquals('docProps/core.xml', '/cp:coreProperties/cp:keywords', $expected); $this->assertZipXmlElementExists('docProps/core.xml', '/cp:coreProperties/cp:category'); $this->assertZipXmlElementEquals('docProps/core.xml', '/cp:coreProperties/cp:category', $expected); + $this->assertIsSchemaECMA376Valid(); } public function testMarkAsFinalTrue() @@ -47,6 +49,7 @@ public function testMarkAsFinalTrue() $this->assertZipXmlElementExists('docProps/core.xml', '/cp:coreProperties/cp:contentStatus'); $this->assertZipXmlElementEquals('docProps/core.xml', '/cp:coreProperties/cp:contentStatus', 'Final'); + $this->assertIsSchemaECMA376Valid(); } public function testMarkAsFinalFalse() @@ -54,5 +57,6 @@ public function testMarkAsFinalFalse() $this->oPresentation->getPresentationProperties()->markAsFinal(false); $this->assertZipXmlElementNotExists('docProps/core.xml', '/cp:coreProperties/cp:contentStatus'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCustomTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCustomTest.php index 7e031f162..879e846ea 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCustomTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsCustomTest.php @@ -12,6 +12,7 @@ public function testRender() { $this->assertZipFileExists('docProps/custom.xml'); $this->assertZipXmlElementNotExists('docProps/custom.xml', '/Properties/property[@name="_MarkAsFinal"]'); + $this->assertIsSchemaECMA376Valid(); } public function testMarkAsFinalTrue() @@ -22,6 +23,7 @@ public function testMarkAsFinalTrue() $this->assertZipXmlElementExists('docProps/custom.xml', '/Properties/property'); $this->assertZipXmlElementExists('docProps/custom.xml', '/Properties/property[@pid="2"][@fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}"][@name="_MarkAsFinal"]'); $this->assertZipXmlElementExists('docProps/custom.xml', '/Properties/property[@pid="2"][@fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}"][@name="_MarkAsFinal"]/vt:bool'); + $this->assertIsSchemaECMA376Valid(); } public function testMarkAsFinalFalse() @@ -29,5 +31,6 @@ public function testMarkAsFinalFalse() $this->oPresentation->getPresentationProperties()->markAsFinal(false); $this->assertZipXmlElementNotExists('docProps/custom.xml', '/Properties/property[@name="_MarkAsFinal"]'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsThumbnailTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsThumbnailTest.php index aa4d46dbe..a19e2038d 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsThumbnailTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/DocPropsThumbnailTest.php @@ -15,6 +15,7 @@ class DocPropsThumbnailTest extends PhpPresentationTestCase public function testRender() { $this->assertZipFileNotExists('docProps/thumbnail.jpeg'); + $this->assertIsSchemaECMA376Valid(); } public function testFeatureThumbnail() @@ -23,5 +24,6 @@ public function testFeatureThumbnail() $this->oPresentation->getPresentationProperties()->setThumbnailPath($imagePath); $this->assertZipFileExists('docProps/thumbnail.jpeg'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php index 47d3ef57d..2ee2aaf68 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php @@ -71,6 +71,7 @@ public function testTitleVisibilityTrue() $this->assertTrue($oShape->getTitle()->isVisible()); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', '0'); + $this->assertIsSchemaECMA376Valid(); } public function testTitleVisibilityFalse() @@ -87,6 +88,7 @@ public function testTitleVisibilityFalse() $this->assertFalse($oShape->getTitle()->isVisible()); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', '1'); + $this->assertIsSchemaECMA376Valid(); } public function testAxisFont() @@ -126,6 +128,8 @@ public function testAxisFont() $this->assertZipXmlAttributeEquals($pathShape, $element, 'sz', 1600); $this->assertZipXmlAttributeEquals($pathShape, $element, 'strike', 'noStrike'); $this->assertZipXmlAttributeEquals($pathShape, $element, 'u', Font::UNDERLINE_DASH); + + $this->assertIsSchemaECMA376Valid(); } public function testAxisOutline() @@ -148,7 +152,6 @@ public function testAxisOutline() $oShape->getPlotArea()->getAxisY()->getOutline()->getFill()->setFillType(Fill::FILL_SOLID); $oShape->getPlotArea()->getAxisY()->getOutline()->getFill()->getStartColor()->setRGB($expectedColorY); - $element = '/c:chartSpace/c:chart/c:plotArea/c:catAx/c:spPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $element = '/c:chartSpace/c:chart/c:plotArea/c:catAx/c:spPr/a:ln'; @@ -165,6 +168,8 @@ public function testAxisOutline() $element = '/c:chartSpace/c:chart/c:plotArea/c:valAx/c:spPr/a:ln/a:solidFill/a:srgbClr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', $expectedColorY); + + $this->assertIsSchemaECMA376Valid(); } public function testAxisVisibilityFalse() @@ -181,6 +186,8 @@ public function testAxisVisibilityFalse() $this->assertFalse($oShape->getPlotArea()->getAxisX()->isVisible()); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', '1'); + + $this->assertIsSchemaECMA376Valid(); } public function testAxisVisibilityTrue() @@ -197,6 +204,8 @@ public function testAxisVisibilityTrue() $this->assertTrue($oShape->getPlotArea()->getAxisX()->isVisible()); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', '0'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeArea() @@ -216,11 +225,13 @@ public function testTypeArea() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $element = '/c:chartSpace/c:chart/c:plotArea/c:areaChart/c:ser'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeAxisBounds() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $oSeries = new Series('Downloads', $this->seriesData); $oSeries->getFill()->setStartColor(new Color('FFAABBCC')); @@ -235,6 +246,8 @@ public function testTypeAxisBounds() $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisX()->setMinBounds($value); $this->resetPresentationFile(); @@ -242,6 +255,8 @@ public function testTypeAxisBounds() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', $value); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisX()->setMinBounds(null); $oShape->getPlotArea()->getAxisX()->setMaxBounds($value); $this->resetPresentationFile(); @@ -250,6 +265,8 @@ public function testTypeAxisBounds() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax, 'val', $value); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisX()->setMinBounds($value); $oShape->getPlotArea()->getAxisX()->setMaxBounds($value); $this->resetPresentationFile(); @@ -258,6 +275,8 @@ public function testTypeAxisBounds() $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', $value); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax, 'val', $value); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeAxisTickMark() @@ -279,6 +298,8 @@ public function testTypeAxisTickMark() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', Axis::TICK_MARK_NONE); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisY()->setMinorTickMark($value); $this->resetPresentationFile(); @@ -287,6 +308,8 @@ public function testTypeAxisTickMark() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', $value); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisY()->setMinorTickMark(); $oShape->getPlotArea()->getAxisY()->setMajorTickMark($value); $this->resetPresentationFile(); @@ -296,6 +319,8 @@ public function testTypeAxisTickMark() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax, 'val', $value); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisY()->setMinorTickMark($value); $oShape->getPlotArea()->getAxisY()->setMajorTickMark($value); $this->resetPresentationFile(); @@ -304,11 +329,13 @@ public function testTypeAxisTickMark() $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', $value); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax, 'val', $value); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeAxisUnit() { - $value = rand(0, 100); + $value = mt_rand(0, 100); $oSeries = new Series('Downloads', $this->seriesData); $oSeries->getFill()->setStartColor(new Color('FFAABBCC')); @@ -323,6 +350,8 @@ public function testTypeAxisUnit() $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisY()->setMinorUnit($value); $this->resetPresentationFile(); @@ -330,6 +359,8 @@ public function testTypeAxisUnit() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', $value); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisY()->setMinorUnit(null); $oShape->getPlotArea()->getAxisY()->setMajorUnit($value); $this->resetPresentationFile(); @@ -338,6 +369,8 @@ public function testTypeAxisUnit() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax, 'val', $value); + $this->assertIsSchemaECMA376Valid(); + $oShape->getPlotArea()->getAxisY()->setMinorUnit($value); $oShape->getPlotArea()->getAxisY()->setMajorUnit($value); $this->resetPresentationFile(); @@ -346,11 +379,13 @@ public function testTypeAxisUnit() $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMin, 'val', $value); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $elementMax, 'val', $value); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeBar() { - $valueGapWidthPercent = rand(0, 500); + $valueGapWidthPercent = mt_rand(0, 500); $oSlide = $this->oPresentation->getActiveSlide(); $oShape = $oSlide->createChartShape(); $oShape->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); @@ -377,11 +412,13 @@ public function testTypeBar() $this->assertZipXmlElementEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, $oSeries->getTitle()); $element = '/c:chartSpace/c:chart/c:plotArea/c:barChart/c:gapWidth'; $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', $valueGapWidthPercent); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeBar3D() { - $valueGapWidthPercent = rand(0, 500); + $valueGapWidthPercent = mt_rand(0, 500); $oSlide = $this->oPresentation->getActiveSlide(); $oShape = $oSlide->createChartShape(); $oShape->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); @@ -408,6 +445,8 @@ public function testTypeBar3D() $this->assertZipXmlElementEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, $oSeries->getTitle()); $element = '/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:gapWidth'; $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', $valueGapWidthPercent); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeBar3DSubScript() @@ -423,7 +462,8 @@ public function testTypeBar3DSubScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-25000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-250000'); + $this->assertIsSchemaECMA376Valid(); } public function testTypeBar3DSuperScript() @@ -439,12 +479,13 @@ public function testTypeBar3DSuperScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '30000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '300000'); + $this->assertIsSchemaECMA376Valid(); } public function testTypeDoughnut() { - $randHoleSize = rand(10, 90); + $randHoleSize = mt_rand(10, 90); $randSeparator = chr(rand(ord('A'), ord('Z'))); $oSlide = $this->oPresentation->getActiveSlide(); @@ -511,6 +552,8 @@ public function testTypeBar3DBarDirection() $element = '/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:barDir'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', Bar3D::DIRECTION_HORIZONTAL); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeLine() @@ -531,6 +574,8 @@ public function testTypeLine() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $element = '/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:tx/c:v'; $this->assertZipXmlElementEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, $oSeries->getTitle()); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeLineGridlines() @@ -563,7 +608,7 @@ public function testTypeLineGridlines() ); $expectedColor = new Color(Color::COLOR_BLUE); foreach ($arrayTests as $arrayTest) { - $expectedSizePts = rand(1, 100); + $expectedSizePts = mt_rand(1, 100); $expectedSizeEmu = round(Drawing::pointsToPixels(Drawing::pixelsToEmu($expectedSizePts))); $this->oPresentation->removeSlideByIndex()->createSlide(); @@ -590,6 +635,8 @@ public function testTypeLineGridlines() $this->assertZipXmlAttributeExists('ppt/charts/' . $oShape->getIndexedFilename(), $arrayTest['expectedElementColor'], 'val'); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $arrayTest['expectedElementColor'], 'val', $expectedColor->getRGB()); + $this->assertIsSchemaECMA376Valid(); + $this->resetPresentationFile(); } } @@ -597,9 +644,10 @@ public function testTypeLineGridlines() public function testTypeLineMarker() { do { - $expectedSymbol = array_rand(Marker::$arraySymbol); + $expectedSymbolKey = array_rand(Marker::$arraySymbol); + $expectedSymbol = Marker::$arraySymbol[$expectedSymbolKey]; } while ($expectedSymbol == Marker::SYMBOL_NONE); - $expectedSize = rand(2, 72); + $expectedSize = mt_rand(2, 72); $expectedEltSymbol = '/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker/c:symbol'; $expectedElementSize = '/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker/c:size'; @@ -616,6 +664,8 @@ public function testTypeLineMarker() $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedEltSymbol, 'val', $expectedSymbol); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize, 'val', $expectedSize); + $this->assertIsSchemaECMA376Valid(); + $oSeries->getMarker()->setSize(1); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -623,6 +673,8 @@ public function testTypeLineMarker() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize, 'val', 2); + $this->assertIsSchemaECMA376Valid(); + $oSeries->getMarker()->setSize(73); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -630,17 +682,21 @@ public function testTypeLineMarker() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize, 'val', 72); + $this->assertIsSchemaECMA376Valid(); + $oSeries->getMarker()->setSymbol(Marker::SYMBOL_NONE); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedEltSymbol); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeLineSeriesOutline() { - $expectedWidth = rand(1, 100); + $expectedWidth = mt_rand(1, 100); $expectedWidthEmu = Drawing::pixelsToEmu(Drawing::pointsToPixels($expectedWidth)); $expectedElement = '/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:spPr/a:ln'; @@ -660,6 +716,8 @@ public function testTypeLineSeriesOutline() $this->assertZipFileExists('ppt/charts/' . $oShape->getIndexedFilename()); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement); + $this->assertIsSchemaECMA376Valid(); + $oSeries->setOutline($oOutline); $oLine->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -668,6 +726,8 @@ public function testTypeLineSeriesOutline() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement, 'w', $expectedWidthEmu); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement . '/a:solidFill'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeLineSubScript() @@ -683,7 +743,9 @@ public function testTypeLineSubScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-25000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-250000'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeLineSuperScript() @@ -699,7 +761,9 @@ public function testTypeLineSuperScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '30000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '300000'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypePie() @@ -731,34 +795,16 @@ public function testTypePie() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', 0); + $this->assertIsSchemaECMA376Valid(); + $oSeries->setShowLegendKey(true); $this->resetPresentationFile(); $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:showLegendKey'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', 1); - } - - public function testTypePieSeparator() - { - $value = ';'; - $oSlide = $this->oPresentation->getActiveSlide(); - $oShape = $oSlide->createChartShape(); - $oPie = new Pie(); - $oSeries = new Series('Downloads', $this->seriesData); - $oPie->addSeries($oSeries); - $oShape->getPlotArea()->setType($oPie); - - $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:separator'; - $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - - $oSeries->setSeparator($value); - $this->resetPresentationFile(); - - $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:separator'; - $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', $value); + $this->assertIsSchemaECMA376Valid(); } public function testTypePie3D() @@ -786,11 +832,13 @@ public function testTypePie3D() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $element = '/c:chartSpace/c:chart/c:plotArea/c:pie3DChart/c:ser/c:tx/c:v'; $this->assertZipXmlElementEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, $oSeries->getTitle()); + + $this->assertIsSchemaECMA376Valid(); } public function testTypePie3DExplosion() { - $value = rand(1, 100); + $value = mt_rand(1, 100); $oSlide = $this->oPresentation->getActiveSlide(); $oShape = $oSlide->createChartShape(); @@ -804,6 +852,8 @@ public function testTypePie3DExplosion() $element = '/c:chartSpace/c:chart/c:plotArea/c:pie3DChart/c:ser/c:explosion'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', $value); + + $this->assertIsSchemaECMA376Valid(); } public function testTypePie3DSubScript() @@ -819,7 +869,9 @@ public function testTypePie3DSubScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:pie3DChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-25000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-250000'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypePie3DSuperScript() @@ -835,7 +887,9 @@ public function testTypePie3DSuperScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:pie3DChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '30000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '300000'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeScatter() @@ -860,20 +914,25 @@ public function testTypeScatter() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', 0); + $this->assertIsSchemaECMA376Valid(); + $oSeries->setShowLegendKey(true); $this->resetPresentationFile(); $element = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:dLbls/c:showLegendKey'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', 1); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeScatterMarker() { do { $expectedSymbol = array_rand(Marker::$arraySymbol); + $expectedSymbol = Marker::$arraySymbol[$expectedSymbol]; } while ($expectedSymbol == Marker::SYMBOL_NONE); - $expectedSize = rand(2, 72); + $expectedSize = mt_rand(2, 72); $expectedEltSymbol = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:marker/c:symbol'; $expectedElementSize = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:marker/c:size'; @@ -890,6 +949,8 @@ public function testTypeScatterMarker() $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedEltSymbol, 'val', $expectedSymbol); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize, 'val', $expectedSize); + $this->assertIsSchemaECMA376Valid(); + $oSeries->getMarker()->setSize(1); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -897,6 +958,8 @@ public function testTypeScatterMarker() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize, 'val', 2); + $this->assertIsSchemaECMA376Valid(); + $oSeries->getMarker()->setSize(73); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -904,17 +967,44 @@ public function testTypeScatterMarker() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize, 'val', 72); + $this->assertIsSchemaECMA376Valid(); + $oSeries->getMarker()->setSymbol(Marker::SYMBOL_NONE); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedEltSymbol); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElementSize); + + $this->assertIsSchemaECMA376Valid(); + } + + public function testTypeScatterSeparator() + { + $expectedSeparator = ';'; + $expectedElement = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:dLbls/c:separator'; + + $oSlide = $this->oPresentation->getActiveSlide(); + $oShape = $oSlide->createChartShape(); + $oScatter = new Scatter(); + $oSeries = new Series('Downloads', $this->seriesData); + $oScatter->addSeries($oSeries); + $oShape->getPlotArea()->setType($oScatter); + + $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement); + $this->assertIsSchemaECMA376Valid(); + + $oSeries->setSeparator($expectedSeparator); + $this->resetPresentationFile(); + + $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement); + $this->assertZipXmlElementEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement, $expectedSeparator); + $this->assertIsSchemaECMA376Valid(); } public function testTypeScatterSeriesOutline() { - $expectedWidth = rand(1, 100); + $expectedWidth = mt_rand(1, 100); $expectedWidthEmu = Drawing::pixelsToEmu(Drawing::pointsToPixels($expectedWidth)); $expectedElement = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:spPr/a:ln'; @@ -936,6 +1026,8 @@ public function testTypeScatterSeriesOutline() $this->assertZipFileExists('ppt/charts/' . $oShape->getIndexedFilename()); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement); + $this->assertIsSchemaECMA376Valid(); + $oSeries->setOutline($oOutline); $oScatter->setSeries(array($oSeries)); $this->resetPresentationFile(); @@ -944,6 +1036,8 @@ public function testTypeScatterSeriesOutline() $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement, 'w', $expectedWidthEmu); $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $expectedElement . '/a:solidFill'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeScatterSubScript() @@ -959,7 +1053,9 @@ public function testTypeScatterSubScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-25000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '-250000'); + + $this->assertIsSchemaECMA376Valid(); } public function testTypeScatterSuperScript() @@ -975,7 +1071,9 @@ public function testTypeScatterSuperScript() $element = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); - $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '30000'); + $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'baseline', '300000'); + + $this->assertIsSchemaECMA376Valid(); } public function testView3D() @@ -989,10 +1087,12 @@ public function testView3D() $element = '/c:chartSpace/c:chart/c:view3D/c:hPercent'; $this->assertZipXmlElementExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); $this->assertZipXmlAttributeEquals('ppt/charts/' . $oShape->getIndexedFilename(), $element, 'val', '100'); + $this->assertIsSchemaECMA376Valid(); $oShape->getView3D()->setHeightPercent(null); $this->resetPresentationFile(); $this->assertZipXmlElementNotExists('ppt/charts/' . $oShape->getIndexedFilename(), $element); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptCommentsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptCommentsTest.php index 1d790770d..84a89f3fd 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptCommentsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptCommentsTest.php @@ -21,9 +21,11 @@ public function testComments() $this->assertZipFileExists('ppt/comments/comment1.xml'); $this->assertZipXmlElementExists('ppt/comments/comment1.xml', $expectedElement); $this->assertZipXmlAttributeEquals('ppt/comments/comment1.xml', $expectedElement, 'authorId', 0); + $this->assertIsSchemaECMA376Valid(); } public function testWithoutComment() { $this->assertZipFileNotExists('ppt/comments/comment1.xml'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptMediaTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptMediaTest.php index 52efb3a9a..de0e11e6e 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptMediaTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptMediaTest.php @@ -21,6 +21,7 @@ public function testDrawing() $oShape->setPath(PHPPRESENTATION_TESTS_BASE_DIR.'/resources/images/PhpPresentationLogo.png'); $this->assertZipFileExists('ppt/media/' . $oShape->getIndexedFilename()); + $this->assertIsSchemaECMA376Valid(); } /** @@ -47,6 +48,7 @@ public function testDrawingZip() $oSlide->addShape($oDrawing); $this->assertZipFileExists('ppt/media/' . $oDrawing->getIndexedFilename()); + $this->assertIsSchemaECMA376Valid(); } /** @@ -76,6 +78,7 @@ public function testDrawingBase64() $oSlide->addShape($oShape); $this->assertZipFileExists('ppt/media/' . $oShape->getIndexedFilename()); + $this->assertIsSchemaECMA376Valid(); } public function testMemoryDrawing() @@ -91,5 +94,6 @@ public function testMemoryDrawing() $oSlide->addShape($oShape); $this->assertZipFileExists('ppt/media/' . $oShape->getIndexedFilename()); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresPropsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresPropsTest.php index c482e101e..fcc07381d 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresPropsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresPropsTest.php @@ -14,6 +14,7 @@ public function testRender() $element = '/p:presentationPr/p:extLst/p:ext'; $this->assertZipXmlElementExists('ppt/presProps.xml', $element); $this->assertZipXmlAttributeEquals('ppt/presProps.xml', $element, 'uri', '{E76CE94A-603C-4142-B9EB-6D1370010A27}'); + $this->assertIsSchemaECMA376Valid(); } public function testLoopContinuously() @@ -21,6 +22,7 @@ public function testLoopContinuously() $this->assertZipFileExists('ppt/presProps.xml'); $element = '/p:presentationPr/p:showPr'; $this->assertZipXmlElementNotExists('ppt/presProps.xml', $element); + $this->assertIsSchemaECMA376Valid(); $this->oPresentation->getPresentationProperties()->setLoopContinuouslyUntilEsc(true); $this->resetPresentationFile(); @@ -30,5 +32,6 @@ public function testLoopContinuously() $this->assertZipXmlElementExists('ppt/presProps.xml', $element); $this->assertZipXmlAttributeExists('ppt/presProps.xml', $element, 'loop'); $this->assertZipXmlAttributeEquals('ppt/presProps.xml', $element, 'loop', 1); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresentationTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresentationTest.php index 1ca1e94e0..97496d202 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresentationTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptPresentationTest.php @@ -11,5 +11,6 @@ class PptPresentationTest extends PhpPresentationTestCase public function testRender() { $this->assertZipFileExists('ppt/presentation.xml'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlideMastersTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlideMastersTest.php index 2f0b08d7f..b27584a2a 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlideMastersTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlideMastersTest.php @@ -2,9 +2,10 @@ namespace PhpPresentation\Tests\Writer\PowerPoint2007; -use PhpOffice\PhpPresentation\Writer\PowerPoint2007\PptSlideMasters; -use PhpOffice\PhpPresentation\Slide\SlideLayout; use PhpOffice\PhpPresentation\Shape\Drawing\File as ShapeDrawingFile; +use PhpOffice\PhpPresentation\Slide\SlideLayout; +use PhpOffice\PhpPresentation\Slide\SlideMaster; +use PhpOffice\PhpPresentation\Writer\PowerPoint2007\PptSlideMasters; use PHPUnit\Framework\TestCase; /** @@ -17,6 +18,7 @@ class PptSlideMastersTest extends TestCase public function testWriteSlideMasterRelationships() { $writer = new PptSlideMasters(); + /** @var \PHPUnit_Framework_MockObject_MockObject|SlideMaster $slideMaster */ $slideMaster = $this->getMockBuilder('PhpOffice\\PhpPresentation\\Slide\\SlideMaster') ->setMethods(array('getAllSlideLayouts', 'getRelsIndex', 'getShapeCollection')) ->getMock(); diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlidesTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlidesTest.php index f42556910..e31731e41 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlidesTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptSlidesTest.php @@ -15,7 +15,6 @@ use PhpOffice\PhpPresentation\Slide\Transition; use PhpOffice\PhpPresentation\Style\Border; use PhpOffice\PhpPresentation\Tests\PhpPresentationTestCase; -use PhpOffice\PhpPresentation\Writer\PowerPoint2007; /** * Test class for PowerPoint2007 @@ -38,6 +37,7 @@ public function testAlignmentShapeAuto() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeNotExists('ppt/slides/slide1.xml', $element, 'anchor'); + $this->assertIsSchemaECMA376Valid(); } /** @@ -53,6 +53,7 @@ public function testAlignmentShapeBase() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeNotExists('ppt/slides/slide1.xml', $element, 'anchor'); + $this->assertIsSchemaECMA376Valid(); } /** @@ -68,6 +69,7 @@ public function testAlignmentShapeBottom() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'anchor', Alignment::VERTICAL_BOTTOM); + $this->assertIsSchemaECMA376Valid(); } /** @@ -83,6 +85,7 @@ public function testAlignmentShapeCenter() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'anchor', Alignment::VERTICAL_CENTER); + $this->assertIsSchemaECMA376Valid(); } /** @@ -98,6 +101,7 @@ public function testAlignmentShapeTop() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'anchor', Alignment::VERTICAL_TOP); + $this->assertIsSchemaECMA376Valid(); } public function testAnimation() @@ -116,6 +120,7 @@ public function testAnimation() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $element = '/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + $this->assertIsSchemaECMA376Valid(); } public function testCommentRelationship() @@ -125,6 +130,7 @@ public function testCommentRelationship() $element = '/Relationships/Relationship[@Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"]'; $this->assertZipXmlElementExists('ppt/slides/_rels/slide1.xml.rels', $element); + $this->assertIsSchemaECMA376Valid(); } public function testCommentInGroupRelationship() @@ -136,6 +142,7 @@ public function testCommentInGroupRelationship() $element = '/Relationships/Relationship[@Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"]'; $this->assertZipXmlElementExists('ppt/slides/_rels/slide1.xml.rels', $element); + $this->assertIsSchemaECMA376Valid(); } public function testDrawingWithHyperlink() @@ -148,6 +155,7 @@ public function testDrawingWithHyperlink() $element = '/p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:cNvPr/a:hlinkClick'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'r:id', 'rId3'); + $this->assertIsSchemaECMA376Valid(); } public function testDrawingShapeBorder() @@ -160,12 +168,13 @@ public function testDrawingShapeBorder() $element = '/p:sld/p:cSld/p:spTree/p:pic/p:spPr/a:ln'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'cmpd', Border::LINE_DOUBLE); + $this->assertIsSchemaECMA376Valid(); } public function testDrawingShapeFill() { $oColor = new Color(Color::COLOR_DARKRED); - $oColor->setAlpha(rand(0, 100)); + $oColor->setAlpha(mt_rand(0, 100)); $oSlide = $this->oPresentation->getActiveSlide(); $oShape = $oSlide->createDrawingShape(); $oShape->setPath(PHPPRESENTATION_TESTS_BASE_DIR . '/resources/images/PhpPresentationLogo.png'); @@ -177,8 +186,8 @@ public function testDrawingShapeFill() $element = '/p:sld/p:cSld/p:spTree/p:pic/p:spPr/a:solidFill/a:srgbClr/a:alpha'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); - $this->assertZipXmlAttributeStartsWith('ppt/slides/slide1.xml', $element, 'val', $oColor->getAlpha()); - $this->assertZipXmlAttributeEndsWith('ppt/slides/slide1.xml', $element, 'val', '%'); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', (string)($oColor->getAlpha() * 1000)); + $this->assertIsSchemaECMA376Valid(); } public function testDrawingShapeShadow() @@ -190,6 +199,7 @@ public function testDrawingShapeShadow() $element = '/p:sld/p:cSld/p:spTree/p:pic/p:spPr/a:effectLst/a:outerShdw'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + $this->assertIsSchemaECMA376Valid(); } public function testFillGradientLinearTable() @@ -206,12 +216,13 @@ public function testFillGradientLinearTable() $oFill = $oCell->getFill(); $oFill->setFillType(Fill::FILL_GRADIENT_LINEAR)->setStartColor(new Color('FF' . $expected1))->setEndColor(new Color('FF' . $expected2)); - $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="0%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="0"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected1); - $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="100%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="100000"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected2); + $this->assertIsSchemaECMA376Valid(); } /** @@ -228,12 +239,13 @@ public function testFillGradientLinearRichText() $oFill = $oShape->getFill(); $oFill->setFillType(Fill::FILL_GRADIENT_LINEAR)->setStartColor(new Color('FF' . $expected1))->setEndColor(new Color('FF' . $expected2)); - $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="0%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="0"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected1); - $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="100%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="100000"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected2); + $this->assertIsSchemaECMA376Valid(); } public function testFillGradientPathTable() @@ -250,12 +262,13 @@ public function testFillGradientPathTable() $oFill = $oCell->getFill(); $oFill->setFillType(Fill::FILL_GRADIENT_PATH)->setStartColor(new Color('FF' . $expected1))->setEndColor(new Color('FF' . $expected2)); - $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="0%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="0"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected1); - $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="100%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:gradFill/a:gsLst/a:gs[@pos="100000"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected2); + $this->assertIsSchemaECMA376Valid(); } /** @@ -272,12 +285,13 @@ public function testFillGradientPathText() $oFill = $oShape->getFill(); $oFill->setFillType(Fill::FILL_GRADIENT_PATH)->setStartColor(new Color('FF' . $expected1))->setEndColor(new Color('FF' . $expected2)); - $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="0%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="0"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected1); - $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="100%"]/a:srgbClr'; + $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill/a:gsLst/a:gs[@pos="100000"]/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected2); + $this->assertIsSchemaECMA376Valid(); } public function testFillPatternTable() @@ -300,6 +314,7 @@ public function testFillPatternTable() $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:pattFill/a:bgClr/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected2); + $this->assertIsSchemaECMA376Valid(); } public function testFillSolidTable() @@ -318,6 +333,7 @@ public function testFillSolidTable() $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:tcPr/a:solidFill/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected); + $this->assertIsSchemaECMA376Valid(); } /** @@ -336,6 +352,7 @@ public function testFillSolidText() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:solidFill/a:srgbClr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expected); + $this->assertIsSchemaECMA376Valid(); } public function testHyperlink() @@ -347,6 +364,7 @@ public function testHyperlink() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:hlinkClick'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + $this->assertIsSchemaECMA376Valid(); } public function testHyperlinkInternal() @@ -359,6 +377,7 @@ public function testHyperlinkInternal() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:hlinkClick'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'action', 'ppaction://hlinksldjump'); + $this->assertIsSchemaECMA376Valid(); } public function testListBullet() @@ -371,7 +390,7 @@ public function testListBullet() $oExpectedFont = $oRichText->getActiveParagraph()->getBulletStyle()->getBulletFont(); $oExpectedChar = $oRichText->getActiveParagraph()->getBulletStyle()->getBulletChar(); $oExpectedColor = $oRichText->getActiveParagraph()->getBulletStyle()->getBulletColor()->getRGB(); - $oExpectedAlpha = $oRichText->getActiveParagraph()->getBulletStyle()->getBulletColor()->getAlpha() . "%"; + $oExpectedAlpha = $oRichText->getActiveParagraph()->getBulletStyle()->getBulletColor()->getAlpha() * 1000; $oRichText->createTextRun('Alpha'); $oRichText->createParagraph()->createTextRun('Beta'); @@ -388,6 +407,7 @@ public function testListBullet() $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element . '/a:buClr/a:srgbClr', 'val', $oExpectedColor); $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/a:buClr/a:srgbClr/a:alpha'); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element . '/a:buClr/a:srgbClr/a:alpha', 'val', $oExpectedAlpha); + $this->assertIsSchemaECMA376Valid(); } public function testListNumeric() @@ -411,6 +431,7 @@ public function testListNumeric() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/a:buAutoNum'); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element . '/a:buAutoNum', 'type', $oExpectedChar); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element . '/a:buAutoNum', 'startAt', $oExpectedStart); + $this->assertIsSchemaECMA376Valid(); } public function testLine() @@ -436,15 +457,17 @@ public function testLine() $element = '/p:sld/p:cSld/p:spTree/p:cxnSp/p:spPr/a:xfrm[@flipV="1"]/a:off[@x="' . $valEmu10 . '"][@y="' . $valEmu10 . '"]'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + + $this->assertIsSchemaECMA376Valid(); } public function testMedia() { $expectedName = 'MyName'; - $expectedWidth = rand(1, 100); - $expectedHeight = rand(1, 100); - $expectedX = rand(1, 100); - $expectedY = rand(1, 100); + $expectedWidth = mt_rand(1, 100); + $expectedHeight = mt_rand(1, 100); + $expectedX = mt_rand(1, 100); + $expectedY = mt_rand(1, 100); $oMedia = new Media(); $oMedia->setPath(PHPPRESENTATION_TESTS_BASE_DIR . '/resources/videos/sintel_trailer-480p.ogv') @@ -467,6 +490,8 @@ public function testMedia() $element = '/p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/p:extLst/p:ext'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'uri', '{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}'); + + $this->assertIsSchemaECMA376Valid(); } public function testNote() @@ -514,19 +539,25 @@ public function testNote() $this->assertZipXmlAttributeEquals('ppt/notesSlides/notesSlide1.xml', $element, 'cy', 3600450); $element = '/p:notes/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:t'; $this->assertZipXmlElementExists('ppt/notesSlides/notesSlide1.xml', $element); + + $this->assertIsSchemaECMA376Valid(); } public function testRichTextAutoFitNormal() { + $expectedFontScale = 47.5; + $expectedLnSpcReduction = 20; + $oSlide = $this->oPresentation->getActiveSlide(); $oRichText = $oSlide->createRichTextShape(); - $oRichText->setAutoFit(RichText::AUTOFIT_NORMAL, 47.5, 20); + $oRichText->setAutoFit(RichText::AUTOFIT_NORMAL, $expectedFontScale, $expectedLnSpcReduction); $oRichText->createTextRun('This is my text for the test.'); $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr/a:normAutofit'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); - $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'fontScale', 47500); - $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'lnSpcReduction', 20000); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'fontScale', $expectedFontScale * 1000); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'lnSpcReduction', $expectedLnSpcReduction * 1000); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextBreak() @@ -537,6 +568,7 @@ public function testRichTextBreak() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:br'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextHyperlink() @@ -547,11 +579,12 @@ public function testRichTextHyperlink() $element = '/p:sld/p:cSld/p:spTree/p:sp//a:hlinkClick'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextLineSpacing() { - $expectedLineSpacing = rand(1, 100); + $expectedLineSpacing = mt_rand(1, 100); $oSlide = $this->oPresentation->getActiveSlide(); $oRichText = $oSlide->createRichTextShape(); @@ -560,7 +593,8 @@ public function testRichTextLineSpacing() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:pPr/a:lnSpc/a:spcPct'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); - $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expectedLineSpacing . '%'); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'val', $expectedLineSpacing * 1000); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextRunLanguage() @@ -573,6 +607,7 @@ public function testRichTextRunLanguage() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $expectedElement); $this->assertZipXmlAttributeExists('ppt/slides/slide1.xml', $expectedElement, 'lang'); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $expectedElement, 'lang', 'en-US'); + $this->assertIsSchemaECMA376Valid(); $oRun->setLanguage('de_DE'); $this->resetPresentationFile(); @@ -581,6 +616,7 @@ public function testRichTextRunLanguage() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $expectedElement); $this->assertZipXmlAttributeExists('ppt/slides/slide1.xml', $expectedElement, 'lang'); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $expectedElement, 'lang', 'de_DE'); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextShadow() @@ -592,6 +628,7 @@ public function testRichTextShadow() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:effectLst/a:outerShdw'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextUpright() @@ -604,6 +641,7 @@ public function testRichTextUpright() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'upright', '1'); + $this->assertIsSchemaECMA376Valid(); } public function testRichTextVertical() @@ -616,11 +654,13 @@ public function testRichTextVertical() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'vert', 'vert'); + $this->assertIsSchemaECMA376Valid(); } public function testSlideLayoutExists() { $this->assertZipFileExists('ppt/slideLayouts/slideLayout1.xml'); + $this->assertIsSchemaECMA376Valid(); } public function testStyleCharacterSpacing() @@ -634,12 +674,14 @@ public function testStyleCharacterSpacing() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'spc', '0'); + $this->assertIsSchemaECMA376Valid(); $oRun->getFont()->setCharacterSpacing(42); $this->resetPresentationFile(); $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'spc', '4200'); + $this->assertIsSchemaECMA376Valid(); } public function testStyleSubScript() @@ -651,7 +693,8 @@ public function testStyleSubScript() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); - $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'baseline', '-25000'); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'baseline', '-250000'); + $this->assertIsSchemaECMA376Valid(); } public function testStyleSuperScript() @@ -663,7 +706,8 @@ public function testStyleSuperScript() $element = '/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); - $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'baseline', '30000'); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'baseline', '300000'); + $this->assertIsSchemaECMA376Valid(); } public function testTableWithAlignment() @@ -679,6 +723,7 @@ public function testTableWithAlignment() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeNotExists('ppt/slides/slide1.xml', $element, 'anchor'); $this->assertZipXmlAttributeNotExists('ppt/slides/slide1.xml', $element, 'vert'); + $this->assertIsSchemaECMA376Valid(); $oCell->getActiveParagraph()->getAlignment()->setVertical(Alignment::VERTICAL_BOTTOM); $oCell->getActiveParagraph()->getAlignment()->setTextDirection(Alignment::TEXT_DIRECTION_STACKED); @@ -687,6 +732,7 @@ public function testTableWithAlignment() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'anchor', Alignment::VERTICAL_BOTTOM); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'vert', Alignment::TEXT_DIRECTION_STACKED); + $this->assertIsSchemaECMA376Valid(); } public function testTableWithBorder() @@ -725,6 +771,7 @@ public function testTableWithBorder() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/a:lnT[@cmpd="' . Border::LINE_SINGLE . '"]/a:prstDash[@val="' . Border::DASH_DASHDOT . '"]'); $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/a:lnB[@cmpd="' . Border::LINE_SINGLE . '"]'); $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/a:lnB[@cmpd="' . Border::LINE_SINGLE . '"]/a:prstDash[@val="' . Border::DASH_SOLID . '"]'); + $this->assertIsSchemaECMA376Valid(); } public function testTableWithCellMargin() @@ -747,6 +794,7 @@ public function testTableWithCellMargin() $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'marL', Drawing::pixelsToEmu(20)); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'marR', Drawing::pixelsToEmu(30)); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'marT', Drawing::pixelsToEmu(40)); + $this->assertIsSchemaECMA376Valid(); } public function testTableWithColspan() @@ -762,6 +810,7 @@ public function testTableWithColspan() $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'gridSpan', 2); + $this->assertIsSchemaECMA376Valid(); } public function testTableWithRowspan() @@ -781,6 +830,7 @@ public function testTableWithRowspan() $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '[@rowSpan="2"]'); $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '[@vMerge="1"]'); + $this->assertIsSchemaECMA376Valid(); } /** @@ -800,11 +850,12 @@ public function testTableWithHyperlink() $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:txBody/a:p/a:r/a:rPr/a:hlinkClick'; $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'r:id', 'rId2'); + $this->assertIsSchemaECMA376Valid(); } public function testTransition() { - $value = rand(1000, 5000); + $value = mt_rand(1000, 5000); $element = '/p:sld/p:transition'; $this->assertZipXmlElementNotExists('ppt/slides/slide1.xml', $element); @@ -818,18 +869,22 @@ public function testTransition() $this->assertZipXmlAttributeExists('ppt/slides/slide1.xml', $element, 'advTm'); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'advTm', $value); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'advClick', '0'); + $this->assertIsSchemaECMA376Valid(); $oTransition->setSpeed(Transition::SPEED_FAST); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'spd', 'fast'); + $this->assertIsSchemaECMA376Valid(); $oTransition->setSpeed(Transition::SPEED_MEDIUM); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'spd', 'med'); + $this->assertIsSchemaECMA376Valid(); $oTransition->setSpeed(Transition::SPEED_SLOW); $this->resetPresentationFile(); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'spd', 'slow'); + $this->assertIsSchemaECMA376Valid(); $rcTransition = new \ReflectionClass('PhpOffice\PhpPresentation\Slide\Transition'); $arrayConstants = $rcTransition->getConstants(); @@ -854,11 +909,8 @@ public function testTransition() case 'TRANSITION_CHECKER_VERTICAL': $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/p:checker[@dir=\'vert\']'); break; - case 'TRANSITION_CIRCLE_HORIZONTAL': - $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/p:circle[@dir=\'horz\']'); - break; - case 'TRANSITION_CIRCLE_VERTICAL': - $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/p:circle[@dir=\'vert\']'); + case 'TRANSITION_CIRCLE': + $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/p:circle'); break; case 'TRANSITION_COMB_HORIZONTAL': $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/p:comb[@dir=\'horz\']'); @@ -987,11 +1039,14 @@ public function testTransition() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $element . '/p:zoom[@dir=\'out\']'); break; } + $this->assertIsSchemaECMA376Valid(); } $oTransition->setManualTrigger(true); $this->resetPresentationFile(); + $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $element, 'advClick', '1'); + $this->assertIsSchemaECMA376Valid(); } public function testVisibility() @@ -1000,6 +1055,7 @@ public function testVisibility() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $expectedElement); $this->assertZipXmlAttributeNotExists('ppt/slides/slide1.xml', $expectedElement, 'show'); + $this->assertIsSchemaECMA376Valid(); $this->oPresentation->getActiveSlide()->setIsVisible(false); $this->resetPresentationFile(); @@ -1007,5 +1063,6 @@ public function testVisibility() $this->assertZipXmlElementExists('ppt/slides/slide1.xml', $expectedElement); $this->assertZipXmlAttributeExists('ppt/slides/slide1.xml', $expectedElement, 'show'); $this->assertZipXmlAttributeEquals('ppt/slides/slide1.xml', $expectedElement, 'show', 0); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptTablePropsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptTablePropsTest.php index 98a5cb59f..5eeac021a 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptTablePropsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptTablePropsTest.php @@ -14,5 +14,6 @@ public function testRender() $element = '/a:tblStyleLst'; $this->assertZipXmlElementExists('ppt/tableStyles.xml', $element); $this->assertZipXmlAttributeEquals('ppt/tableStyles.xml', $element, 'def', '{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptViewPropsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptViewPropsTest.php index fa4852be8..1550aec12 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptViewPropsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptViewPropsTest.php @@ -17,6 +17,7 @@ public function testRender() $this->assertZipXmlElementExists('ppt/viewProps.xml', $expectedElement); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', $expectedElement, 'showComments', 0); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', $expectedElement, 'lastView', PresentationProperties::VIEW_SLIDE); + $this->assertIsSchemaECMA376Valid(); } public function testCommentVisible() @@ -28,6 +29,7 @@ public function testCommentVisible() $this->assertZipFileExists('ppt/viewProps.xml'); $this->assertZipXmlElementExists('ppt/viewProps.xml', $expectedElement); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', $expectedElement, 'showComments', 1); + $this->assertIsSchemaECMA376Valid(); } public function testLastView() @@ -40,5 +42,6 @@ public function testLastView() $this->assertZipFileExists('ppt/viewProps.xml'); $this->assertZipXmlElementExists('ppt/viewProps.xml', $expectedElement); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', $expectedElement, 'lastView', $expectedLastView); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/RelationshipsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/RelationshipsTest.php index 5f359cd12..912e5b8e1 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/RelationshipsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/RelationshipsTest.php @@ -17,5 +17,6 @@ public function testCommentsAuthors() $this->oPresentation->getActiveSlide()->addShape($oComment); $this->assertZipXmlElementExists('ppt/_rels/presentation.xml.rels', '/Relationships/Relationship[@Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors"]'); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/SchemaTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/SchemaTest.php deleted file mode 100644 index b7ee6fbb9..000000000 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/SchemaTest.php +++ /dev/null @@ -1,485 +0,0 @@ -internalErrors = libxml_use_internal_errors(true); - } - - public function tearDown() - { - parent::tearDown(); - - libxml_use_internal_errors($this->internalErrors); - } - - /** - * Test whether the generated XML validates against the Office Open XML File Formats schema - * - * @see http://www.ecma-international.org/publications/standards/Ecma-376.htm - * @dataProvider pptProvider - */ - public function testSchema(PhpPresentation $presentation) - { - $this->writePresentationFile($presentation, 'PowerPoint2007'); - - // validate all XML files - $path = realpath($this->workDirectory . '/ppt'); - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); - - foreach ($iterator as $file) { - /** @var SplFileInfo $file */ - if ($file->getExtension() !== "xml") { - continue; - } - - $fileName = str_replace('\\', '/', substr($file->getRealPath(), strlen($path) + 1)); - $dom = $this->getXmlDom('ppt/' . $fileName); - $xmlSource = $dom->saveXML(); - - // In the ISO/ECMA standard the namespace has changed from - // http://schemas.openxmlformats.org/ to http://purl.oclc.org/ooxml/ - // We need to use the http://purl.oclc.org/ooxml/ namespace to validate - // the xml against the current schema - $xmlSource = str_replace(array( - "http://schemas.openxmlformats.org/drawingml/2006/main", - "http://schemas.openxmlformats.org/drawingml/2006/chart", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - "http://schemas.openxmlformats.org/presentationml/2006/main", - ), array( - "http://purl.oclc.org/ooxml/drawingml/main", - "http://purl.oclc.org/ooxml/drawingml/chart", - "http://purl.oclc.org/ooxml/officeDocument/relationships", - "http://purl.oclc.org/ooxml/presentationml/main", - ), $xmlSource); - - $dom->loadXML($xmlSource); - $dom->schemaValidate(__DIR__ . '/../../../../resources/schema/ooxml/pml.xsd'); - - $error = libxml_get_last_error(); - if ($error) { - $this->fail(sprintf("Validation error: %s in file %s on line %s\n%s", $error->message, $file, $error->line, $dom->saveXML())); - } - } - } - - public function pptProvider() - { - return array( - array($this->generatePresentation01()), - array($this->generatePresentation02()), - ); - } - - /** - * Generates a ppt which contains different elements per slide i.e. shape, table, etc. - * - * @return PhpPresentation - */ - private function generatePresentation01() - { - $objPHPPresentation = new PhpPresentation(); - - $objPHPPresentation->getDocumentProperties() - ->setCreator('PHPOffice') - ->setLastModifiedBy('PHPPresentation Team') - ->setTitle('Sample 02 Title') - ->setSubject('Sample 02 Subject') - ->setDescription('Sample 02 Description') - ->setKeywords('office 2007 openxml libreoffice odt php') - ->setCategory('Sample Category'); - - $currentSlide = $objPHPPresentation->getActiveSlide(); - - // text shape - $shape = $currentSlide->createRichTextShape() - ->setHeight(300) - ->setWidth(600) - ->setOffsetX(170) - ->setOffsetY(180); - $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); - $textRun = $shape->createTextRun('Thank you for using PHPPresentation!'); - $textRun->getFont()->setBold(true) - ->setSize(60) - ->setColor(new Color('FFE06B20')); - - // image - $currentSlide = $objPHPPresentation->createSlide(); - $gdImage = @imagecreatetruecolor(140, 20); - $textColor = imagecolorallocate($gdImage, 255, 255, 255); - imagestring($gdImage, 1, 5, 5, 'Created with PHPPresentation', $textColor); - - $shape = new Drawing\Gd(); - $shape->setName('Sample image') - ->setDescription('Sample image') - ->setImageResource($gdImage) - ->setRenderingFunction(Drawing\Gd::RENDERING_JPEG) - ->setMimeType(Drawing\Gd::MIMETYPE_DEFAULT) - ->setHeight(36) - ->setOffsetX(10) - ->setOffsetY(10); - $currentSlide->addShape($shape); - - // table - $currentSlide = $objPHPPresentation->createSlide(); - $shape = $currentSlide->createTableShape(3); - $shape->setHeight(200); - $shape->setWidth(600); - $shape->setOffsetX(150); - $shape->setOffsetY(300); - - $row = $shape->createRow(); - $row->getFill()->setFillType(Fill::FILL_GRADIENT_LINEAR) - ->setRotation(90) - ->setStartColor(new Color('FFE06B20')) - ->setEndColor(new Color('FFFFFFFF')); - $cell = $row->nextCell(); - $cell->setColSpan(3); - $cell->createTextRun('Title row')->getFont()->setBold(true)->setSize(16); - $cell->getBorders()->getBottom()->setLineWidth(4) - ->setLineStyle(Border::LINE_SINGLE) - ->setDashStyle(Border::DASH_DASH); - - $row = $shape->createRow(); - $row->setHeight(20); - $row->getFill()->setFillType(Fill::FILL_GRADIENT_LINEAR) - ->setRotation(90) - ->setStartColor(new Color('FFE06B20')) - ->setEndColor(new Color('FFFFFFFF')); - $row->nextCell()->createTextRun('R1C1')->getFont()->setBold(true); - $row->nextCell()->createTextRun('R1C2')->getFont()->setBold(true); - $row->nextCell()->createTextRun('R1C3')->getFont()->setBold(true); - - foreach ($row->getCells() as $cell) { - $cell->getBorders()->getTop()->setLineWidth(4) - ->setLineStyle(Border::LINE_SINGLE) - ->setDashStyle(Border::DASH_DASH); - } - - // chart - $currentSlide = $objPHPPresentation->createSlide(); - - $oFill = new Fill(); - $oFill->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFE06B20')); - - $oShadow = new Shadow(); - $oShadow->setVisible(true)->setDirection(45)->setDistance(10); - - $seriesData = array( - 'Monday' => 12, - 'Tuesday' => 15, - 'Wednesday' => 13, - 'Thursday' => 17, - 'Friday' => 14, - 'Saturday' => 9, - 'Sunday' => 7 - ); - - $lineChart = new Line(); - $series = new Series('Downloads', $seriesData); - $series->setShowSeriesName(true); - $series->setShowValue(true); - $lineChart->addSeries($series); - - $shape = $currentSlide->createChartShape(); - $shape->setName('PHPPresentation Daily Downloads')->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); - $shape->setShadow($oShadow); - $shape->setFill($oFill); - $shape->getBorder()->setLineStyle(Border::LINE_SINGLE); - $shape->getTitle()->setText('PHPPresentation Daily Downloads'); - $shape->getTitle()->getFont()->setItalic(true); - $shape->getPlotArea()->setType($lineChart); - $shape->getView3D()->setRotationX(30); - $shape->getView3D()->setPerspective(30); - $shape->getLegend()->getBorder()->setLineStyle(Border::LINE_SINGLE); - $shape->getLegend()->getFont()->setItalic(true); - - // fill - $currentSlide = $objPHPPresentation->createSlide(); - - for ($inc = 1; $inc <= 4; $inc++) { - // Create a shape (text) - $shape = $currentSlide->createRichTextShape() - ->setHeight(200) - ->setWidth(300); - if ($inc == 1 || $inc == 3) { - $shape->setOffsetX(10); - } else { - $shape->setOffsetX(320); - } - if ($inc == 1 || $inc == 2) { - $shape->setOffsetY(10); - } else { - $shape->setOffsetY(220); - } - $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); - - switch ($inc) { - case 1: - $shape->getFill()->setFillType(Fill::FILL_NONE); - break; - case 2: - $shape->getFill()->setFillType(Fill::FILL_GRADIENT_LINEAR)->setRotation(90)->setStartColor(new Color('FF4672A8'))->setEndColor(new Color('FF000000')); - break; - case 3: - $shape->getFill()->setFillType(Fill::FILL_GRADIENT_PATH)->setRotation(90)->setStartColor(new Color('FF4672A8'))->setEndColor(new Color('FF000000')); - break; - case 4: - $shape->getFill()->setFillType(Fill::FILL_SOLID)->setRotation(90)->setStartColor(new Color('FF4672A8'))->setEndColor(new Color('FF4672A8')); - break; - } - - $textRun = $shape->createTextRun('Use PHPPresentation!'); - $textRun->getFont()->setBold(true) - ->setSize(30) - ->setColor(new Color('FFE06B20')); - } - - // slide note - $currentSlide = $objPHPPresentation->createSlide(); - - $shape = $currentSlide->createDrawingShape(); - $shape->setName('PHPPresentation logo') - ->setDescription('PHPPresentation logo') - ->setPath(__DIR__ . '/../../../../../samples/resources/phppowerpoint_logo.gif') - ->setHeight(36) - ->setOffsetX(10) - ->setOffsetY(10); - $shape->getShadow()->setVisible(true) - ->setDirection(45) - ->setDistance(10); - $shape->getHyperlink()->setUrl('https://github.com/PHPOffice/PHPPresentation/')->setTooltip('PHPPresentation'); - - $shape = $currentSlide->createRichTextShape() - ->setHeight(300) - ->setWidth(600) - ->setOffsetX(170) - ->setOffsetY(180); - $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); - $textRun = $shape->createTextRun('Thank you for using PHPPresentation!'); - $textRun->getFont()->setBold(true) - ->setSize(60) - ->setColor(new Color('FFE06B20')); - - $oNote = $currentSlide->getNote(); - $oLayout = $objPHPPresentation->getLayout(); - $oRichText = $oNote->createRichTextShape() - ->setHeight($oLayout->getCY($oLayout::UNIT_PIXEL)) - ->setWidth($oLayout->getCX($oLayout::UNIT_PIXEL)) - ->setOffsetX(170) - ->setOffsetY(180); - $oRichText->createTextRun('A class library'); - $oRichText->createParagraph()->createTextRun('Written in PHP'); - $oRichText->createParagraph()->createTextRun('Representing a presentation'); - $oRichText->createParagraph()->createTextRun('Supports writing to different file formats'); - - // transition - $currentSlide = $objPHPPresentation->createSlide(); - - $shapeDrawing = $currentSlide->createDrawingShape(); - $shapeDrawing->setName('PHPPresentation logo') - ->setDescription('PHPPresentation logo') - ->setPath(__DIR__ . '/../../../../../samples/resources/phppowerpoint_logo.gif') - ->setHeight(36) - ->setOffsetX(10) - ->setOffsetY(10); - $shapeDrawing->getShadow()->setVisible(true) - ->setDirection(45) - ->setDistance(10); - $shapeDrawing->getHyperlink()->setUrl('https://github.com/PHPOffice/PHPPresentation/')->setTooltip('PHPPresentation'); - - $shapeRichText = $currentSlide->createRichTextShape() - ->setHeight(300) - ->setWidth(600) - ->setOffsetX(170) - ->setOffsetY(180); - $shapeRichText->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); - $textRun = $shapeRichText->createTextRun('Thank you for using PHPPresentation!'); - $textRun->getFont()->setBold(true) - ->setSize(60) - ->setColor(new Color('FFE06B20')); - - $oTransition = new Transition(); - $oTransition->setManualTrigger(false); - $oTransition->setTimeTrigger(true, 4000); - $oTransition->setTransitionType(Transition::TRANSITION_SPLIT_IN_VERTICAL); - $currentSlide->setTransition($oTransition); - - // comment - $currentSlide = $objPHPPresentation->createSlide(); - - $oShapeDrawing = new Drawing\File(); - $oShapeDrawing->setName('PHPPresentation logo') - ->setDescription('PHPPresentation logo') - ->setPath(__DIR__ . '/../../../../../samples/resources/phppowerpoint_logo.gif') - ->setHeight(36) - ->setOffsetX(10) - ->setOffsetY(10); - $oShapeDrawing->getShadow()->setVisible(true) - ->setDirection(45) - ->setDistance(10); - $oShapeDrawing->getHyperlink()->setUrl('https://github.com/PHPOffice/PHPPresentation/')->setTooltip('PHPPresentation'); - - $oShapeRichText = new RichText(); - $oShapeRichText->setHeight(300) - ->setWidth(600) - ->setOffsetX(170) - ->setOffsetY(180); - $oShapeRichText->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); - $textRun = $oShapeRichText->createTextRun('Thank you for using PHPPresentation!'); - $textRun->getFont()->setBold(true) - ->setSize(60) - ->setColor(new Color('FFE06B20')); - - $currentSlide->addShape(clone $oShapeDrawing); - $currentSlide->addShape(clone $oShapeRichText); - - $oAuthor = new \PhpOffice\PhpPresentation\Shape\Comment\Author(); - $oAuthor->setName('Progi1984'); - $oAuthor->setInitials('P'); - - $oComment1 = new \PhpOffice\PhpPresentation\Shape\Comment(); - $oComment1->setText('Text A'); - $oComment1->setOffsetX(10); - $oComment1->setOffsetY(55); - $oComment1->setDate(time()); - $oComment1->setAuthor($oAuthor); - $currentSlide->addShape($oComment1); - - $oComment2 = new \PhpOffice\PhpPresentation\Shape\Comment(); - $oComment2->setText('Text B'); - $oComment2->setOffsetX(170); - $oComment2->setOffsetY(180); - $oComment2->setDate(time()); - $oComment2->setAuthor($oAuthor); - $currentSlide->addShape($oComment2); - - // animation - $currentSlide = $objPHPPresentation->createSlide(); - - $oDrawing1 = clone $oShapeDrawing; - $oRichText1 = clone $oShapeRichText; - - $oSlide1 = $objPHPPresentation->getActiveSlide(); - $oSlide1->addShape($oDrawing1); - $oSlide1->addShape($oRichText1); - - $oAnimation1 = new Animation(); - $oAnimation1->addShape($oDrawing1); - $oSlide1->addAnimation($oAnimation1); - - $oAnimation2 = new Animation(); - $oAnimation2->addShape($oRichText1); - $oSlide1->addAnimation($oAnimation2); - - $oDrawing2 = clone $oShapeDrawing; - $oRichText2 = clone $oShapeRichText; - - $oSlide2 = $objPHPPresentation->createSlide(); - $oSlide2->addShape($oDrawing2); - $oSlide2->addShape($oRichText2); - - $oAnimation4 = new Animation(); - $oAnimation4->addShape($oRichText2); - $oSlide2->addAnimation($oAnimation4); - - $oAnimation3 = new Animation(); - $oAnimation3->addShape($oDrawing2); - $oSlide2->addAnimation($oAnimation3); - - $oDrawing3 = clone $oShapeDrawing; - $oRichText3 = clone $oShapeRichText; - - $currentSlide->addShape($oDrawing3); - $currentSlide->addShape($oRichText3); - - $oAnimation5 = new Animation(); - $oAnimation5->addShape($oRichText3); - $oAnimation5->addShape($oDrawing3); - $currentSlide->addAnimation($oAnimation5); - - // @TODO add more complex elements - - return $objPHPPresentation; - } - - /** - * Generates a ppt containing placeholder in the master and the slide - * - * @return PhpPresentation - */ - private function generatePresentation02() - { - $objPHPPresentation = new PhpPresentation(); - - $objPHPPresentation->getDocumentProperties() - ->setCreator('PHPOffice') - ->setLastModifiedBy('PHPPresentation Team') - ->setTitle('Sample 02 Title') - ->setSubject('Sample 02 Subject') - ->setDescription('Sample 02 Description') - ->setKeywords('office 2007 openxml libreoffice odt php') - ->setCategory('Sample Category'); - - // master slide - $masterSlides = $objPHPPresentation->getAllMasterSlides(); - /** @var Slide $objMaster */ - $objMaster = reset($masterSlides); - - $objShape = $objMaster->createRichTextShape(); - $objShape->setWidthAndHeight(270, 30)->setOffsetX(600)->setOffsetY(655); - $objShape->createTextRun("Footer") - ->getFont() - ->setName("Arial") - ->setSize(7); - $objShape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT); - - $objShape = $objMaster->createRichTextShape(); - $objShape->setWidthAndHeight(50, 30)->setOffsetX(870)->setOffsetY(655); - $objShape->createTextRun("") - ->getFont() - ->setName("Arial") - ->setSize(7); - $objShape->setPlaceHolder(new Placeholder(Placeholder::PH_TYPE_SLIDENUM)); - - // slide with placeholder - $currentSlide = $objPHPPresentation->getActiveSlide(); - - $objShape = $currentSlide->createRichTextShape(); - $objShape->setWidthAndHeight(50, 30)->setOffsetX(870)->setOffsetY(655); - $objShape->createTextRun("") - ->getFont() - ->setName("Arial") - ->setSize(7); - $objShape->setPlaceHolder(new Placeholder(Placeholder::PH_TYPE_SLIDENUM)); - - return $objPHPPresentation; - } -} diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007Test.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007Test.php index 903b822ce..4b55103f4 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007Test.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007Test.php @@ -133,8 +133,9 @@ public function testZoom() $this->assertZipXmlElementExists('ppt/viewProps.xml', '/p:viewPr/p:slideViewPr/p:cSldViewPr/p:cViewPr/p:scale/a:sy'); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', '/p:viewPr/p:slideViewPr/p:cSldViewPr/p:cViewPr/p:scale/a:sy', 'n', 100); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', '/p:viewPr/p:slideViewPr/p:cSldViewPr/p:cViewPr/p:scale/a:sy', 'd', 100); + $this->assertIsSchemaECMA376Valid(); - $value = rand(1, 100); + $value = mt_rand(1, 100); $this->oPresentation->getPresentationProperties()->setZoom($value); $this->resetPresentationFile(); @@ -144,6 +145,7 @@ public function testZoom() $this->assertZipXmlElementExists('ppt/viewProps.xml', '/p:viewPr/p:slideViewPr/p:cSldViewPr/p:cViewPr/p:scale/a:sy'); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', '/p:viewPr/p:slideViewPr/p:cSldViewPr/p:cViewPr/p:scale/a:sy', 'n', $value * 100); $this->assertZipXmlAttributeEquals('ppt/viewProps.xml', '/p:viewPr/p:slideViewPr/p:cSldViewPr/p:cViewPr/p:scale/a:sy', 'd', 100); + $this->assertIsSchemaECMA376Valid(); } public function testFeatureThumbnail() @@ -154,11 +156,13 @@ public function testFeatureThumbnail() $this->assertZipFileExists('_rels/.rels'); $this->assertZipXmlElementNotExists('_rels/.rels', $xPathManifest); + $this->assertIsSchemaECMA376Valid(); $this->oPresentation->getPresentationProperties()->setThumbnailPath($imagePath); $this->resetPresentationFile(); $this->assertZipFileExists('_rels/.rels'); $this->assertZipXmlElementExists('_rels/.rels', $xPathManifest); + $this->assertIsSchemaECMA376Valid(); } } diff --git a/tests/PhpPresentation/Tests/Writer/SerializedTest.php b/tests/PhpPresentation/Tests/Writer/SerializedTest.php index d55fc35d1..c81638e59 100644 --- a/tests/PhpPresentation/Tests/Writer/SerializedTest.php +++ b/tests/PhpPresentation/Tests/Writer/SerializedTest.php @@ -70,11 +70,11 @@ public function testSave() $oSlide = $oPhpPresentation->getActiveSlide(); $oImage = $oSlide->createDrawingShape(); $oImage->setPath(PHPPRESENTATION_TESTS_BASE_DIR.DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'images'.DIRECTORY_SEPARATOR.'PhpPresentationLogo.png'); - $object = new Serialized($oPhpPresentation); - $file = tempnam(sys_get_temp_dir(), 'PhpPresentation_Serialized'); - - $this->assertFileExists($file, $object->save($file)); + $object = new Serialized($oPhpPresentation); + $object->save($file); + + $this->assertFileExists($file); } /** @@ -100,11 +100,13 @@ public function testSaveOverwriting() $oSlide = $oPhpPresentation->getActiveSlide(); $oImage = $oSlide->createDrawingShape(); $oImage->setPath(PHPPRESENTATION_TESTS_BASE_DIR.DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'images'.DIRECTORY_SEPARATOR.'PhpPresentationLogo.png'); - $object = new Serialized($oPhpPresentation); - + $file = tempnam(sys_get_temp_dir(), 'PhpPresentation_Serialized'); file_put_contents($file, rand(1, 100)); - $this->assertFileExists($file, $object->save($file)); + $object = new Serialized($oPhpPresentation); + $object->save($file); + + $this->assertFileExists($file); } } diff --git a/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php b/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php index b7b0779a8..913677259 100644 --- a/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php +++ b/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php @@ -49,23 +49,59 @@ class PhpPresentationTestCase extends TestCase */ private $xmlFile; + /** + * @var boolean + */ + private $xmlInternalErrors; + + /** + * @var boolean + */ + private $xmlDisableEntityLoader; + + /** + * @var array + */ + private $arrayOpenDocumentRNG = array( + '1.0' => array( + 'META-INF/manifest.xml' => 'OpenDocument-manifest-schema-v1.0-os.rng', + '*' => 'OpenDocument-strict-schema-v1.0-os.rng', + ), + '1.1' => array( + 'META-INF/manifest.xml' => 'OpenDocument-manifest-schema-v1.1.rng', + '*' => 'OpenDocument-strict-schema-v1.1.rng', + ), + '1.2' => array( + 'META-INF/manifest.xml' => 'OpenDocument-v1.2-os-manifest-schema.rng', + '*' => 'OpenDocument-v1.2-os-schema.rng', + ) + ); + /** * Executed before each method of the class */ - public function setUp() + protected function setUp() { + $this->xmlDisableEntityLoader = libxml_disable_entity_loader(false); $this->workDirectory = sys_get_temp_dir() . '/PhpPresentation_Unit_Test/'; $this->oPresentation = new PhpPresentation(); - $this->filePath = tempnam(sys_get_temp_dir(), 'PhpPresentation'); + + // Error XML + libxml_clear_errors(); + $this->xmlInternalErrors = libxml_use_internal_errors(true); + + // Reset file $this->resetPresentationFile(); } /** * Executed after each method of the class */ - public function tearDown() + protected function tearDown() { + libxml_disable_entity_loader($this->xmlDisableEntityLoader); + libxml_use_internal_errors($this->xmlInternalErrors); $this->oPresentation = null; $this->resetPresentationFile(); } @@ -308,4 +344,181 @@ public function assertZipXmlAttributeNotExists($filePath, $xPath, $attribute) $nodeList = $this->getXmlNodeList($filePath, $xPath); self::assertFalse($nodeList->item(0)->hasAttribute($attribute)); } + + public function assertIsSchemaECMA376Valid() + { + // validate all XML files + $path = realpath($this->workDirectory . '/ppt'); + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); + + foreach ($iterator as $file) { + /** @var \SplFileInfo $file */ + if ($file->getExtension() !== 'xml') { + continue; + } + + $fileName = str_replace('\\', '/', substr($file->getRealPath(), strlen($path) + 1)); + $dom = $this->getXmlDom('ppt/' . $fileName); + $xmlSource = $dom->saveXML(); + + $dom->loadXML($xmlSource); + $dom->schemaValidate(__DIR__ . '/../../../resources/schema/ecma-376/pml.xsd'); + + $error = libxml_get_last_error(); + if ($error instanceof \LibXMLError) { + $this->failXmlError($error, $fileName, $xmlSource); + } + } + unset($iterator); + } + + public function assertIsSchemaOOXMLValid() + { + // validate all XML files + $path = realpath($this->workDirectory . '/ppt'); + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); + + foreach ($iterator as $file) { + /** @var \SplFileInfo $file */ + if ($file->getExtension() !== 'xml') { + continue; + } + + $fileName = str_replace('\\', '/', substr($file->getRealPath(), strlen($path) + 1)); + $dom = $this->getXmlDom('ppt/' . $fileName); + $xmlSource = $dom->saveXML(); + // In the ISO/ECMA standard the namespace has changed from + // http://schemas.openxmlformats.org/ to http://purl.oclc.org/ooxml/ + // We need to use the http://purl.oclc.org/ooxml/ namespace to validate + // the xml against the current schema + $xmlSource = str_replace(array( + "http://schemas.openxmlformats.org/drawingml/2006/main", + "http://schemas.openxmlformats.org/drawingml/2006/chart", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + "http://schemas.openxmlformats.org/presentationml/2006/main", + ), array( + "http://purl.oclc.org/ooxml/drawingml/main", + "http://purl.oclc.org/ooxml/drawingml/chart", + "http://purl.oclc.org/ooxml/officeDocument/relationships", + "http://purl.oclc.org/ooxml/presentationml/main", + ), $xmlSource); + + $dom->loadXML($xmlSource); + $dom->schemaValidate(__DIR__ . '/../../../resources/schema/ooxml/pml.xsd'); + + $error = libxml_get_last_error(); + if ($error instanceof \LibXMLError) { + $this->failXmlError($error, $fileName, $xmlSource); + } + } + unset($iterator); + } + + /** + * @param string $version + * @param boolean $triggerError + * @return boolean + */ + public function assertIsSchemaOpenDocumentValid($version = '1.0', $triggerError = true) + { + if (!array_key_exists($version, $this->arrayOpenDocumentRNG)) { + self::fail('assertIsSchemaOpenDocumentValid > Use a valid version'); + return; + } + + // validate all XML files + $path = realpath($this->workDirectory); + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); + + $isValid = true; + foreach ($iterator as $file) { + /** @var \SplFileInfo $file */ + if ($file->getExtension() !== 'xml') { + continue; + } + + $fileName = str_replace('\\', '/', substr($file->getRealPath(), strlen($path) + 1)); + $dom = $this->getXmlDom($fileName); + $xmlSource = $dom->saveXML(); + + $dom->loadXML($xmlSource); + $pathRNG = __DIR__ . '/../../../resources/schema/opendocument/'.$version.'/'; + if (isset($this->arrayOpenDocumentRNG[$version][$fileName])) { + $pathRNG .= $this->arrayOpenDocumentRNG[$version][$fileName]; + } else { + $pathRNG .= $this->arrayOpenDocumentRNG[$version]['*']; + } + $dom->relaxNGValidate($pathRNG); + + $error = libxml_get_last_error(); + if ($error instanceof \LibXMLError) { + if ($triggerError) { + $this->failXmlError($error, $fileName, $xmlSource, array('version' => $version)); + } + $isValid = false; + } + } + unset($iterator); + return $isValid; + } + + public function assertIsSchemaOpenDocumentNotValid($version = '1.0') + { + $isValid = $this->assertIsSchemaOpenDocumentValid($version, false); + if ($isValid) { + self::fail('Failed : This document is currently valid (Schema version: '.$version.')'); + } + } + + /** + * @param \LibXMLError $error + * @param string $fileName + * @param string $source + * @param array $params + */ + protected function failXmlError(\LibXMLError $error, $fileName, $source, array $params = array()) + { + switch ($error->level) { + case LIBXML_ERR_WARNING: + $errorType = 'warning'; + break; + case LIBXML_ERR_ERROR: + $errorType = 'error'; + break; + case LIBXML_ERR_FATAL: + $errorType = 'fatal'; + break; + default: + $errorType = 'Error'; + break; + } + $errorLine = (int)$error->line; + $contents = explode("\n", $source); + $lines = array(); + if (isset($contents[$errorLine - 2])) { + $lines[] = '>> ' . $contents[$errorLine - 2]; + } + if (isset($contents[$errorLine - 1])) { + $lines[] = '>>> ' . $contents[$errorLine - 1]; + } + if (isset($contents[$errorLine])) { + $lines[] = '>> ' . $contents[$errorLine]; + } + $paramStr = ''; + if (!empty($params)) { + $paramStr .= "\n" . ' - Parameters :'."\n"; + foreach ($params as $key => $val) { + $paramStr .= ' - '.$key.' : '.$val."\n"; + } + } + self::fail(sprintf( + "Validation %s :\n - File : %s\n - Line : %s\n - Message : %s - Lines :\n%s%s", + $errorType, + $fileName, + $error->line, + $error->message, + implode(PHP_EOL, $lines), + $paramStr + )); + } } diff --git a/tests/resources/schema/ecma-376/dml-chart.xsd b/tests/resources/schema/ecma-376/dml-chart.xsd new file mode 100644 index 000000000..7c2a42d71 --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-chart.xsd @@ -0,0 +1,3858 @@ + + + + + + + + + + + + Boolean Value + + + + + + + Floating Point Value + + + + + + + Integer Value + + + + + + + Relationship Reference + + + + + + String With Encoded Characters + + + + + + + + + + Uniform Resource Identifier + + + + + + + + Extension + + + + + + + + + Numeric Value + + + + + + Index + + + + + Number Format + + + + + + + + Format Code + + + + + Point Count + + + + + Numeric Point + + + + + + + + + + Formula + + + + + Number Cache + + + + + + + + + + + Number Reference + + + + + Number Literal + + + + + + + + + + Text Value + + + + + + Index + + + + + + + + + + + + + + + Formula + + + + + String Cache + + + + + + + + + + + String Reference + + + + + Rich Text + + + + + + + + Chart Language Tag + + + + + + + Language Code + + + + + + + + String Point + + + + + + + + + + Level + + + + + + + + + + Formula + + + + + Multi Level String Cache + + + + + + + + + + + Multi Level String Reference + + + + + Number Reference + + + + + Number Literal + + + + + + String Literal + + + + + + + + + + + + + + + + Layout Target + + + + + Inner + + + + + Outer + + + + + + + + Layout Target Value + + + + + + Layout Mode + + + + + Edge + + + + + Factor + + + + + + + + Layout Mode Value + + + + + + + + Layout Target + + + + + Left Mode + + + + + Top Mode + + + + + Width Mode + + + + + Height Mode + + + + + Left + + + + + Top + + + + + Width + + + + + Height + + + + + Chart Extensibility + + + + + + + + + Manual Layout + + + + + Chart Extensibility + + + + + + + + + Chart Text + + + + + Layout + + + + + Overlay + + + + + + + Chart Extensibility + + + + + + + X Rotation + + + + + + + + + + X Rotation Value + + + + + + Height Percent + + + + + + + + + + Height Percent Value + + + + + + Y Rotation + + + + + + + + + + Y Rotation Value + + + + + + Depth Percent + + + + + + + + + + Depth Percent Value + + + + + + Perspective + + + + + + + + + + Perspective Value + + + + + + + + X Rotation + + + + + Height Percent + + + + + Y Rotation + + + + + Depth Percent + + + + + Right Angle Axes + + + + + Perspective + + + + + Chart Extensibility + + + + + + + + + Thickness + + + + + + Picture Options + + + + + Chart Extensibility + + + + + + + + + Show Horizontal Border + + + + + Show Vertical Border + + + + + Show Outline Border + + + + + Show Legend Keys + + + + + + Text Properties + + + + + Chart Extensibility + + + + + + + Gap Amount + + + + + + + + + + Gap Size Value + + + + + + Overlap + + + + + + + + + + Overlap Value + + + + + + Bubble Scale + + + + + + + + + + Bubble Scale Value + + + + + + Size Represents + + + + + Bubble Size Represents Area + + + + + Bubble Size Represents Width + + + + + + + + Size Represents Value + + + + + + First Slice Angle + + + + + + + + + + First Slice Angle Value + + + + + + Hole Size + + + + + + + + + + Hole Size Value + + + + + + Split Type + + + + + Default Split + + + + + Custom Split + + + + + Split by Percentage + + + + + Split by Position + + + + + Split by Value + + + + + + + + Split Type Value + + + + + + + + Second Pie Point + + + + + + + Second Pie Size + + + + + + + + + + Second Pie Size Value + + + + + + + Number Format Code + + + + + Linked to Source + + + + + + Label Alignment + + + + + Center + + + + + Left + + + + + Right + + + + + + + + Label Alignment Value + + + + + + Data Label Position + + + + + Best Fit + + + + + Bottom + + + + + Center + + + + + Inside Base + + + + + Inside End + + + + + Left + + + + + Outside End + + + + + Right + + + + + Top + + + + + + + + Data Label Position Value + + + + + + + + Number Format + + + + + + + Data Label Position + + + + + Show Legend Key + + + + + Show Value + + + + + Show Category Name + + + + + Show Series Name + + + + + Show Percent + + + + + Show Bubble Size + + + + + Separator + + + + + + + + + Layout + + + + + + + + + + + Index + + + + + + Delete + + + + + + + Chart Extensibility + + + + + + + + + + Show Leader Lines + + + + + Leader Lines + + + + + + + + + Data Label + + + + + + Delete + + + + + + + Chart Extensibility + + + + + + + Marker Style + + + + + Circle + + + + + Dash + + + + + Diamond + + + + + Dot + + + + + None + + + + + Picture + + + + + Plus + + + + + Square + + + + + Star + + + + + Triangle + + + + + X + + + + + + + + Marker Style Value + + + + + + Marker Size + + + + + + + + + + Marker Size Value + + + + + + + + Symbol + + + + + Size + + + + + + Chart Extensibility + + + + + + + + + Index + + + + + Invert if Negative + + + + + Marker + + + + + 3D Bubble + + + + + Explosion + + + + + + + Chart Extensibility + + + + + + + Trendline Type + + + + + Exponential + + + + + Linear + + + + + Logarithmic + + + + + Moving Average + + + + + Polynomial + + + + + Power + + + + + + + + Trendline Type Value + + + + + + Order + + + + + + + + + + Order Value + + + + + + Period + + + + + + + + + + Period Value + + + + + + + + Layout + + + + + + Number Format + + + + + + + Chart Extensibility + + + + + + + + + Trendline Name + + + + + + Trendline Type + + + + + Polynomial Trendline Order + + + + + Period + + + + + Forward + + + + + Backward + + + + + Intercept + + + + + Display R Squared Value + + + + + Display Equation + + + + + Trendline Label + + + + + Chart Extensibility + + + + + + + Error Bar Direction + + + + + X + + + + + Y + + + + + + + + Error Bar Direction Value + + + + + + Error Bar Type + + + + + Both + + + + + Minus + + + + + Plus + + + + + + + + Error Bar Type Value + + + + + + Error Value Type + + + + + Custom Error Bars + + + + + Fixed Value + + + + + Percentage + + + + + Standard Deviation + + + + + Standard Error + + + + + + + + Error Bar Type Value + + + + + + + + Error Bar Direction + + + + + Error Bar Type + + + + + Error Bar Value Type + + + + + No End Cap + + + + + Plus + + + + + Minus + + + + + Error Bar Value + + + + + + Chart Extensibility + + + + + + + + + + + + + + Gap Width + + + + + Up Bars + + + + + Down Bars + + + + + Chart Extensibility + + + + + + + + + Index + + + + + Order + + + + + Series Text + + + + + + + + + + + Marker + + + + + Data Point + + + + + Data Labels + + + + + + Error Bars + + + + + Category Axis Data + + + + + + + Chart Extensibility + + + + + + + + + + Marker + + + + + Data Point + + + + + Data Labels + + + + + + Error Bars + + + + + + + Smoothing + + + + + Chart Extensibility + + + + + + + + + + Marker + + + + + Data Point + + + + + Data Labels + + + + + Category Axis Data + + + + + + Chart Extensibility + + + + + + + + + + Invert if Negative + + + + + + Data Point + + + + + Data Labels + + + + + Trendlines + + + + + Error Bars + + + + + Category Axis Data + + + + + + Shape + + + + + Chart Extensibility + + + + + + + + + + + Data Point + + + + + Data Labels + + + + + + Error Bars + + + + + Category Axis Data + + + + + Values + + + + + Chart Extensibility + + + + + + + + + + Explosion + + + + + Data Point + + + + + Data Labels + + + + + Category Axis Data + + + + + + Chart Extensibility + + + + + + + + + + Invert if Negative + + + + + Data Point + + + + + Data Labels + + + + + + Error Bars + + + + + X Values + + + + + Y Values + + + + + Bubble Size + + + + + 3D Bubble + + + + + Chart Extensibility + + + + + + + + + + Category Axis Data + + + + + + Chart Extensibility + + + + + + + Grouping + + + + + 100% Stacked + + + + + Standard + + + + + Stacked + + + + + + + + Grouping Value + + + + + + + + + + + + + Grouping + + + + + + + Data Labels + + + + + Drop Lines + + + + + + + + + + High Low Lines + + + + + + Show Marker + + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + + Gap Depth + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + Line Chart Series + + + + + Data Labels + + + + + + High Low Lines + + + + + Up/Down Bars + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + Scatter Style + + + + + None + + + + + Line + + + + + Line with Markers + + + + + Marker + + + + + Smooth + + + + + Smooth with Markers + + + + + + + + Scatter Style Value + + + + + + + + Scatter Style + + + + + Vary Colors by Point + + + + + Scatter Chart Series + + + + + Data Labels + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + Radar Style + + + + + Standard + + + + + Marker + + + + + Filled + + + + + + + + Radar Style Value + + + + + + + + Radar Style + + + + + + Radar Chart Series + + + + + Data Labels + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + Bar Grouping + + + + + 100% Stacked + + + + + Clustered + + + + + Standard + + + + + Stacked + + + + + + + + Bar Grouping Value + + + + + + Bar Direction + + + + + Bar + + + + + Column + + + + + + + + Bar Direction Value + + + + + + Shape + + + + + Cone + + + + + Cone to Max + + + + + Box + + + + + Cylinder + + + + + Pyramid + + + + + Pyramid to Maximum + + + + + + + + Shape Value + + + + + + + + Bar Direction + + + + + Bar Grouping + + + + + + Bar Chart Series + + + + + Data Labels + + + + + + + + + + Gap Width + + + + + Overlap + + + + + Series Lines + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + + Gap Width + + + + + Gap Depth + + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + Grouping + + + + + + Area Chart Series + + + + + Data Labels + + + + + Drop Lines + + + + + + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + + Gap Depth + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + + Pie Chart Series + + + + + Data Labels + + + + + + + + + + First Slice Angle + + + + + Chart Extensibility + + + + + + + + + + Chart Extensibility + + + + + + + + + + First Slice Angle + + + + + Hole Size + + + + + Chart Extensibility + + + + + + + Pie of Pie or Bar of Pie Type + + + + + Pie + + + + + Bar + + + + + + + + Pie of Pie or Bar of Pie Type Value + + + + + + + + Pie of Pie or Bar of Pie Type + + + + + + Gap Width + + + + + Split Type + + + + + Split Position + + + + + Custom Split + + + + + Second Pie Size + + + + + + Chart Extensibility + + + + + + + + + + Bubble Chart Series + + + + + Data Labels + + + + + 3D Bubble + + + + + Bubble Scale + + + + + Show Negative Bubbles + + + + + Size Represents + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + + + + + + + Band Format + + + + + + + + + Wireframe + + + + + Surface Chart Series + + + + + Band Formats + + + + + + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + + + + Axis ID + + + + + Chart Extensibility + + + + + + + Axis Position + + + + + Bottom + + + + + Left + + + + + Right + + + + + Top + + + + + + + + Axis Position Value + + + + + + Crosses + + + + + Axis Crosses at Zero + + + + + Maximum + + + + + Minimum + + + + + + + + Crosses Value + + + + + + Cross Between + + + + + Between + + + + + Midpoint of Category + + + + + + + + Cross Between Value + + + + + + Tick Mark + + + + + Cross + + + + + Inside + + + + + None + + + + + Outside + + + + + + + + Tick Mark Value + + + + + + Tick Label Position + + + + + High + + + + + Low + + + + + Next To + + + + + None + + + + + + + + Tick Label Position Value + + + + + + Skip + + + + + + + + + Tick Skip Value + + + + + + Time Unit + + + + + Days + + + + + Months + + + + + Years + + + + + + + + Time Unit Value + + + + + + Axis Unit + + + + + + + + + Major Unit Value + + + + + + Built-In Unit + + + + + Hundreds + + + + + Thousands + + + + + Ten Thousands + + + + + Hundred Thousands + + + + + Millions + + + + + Ten Millions + + + + + Hundred Millions + + + + + Billions + + + + + Trillions + + + + + + + + Built In Unit Value + + + + + + Picture Format + + + + + Stretch + + + + + Stack + + + + + Stack and Scale + + + + + + + + Picture Format Value + + + + + + Picture Stack Unit + + + + + + + + + Picture Stack Unit + + + + + + + + Apply To Front + + + + + Apply To Sides + + + + + Apply to End + + + + + Picture Format + + + + + Picture Stack Unit + + + + + + + + + Layout + + + + + + + + + + + + + Custom Display Unit + + + + + Built in Display Unit Value + + + + + + Display Units Label + + + + + Chart Extensibility + + + + + + + Orientation + + + + + Maximum to Minimum + + + + + Minimum to Maximum + + + + + + + + Orientation Value + + + + + + Logarithmic Base + + + + + + + + + + Logarithmic Base Value + + + + + + + + Logarithmic Base + + + + + Axis Orientation + + + + + Maximum + + + + + Minimum + + + + + Chart Extensibility + + + + + + + Label Offset + + + + + + + + + + Label Offset Value + + + + + + + + Axis ID + + + + + Scaling + + + + + Delete + + + + + Axis Position + + + + + Major Gridlines + + + + + Minor Gridlines + + + + + Title + + + + + Number Format + + + + + Major Tick Mark + + + + + Minor Tick Mark + + + + + Tick Label Position + + + + + + + Crossing Axis ID + + + + + + Crosses + + + + + Crossing Value + + + + + + + + + + + Automatic Category Axis + + + + + Label Alignment + + + + + Label Offset + + + + + + Tick Mark Skip + + + + + No Multi-level Labels + + + + + Chart Extensibility + + + + + + + + + + Automatic Category Axis + + + + + Label Offset + + + + + Base Time Unit + + + + + Major Unit + + + + + Major Time Unit + + + + + Minor Unit + + + + + Minor Time Unit + + + + + Chart Extensibility + + + + + + + + + + Tick Label Skip + + + + + + Chart Extensibility + + + + + + + + + + Cross Between + + + + + Major Unit + + + + + Minor Unit + + + + + Display Units + + + + + Chart Extensibility + + + + + + + + + Layout + + + + + + Area Charts + + + + + 3D Area Charts + + + + + Line Charts + + + + + 3D Line Charts + + + + + Stock Charts + + + + + Radar Charts + + + + + Scatter Charts + + + + + Pie Charts + + + + + 3D Pie Charts + + + + + Doughnut Charts + + + + + Bar Charts + + + + + 3D Bar Charts + + + + + Pie of Pie or Bar of Pie Charts + + + + + Surface Charts + + + + + 3D Surface Charts + + + + + Bubble Charts + + + + + + + Value Axis + + + + + Category Axis Data + + + + + Date Axis + + + + + Series Axis + + + + + + Data Table + + + + + + Chart Extensibility + + + + + + + + + Index + + + + + + + Marker + + + + + Data Label + + + + + Chart Extensibility + + + + + + + + + Pivot Format + + + + + + + Legend Position + + + + + Bottom + + + + + Top Right + + + + + Left + + + + + Right + + + + + Top + + + + + + + + Legend Position Value + + + + + + + + + + + + + Index + + + + + + Delete + + + + + + + Chart Extensibility + + + + + + + + + Legend Position + + + + + Legend Entry + + + + + Layout + + + + + Overlay + + + + + + + Chart Extensibility + + + + + + + Display Blanks As + + + + + Span + + + + + Gap + + + + + Zero + + + + + + + + Display Blanks As Value + + + + + + + + + Auto Title Is Deleted + + + + + Pivot Formats + + + + + View In 3D + + + + + Floor + + + + + Side Wall + + + + + Back Wall + + + + + Plot Area + + + + + Legend + + + + + Plot Visible Only + + + + + Display Blanks As + + + + + Show Data Labels over Maximum + + + + + Chart Extensibility + + + + + + + Style + + + + + + + + + + Style Type + + + + + + + + Pivot Name + + + + + Format ID + + + + + Chart Extensibility + + + + + + + + + Chart Object + + + + + Data Cannot Be Changed + + + + + Formatting + + + + + Selection + + + + + User Interface + + + + + + + + + Odd Header + + + + + Odd Footer + + + + + Even Header + + + + + Even Footer + + + + + First Header + + + + + First Footer + + + + + + Align With Margins + + + + + Different Odd Even + + + + + Different First + + + + + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Header + + + + + Footer + + + + + + Printed Page Orientation + + + + + Default Page Orientation + + + + + Portrait Page + + + + + Landscape Page + + + + + + + + + Update Automatically + + + + + + Relationship Reference + + + + + + + Page Size + + + + + First Page Number + + + + + Orientation + + + + + Black and White + + + + + Draft + + + + + Use First Page Number + + + + + Horizontal DPI + + + + + Vertical DPI + + + + + Copies + + + + + + + + Header and Footer + + + + + Page Margins + + + + + Page Setup + + + + + Legacy Drawing for Headers and Footers + + + + + + + + + 1904 Date System + + + + + Editing Language + + + + + Rounded Corners + + + + + Style + + + + + Color Map Override + + + + + Pivot Source + + + + + Protection + + + + + Chart + + + + + Shape Properties + + + + + + External Data Relationship + + + + + Print Settings + + + + + Reference to Chart Drawing Part + + + + + Chart Extensibility + + + + + + + Chart Space + + + + + User Shapes + + + + + Reference to Chart Part + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-chartDrawing.xsd b/tests/resources/schema/ecma-376/dml-chartDrawing.xsd new file mode 100644 index 000000000..ca1873367 --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-chartDrawing.xsd @@ -0,0 +1,338 @@ + + + + + + + + + + + + Chart Non Visual Properties + + + + + Non-Visual Shape Drawing Properties + + + + + + + + + Non-Visual Shape Properties + + + + + Shape Properties + + + + + Shape Style + + + + + Shape Text Body + + + + + + Reference to Custom Function + + + + + Text Link + + + + + Lock Text + + + + + Publish to Server + + + + + + + + Chart Non Visual Properties + + + + + Non-Visual Connection Shape Drawing Properties + + + + + + + + + Connector Non Visual Properties + + + + + Shape Properties + + + + + Connection Shape Style + + + + + + Reference to Custom Function + + + + + Publish to Server + + + + + + + + + Non-Visual Picture Drawing Properties + + + + + + + + + Non-Visual Picture Properties + + + + + Picture Fill + + + + + + + + Reference to Custom Function + + + + + Publish to Server + + + + + + + + Non-Visual Drawing Properties + + + + + Non-Visual Graphic Frame Drawing Properties + + + + + + + + + Non-Visual Graphic Frame Properties + + + + + Graphic Frame Transform + + + + + Graphical Object + + + + + + Reference to Custom Function + + + + + Publish To Server + + + + + + + + Chart Non Visual Properties + + + + + Non-Visual Group Shape Drawing Properties + + + + + + + + + Non-Visual Group Shape Properties + + + + + Group Shape Properties + + + + + + Shape + + + + + Group Shape + + + + + Graphic Frame + + + + + Connector Shape + + + + + Picture + + + + + + + + + + + Shape Definition + + + + + Group Shape + + + + + Graphic Frame + + + + + Connection Shape + + + + + + + + + Chart Marker Coordinate Value + + + + + + + + + + + Relative X Coordinate + + + + + Relative Y Coordinate + + + + + + + + + Starting Anchor Point + + + + + Ending Anchor Point + + + + + + + + + + + Shape Extent + + + + + + + + + + Relative Anchor Shape Size + + + + + Absolute Anchor Shape Size + + + + + + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-compatibility.xsd b/tests/resources/schema/ecma-376/dml-compatibility.xsd new file mode 100644 index 000000000..dd8d5a682 --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-compatibility.xsd @@ -0,0 +1,17 @@ + + + + + + + + Shape ID + + + + + + Legacy Drawing Object + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-diagram.xsd b/tests/resources/schema/ecma-376/dml-diagram.xsd new file mode 100644 index 000000000..35ed75d2d --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-diagram.xsd @@ -0,0 +1,3635 @@ + + + + + + + + + + + + + Language + + + + + Description Value + + + + + + + Language + + + + + Description Value + + + + + + + Category Type + + + + + Priority + + + + + + + + Color Transform Category + + + + + + + Color Application Method Type + + + + + Span + + + + + Cycle + + + + + Repeat + + + + + + + Hue Direction + + + + + Clockwise Hue Direction + + + + + Counterclockwise Hue Direction + + + + + + + + + + + Color Application Method Type + + + + + Hue Direction + + + + + + + + Fill Color List + + + + + Line Color List + + + + + Effect Color List + + + + + Text Line Color List + + + + + Text Fill Color List + + + + + Text Effect Color List + + + + + + + Name + + + + + + + + Title + + + + + Description + + + + + Color Transform Category List + + + + + Style Label + + + + + + + Unique ID + + + + + Minimum Version + + + + + + Color Transform Definitions + + + + + + + Title + + + + + Description + + + + + Color Transform Category List + + + + + + + Unique ID + + + + + Minimum Version + + + + + Resource ID + + + + + + Color Transform Header + + + + + + + Color Transform Definition Header + + + + + + + Color Transform Header List + + + + + + + + + + + + Point Type + + + + + Node + + + + + Assistant Element + + + + + Document + + + + + Presentation + + + + + Parent Transition + + + + + Sibling Transition + + + + + + + + + Property Set + + + + + Shape Properties + + + + + Text Body + + + + + + + Model Identifier + + + + + Point Type + + + + + Connection Identifier + + + + + + + + Point + + + + + + + Connection Type + + + + + Parent Of + + + + + Presentation Of + + + + + Presentation Parent Of + + + + + Unknown Relationship + + + + + + + + + + + Model Identifier + + + + + Point Type + + + + + Source Identifier + + + + + Destination Identifier + + + + + Source Position + + + + + Destination Position + + + + + Parent Transition Identifier + + + + + Sibling Transition Identifier + + + + + Presentation Identifier + + + + + + + + Connection + + + + + + + + + Point List + + + + + Connection List + + + + + Background Formatting + + + + + Whole E2O Formatting + + + + + + + + Data Model + + + + + + + + + + + + + Axis + + + + + Data Point Type + + + + + Hide Last Transition + + + + + Start + + + + + Count + + + + + Step + + + + + + + Constraint Type + + + + + For + + + + + For Name + + + + + Data Point Type + + + + + + + Reference Type + + + + + Reference For + + + + + Reference For Name + + + + + Reference Point Type + + + + + + + + + + + + Operator + + + + + Value + + + + + Factor + + + + + + + + Constraint + + + + + + + + + + + + Value + + + + + Factor + + + + + Max Value + + + + + + + + Rule + + + + + + + + + + + + + Layout Shape Type + + + + + + 1-Based Index + + + + + + + + + Adjust Handle Index + + + + + Value + + + + + + + + Shape Adjust + + + + + + + + + Shape Adjust List + + + + + + + Rotation + + + + + Shape Type + + + + + Relationship to Image Part + + + + + Z-Order Offset + + + + + Hide Geometry + + + + + Prevent Text Editing + + + + + Image Placeholder + + + + + + + Parameter Type + + + + + Value + + + + + + + + Parameter + + + + + + + Algorithm Type + + + + + Revision Number + + + + + + + + Algorithm + + + + + Shape + + + + + Presentation Of + + + + + Constraint List + + + + + Rule List + + + + + Variable List + + + + + For Each + + + + + Layout Node + + + + + Choose Element + + + + + + + Name + + + + + Style Label + + + + + Child Order + + + + + Move With + + + + + + + + Algorithm + + + + + Shape + + + + + Presentation Of + + + + + Constraint List + + + + + Rule List + + + + + For Each + + + + + Layout Node + + + + + Choose Element + + + + + + + Name + + + + + Reference + + + + + + + + + Algorithm + + + + + Shape + + + + + Presentation Of + + + + + Constraint List + + + + + Rule List + + + + + For Each + + + + + Layout Node + + + + + Choose Element + + + + + + + Name + + + + + + Function + + + + + Argument + + + + + Operator + + + + + Value + + + + + + + + Algorithm + + + + + Shape + + + + + Presentation Of + + + + + Constraint List + + + + + Rule List + + + + + For Each + + + + + Layout Node + + + + + Choose Element + + + + + Extension List + + + + + + Name + + + + + + + + If + + + + + Else + + + + + + Name + + + + + + + + Data Model + + + + + + Use Default + + + + + + + Category Type + + + + + Priority + + + + + + + + Category + + + + + + + + Language + + + + + Value + + + + + + + Language + + + + + Value + + + + + + + + Title + + + + + Description + + + + + Category List + + + + + Sample Data + + + + + Style Data + + + + + Color Transform Sample Data + + + + + Layout Node + + + + + + + Unique Identifier + + + + + Minimum Version + + + + + Default Style + + + + + + Layout Definition + + + + + + + Title + + + + + Description + + + + + Category List + + + + + + + Unique Identifier + + + + + Minimum Version + + + + + Default Style + + + + + Resource Identifier + + + + + + Layout Definition Header + + + + + + + Layout Definition Header + + + + + + + Diagram Layout Header List + + + + + + Explicit Relationship to Diagram Data Part + + + + + Explicit Relationship to Diagram Layout Definition Part + + + + + Explicit Relationship to Style Definition Part + + + + + Explicit Relationship to Diagram Colors Part + + + + + + Explicit Relationships to Diagram Parts + + + + + Parameter Values + + + + + + + + + + + Model Identifier + + + + + + + + Presentation Layout Variables + + + + + Shape Style + + + + + + Presentation Element Identifier + + + + + Presentation Name + + + + + Presentation Style Label + + + + + Presentation Style Index + + + + + Presentation Style Count + + + + + Current Diagram Type + + + + + Current Diagram Category + + + + + Current Style Type + + + + + Current Style Category + + + + + Color Transform Type Identifier + + + + + Color Transform Category + + + + + Coherent 3D Behavior + + + + + Placeholder Text + + + + + Placeholder + + + + + Custom Rotation + + + + + Custom Vertical Flip + + + + + Custom Horizontal Flip + + + + + Fixed Width Override + + + + + Fixed Height Override + + + + + Width Scale + + + + + Height Scale + + + + + Text Changed + + + + + Custom Factor Width + + + + + Custom Factor Height + + + + + Neighbor Offset Width + + + + + Neighbor Offset Height + + + + + Radius Scale + + + + + Include Angle Scale + + + + + + + + Diagram Direction Definition + + + + + Normal Direction + + + + + Reversed Direction + + + + + + + Hierarchy Branch Style Definition + + + + + Left + + + + + Right + + + + + Hanging + + + + + Standard + + + + + Initial + + + + + + + One by One Animation Value Definition + + + + + Disable One-by-One + + + + + One By One + + + + + By Branch One By One + + + + + + + Animation Level String Definition + + + + + Disable Level At Once + + + + + By Level Animation + + + + + From Center Animation + + + + + + + + Show Organization Chart User Interface Value + + + + + + Number of Nodes Definition + + + + + + + + + Maximum Children Value + + + + + + + Preferred Number of CHildren Value + + + + + + + Show Insert Bullet Value + + + + + + + Diagram Direction Value + + + + + + + Organization Chart Branch Style Value + + + + + + + One By One Animation Value + + + + + + + Level Animation Value + + + + + + Resize Handle + + + + + Exact + + + + + Relative + + + + + + + + Shape Resize Style Type + + + + + + + + Show Organization Chart User Interface + + + + + Maximum Children + + + + + Preferred Number of Children + + + + + Show Insert Bullet + + + + + Diagram Direction + + + + + Organization Chart Branch Style + + + + + One by One Animation String + + + + + Level Animation + + + + + Shape Resize Style + + + + + + + + + + + + + + + + + + + Natural Language + + + + + Description Value + + + + + + + Natural Language + + + + + Description Value + + + + + + + Category Type + + + + + Priority + + + + + + + + Category + + + + + + + + + + + + + + 3-D Scene + + + + + 3-D Shape Properties + + + + + Text Properties + + + + + Shape Style + + + + + + + Style Name + + + + + + + + Title + + + + + Style Label Description + + + + + Category List + + + + + 3-D Scene + + + + + Style Label + + + + + + + Unique Style ID + + + + + Minimum Version + + + + + + Style Definition + + + + + + + Title + + + + + Style Label Description + + + + + Category List + + + + + + + Unique Style ID + + + + + Minimum Version + + + + + Resource ID + + + + + + Style Definition Header + + + + + + + Style Definition Header + + + + + + + List of Style Definition Headers + + + + + + + + Algorithm Types + + + + + Composite + + + + + Connector Algorithm + + + + + Cycle Algorithm + + + + + Hierarchy Child Algorithm + + + + + Hierarchy Root Algorithm + + + + + Pyramid Algorithm + + + + + Linear Algorithm + + + + + Space Algorithm + + + + + Text Algorithm + + + + + Snake Algorithm + + + + + + + Axis Type + + + + + Self + + + + + Child + + + + + Descendant + + + + + Descendant or Self + + + + + Parent + + + + + Ancestor + + + + + Ancestor or Self + + + + + Follow Sibling + + + + + Preceding Sibling + + + + + Follow + + + + + Preceding + + + + + Root + + + + + None + + + + + + + Axis Type List + + + + + + Boolean Constraint + + + + + None + + + + + Equal + + + + + Greater Than or Equal to + + + + + Less Than or Equal to + + + + + + + Child Order + + + + + Bottom + + + + + Top + + + + + + + Constraint Type + + + + + Unknown + + + + + Alignment Offset + + + + + Beginning Margin + + + + + Bending Distance + + + + + Beginning Padding + + + + + Bottom + + + + + Bottom Margin + + + + + Bottom Offset + + + + + Center Height + + + + + Center X Offset + + + + + Center Width + + + + + Center Y Offset + + + + + Connection Distance + + + + + Diameter + + + + + End Margin + + + + + End Padding + + + + + Height + + + + + Arrowhead Height + + + + + Height Offset + + + + + Left + + + + + Left Margin + + + + + Left Offset + + + + + Right + + + + + Right Margin + + + + + Right Offset + + + + + Primary Font Size + + + + + Pyramid Accent Ratio + + + + + Secondary Font Size + + + + + Sibling Spacing + + + + + Secondary Sibling Spacing + + + + + Spacing + + + + + Stem Thickness + + + + + Top + + + + + Top Margin + + + + + Top Offset + + + + + User Defined A + + + + + User Defined B + + + + + User Defined C + + + + + User Defined D + + + + + User Defined E + + + + + User Defined F + + + + + User Defined G + + + + + User Defined H + + + + + User Defined I + + + + + User Defined J + + + + + User Defined K + + + + + User Defined L + + + + + User Defined M + + + + + User Defined N + + + + + User Defined O + + + + + User Defined P + + + + + User Defined Q + + + + + User Defined R + + + + + User Defined S + + + + + User Defined T + + + + + User Defined U + + + + + User Defined V + + + + + User Defined W + + + + + User Defined X + + + + + User Defined Y + + + + + User Defined Z + + + + + Width + + + + + Arrowhead Width + + + + + Width Offset + + + + + + + Constraint Relationship + + + + + Self + + + + + Child + + + + + Descendant + + + + + + + Element Type + + + + + All + + + + + Document + + + + + Node + + + + + Normal + + + + + Non Normal + + + + + Assistant + + + + + Non Assistant + + + + + Parent Transition + + + + + Presentation + + + + + Sibling Transition + + + + + + + Element Type List + + + + + + Parameter Identifier + + + + + Horizontal Alignment + + + + + Vertical Alignment + + + + + Child Direction + + + + + Child Alignment + + + + + Secondary Child Alignment + + + + + Linear Direction + + + + + Secondary Linear Direction + + + + + Start Element + + + + + Bend Point + + + + + Connection Route + + + + + Beginning Arrowhead Style + + + + + End Style + + + + + Connector Dimension + + + + + Rotation Path + + + + + Center Shape Mapping + + + + + Node Horizontal Alignment + + + + + Node Vertical Alignment + + + + + Fallback Scale + + + + + Text Direction + + + + + Pyramid Accent Position + + + + + Pyramid Accent Text Margin + + + + + Text Block Direction + + + + + Text Anchor Horizontal + + + + + Text Anchor Vertical + + + + + Text Anchor Horizontal With Children + + + + + Text Anchor Vertical With Children + + + + + Parent Text Left-to-Right Alignment + + + + + Parent Text Right-to-Left Alignment + + + + + Shape Text Left-to-Right Alignment + + + + + Shape Text Right-to-Left Alignment + + + + + Auto Text Rotation + + + + + Grow Direction + + + + + Flow Direction + + + + + Continue Direction + + + + + Breakpoint + + + + + Offset + + + + + Hierarchy Alignment + + + + + Breakpoint Fixed Value + + + + + Start Bullets At Level + + + + + Start Angle + + + + + Span Angle + + + + + Aspect Ratio + + + + + Line Spacing Parent + + + + + Line Spacing After Parent Paragraph + + + + + Line Spacing Children + + + + + Line Spacing After Children Paragraph + + + + + Route Shortest Distance + + + + + Text Alignment + + + + + Pyramid Level Node + + + + + Pyramid Accent Background Node + + + + + Pyramid Accent Text Node + + + + + Source Node + + + + + Destination Node + + + + + Beginning Points + + + + + End Points + + + + + + + Integer List + + + + + + Unsigned Integer List + + + + + + Boolean List. + + + + + + Function Type + + + + + Count + + + + + Position + + + + + Reverse Position + + + + + Position Even + + + + + Position Odd + + + + + Variable + + + + + Depth + + + + + Max Depth + + + + + + + Function Operator + + + + + Equal + + + + + Not Equal To + + + + + Greater Than + + + + + Less Than + + + + + Greater Than or Equal to + + + + + Less Than or Equal to + + + + + + + Horizontal Alignment + + + + + Left + + + + + Center + + + + + Right + + + + + None + + + + + + + Vertical Alignment + + + + + Top + + + + + Middle + + + + + Bottom + + + + + None + + + + + + + Child Direction + + + + + Horizontal + + + + + Vertical + + + + + + + Child Alignment + + + + + Top + + + + + Bottom + + + + + Left + + + + + Right + + + + + + + Secondary Child Alignment + + + + + None + + + + + Top + + + + + Bottom + + + + + Left + + + + + Right + + + + + + + Linear Direction + + + + + From Left + + + + + From Right + + + + + From Top + + + + + From Bottom + + + + + + + Secondary Linear Direction + + + + + None + + + + + From Left + + + + + From Right + + + + + From Top + + + + + From Bottom + + + + + + + Starting Element + + + + + Node + + + + + Transition + + + + + + + Rotation Path + + + + + None + + + + + Along Path + + + + + + + Center Shape Mapping + + + + + None + + + + + First Node + + + + + + + Bend Point + + + + + Beginning + + + + + Default + + + + + End + + + + + + + Connector Routing + + + + + Straight + + + + + Bending + + + + + Curve + + + + + Long Curve + + + + + + + Arrowhead Styles + + + + + Auto + + + + + Arrowhead Present + + + + + No Arrowhead + + + + + + + Connector Dimension + + + + + 1 Dimension + + + + + 2 Dimensions + + + + + Custom + + + + + + + Connector Point + + + + + Auto + + + + + Bottom Center + + + + + Center + + + + + Middle Left + + + + + Middle Right + + + + + Top Center + + + + + Bottom Left + + + + + Bottom Right + + + + + Top Left + + + + + Top Right + + + + + Radial + + + + + + + Node Horizontal Alignment + + + + + Left + + + + + Center + + + + + Right + + + + + + + Node Vertical Alignment + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + Fallback Dimension + + + + + 1 Dimension + + + + + 2 Dimensions + + + + + + + Text Direction + + + + + From Top + + + + + From Bottom + + + + + + + Pyramid Accent Position + + + + + Before + + + + + Pyramid Accent After + + + + + + + Pyramid Accent Text Margin + + + + + Step + + + + + Stack + + + + + + + Text Block Direction + + + + + Horizontal + + + + + Vertical Direction + + + + + + + Text Anchor Horizontal + + + + + None + + + + + Center + + + + + + + Text Anchor Vertical + + + + + Top + + + + + Middle + + + + + Bottom + + + + + + + Text Alignment + + + + + Left + + + + + Center + + + + + Right + + + + + + + Auto Text Rotation + + + + + None + + + + + Upright + + + + + Gravity + + + + + + + Grow Direction + + + + + Top Left + + + + + Top Right + + + + + Bottom Left + + + + + Bottom Right + + + + + + + Flow Direction + + + + + Row + + + + + Column + + + + + + + Continue Direction + + + + + Reverse Direction + + + + + Same Direction + + + + + + + Breakpoint + + + + + End of Canvas + + + + + Balanced + + + + + Fixed + + + + + + + Offset + + + + + Center + + + + + Offset + + + + + + + Hierarchy Alignment + + + + + Top Left + + + + + Top Right + + + + + Top Center Children + + + + + Top Center Descendants + + + + + Bottom Left + + + + + Bottom Right + + + + + Bottom Center Child + + + + + Bottom Center Descendant + + + + + Left Top + + + + + Left Bottom + + + + + Left Center Child + + + + + Left Center Descendant + + + + + Right Top + + + + + Right Bottom + + + + + Right Center Children + + + + + Right Center Descendants + + + + + + + Function Value + + + + + + Variable Type + + + + + Unknown + + + + + Organizational Chart Algorithm + + + + + Child Max + + + + + Child Preference + + + + + Bullets Enabled + + + + + Direction + + + + + Hierarchy Branch + + + + + Animate One + + + + + Animation Level + + + + + Resize Handles + + + + + + + Function Argument + + + + + + Output Shape Type + + + + + None + + + + + Connection + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-lockedCanvas.xsd b/tests/resources/schema/ecma-376/dml-lockedCanvas.xsd new file mode 100644 index 000000000..e464f7e5c --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-lockedCanvas.xsd @@ -0,0 +1,10 @@ + + + + + + + Locked Canvas Container + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-main.xsd b/tests/resources/schema/ecma-376/dml-main.xsd new file mode 100644 index 000000000..21361a8d3 --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-main.xsd @@ -0,0 +1,9464 @@ + + + + + + + + + + + + + + + + + + + + + Linked Relationship ID + + + + + + + + + + Linked Relationship ID + + + + + + + + + + Linked Relationship ID + + + + + + + Track + + + + + Time + + + + + + + + Audio Start Time + + + + + Audio End Time + + + + + + + + + + Audio from CD + + + + + Audio from WAV File + + + + + Audio from File + + + + + Video from File + + + + + QuickTime from File + + + + + + + + + + + + + + + Style Matrix Column Index + + + + + + Font Collection Index + + + + + Major Font + + + + + Minor Font + + + + + None + + + + + + + Theme Color Reference + + + + + Dark 1 + + + + + Light 1 + + + + + Dark 2 + + + + + Light 2 + + + + + Accent 1 + + + + + Accent 2 + + + + + Accent 3 + + + + + Accent 4 + + + + + Accent 5 + + + + + Accent 6 + + + + + Hyperlink + + + + + Followed Hyperlink + + + + + + + + + Dark 1 + + + + + Light 1 + + + + + Dark 2 + + + + + Light 2 + + + + + Accent 1 + + + + + Accent 2 + + + + + Accent 3 + + + + + Accent 4 + + + + + Accent 5 + + + + + Accent 6 + + + + + Hyperlink + + + + + Followed Hyperlink + + + + + + + Name + + + + + + + + + + Name + + + + + + + Script + + + + + Typeface + + + + + + + + Custom color + + + + + + + + + Latin Font + + + + + East Asian Font + + + + + Complex Script Font + + + + + Font + + + + + + + + + + + 3D Scene Properties + + + + + 3D properties + + + + + + + + + Major Font + + + + + Minor fonts + + + + + + + Name + + + + + + + + + + + + + + + + + + Effect Style + + + + + + + + + + + + + + Fill Style List + + + + + Line Style List + + + + + Effect Style List + + + + + Background Fill Style List + + + + + + Name + + + + + + + + + Font Scheme + + + + + Format Scheme + + + + + + + + + + + + + + + Uniform Resource Identifier + + + + + + Coordinate + + + + + + + + + Coordinate Point + + + + + + Positive Coordinate + + + + + + + + + Positive Coordinate Point + + + + + + + + Angle + + + + + + + Value + + + + + + Fixed Angle + + + + + + + + + Positive Fixed Angle + + + + + + + + + + Value + + + + + + Percentage + + + + + + + Value + + + + + + Positive Percentage + + + + + + + + + Value + + + + + + Fixed Percentage + + + + + + + + + + Value + + + + + + Positive Fixed Percentage + + + + + + + + + + Value + + + + + + + Numerator + + + + + Denominator + + + + + + + X-Axis Coordinate + + + + + Y-Axis Coordinate + + + + + + + Extent Length + + + + + Extent Width + + + + + + + + + + + + + Tint + + + + + Shade + + + + + Complement + + + + + Inverse + + + + + Gray + + + + + Alpha + + + + + Alpha Offset + + + + + Alpha Modulation + + + + + Hue + + + + + Hue Offset + + + + + Hue Modulate + + + + + Saturation + + + + + Saturation Offset + + + + + Saturation Modulation + + + + + Luminance + + + + + Luminance Offset + + + + + Luminance Modulation + + + + + Red + + + + + Red Offset + + + + + Red Modulation + + + + + Green + + + + + Green Offset + + + + + Green Modification + + + + + Blue + + + + + Blue Offset + + + + + Blue Modification + + + + + Gamma + + + + + Inverse Gamma + + + + + + + + + + + Red + + + + + Green + + + + + Blue + + + + + + Hex Binary of Length 3 + + + + + + + + + + + + Value + + + + + + + + + + Hue + + + + + Saturation + + + + + Luminance + + + + + + System Color Value + + + + + Scroll Bar System Color + + + + + Background System Color + + + + + Active Caption System Color + + + + + Inactive Caption System Color + + + + + Menu System Color + + + + + Window System Color + + + + + Window Frame System Color + + + + + Menu Text System Color + + + + + Window Text System Color + + + + + Caption Text System Color + + + + + Active Border System Color + + + + + Inactive Border System Color + + + + + Application Workspace System Color + + + + + Highlight System Color + + + + + Highlight Text System Color + + + + + Button Face System Color + + + + + Button Shadow System Color + + + + + Gray Text System Color + + + + + Button Text System Color + + + + + Inactive Caption Text System Color + + + + + Button Highlight System Color + + + + + 3D Dark System Color + + + + + 3D Light System Color + + + + + Info Text System Color + + + + + Info Back System Color + + + + + Hot Light System Color + + + + + Gradient Active Caption System Color + + + + + Gradient Inactive Caption System Color + + + + + Menu Highlight System Color + + + + + Menu Bar System Color + + + + + + + + + + + Value + + + + + Last Color + + + + + + Scheme Color + + + + + Background Color 1 + + + + + Text Color 1 + + + + + Background Color 2 + + + + + Text Color 2 + + + + + Accent Color 1 + + + + + Accent Color 2 + + + + + Accent Color 3 + + + + + Accent Color 4 + + + + + Accent Color 5 + + + + + Accent Color 6 + + + + + Hyperlink Color + + + + + Followed Hyperlink Color + + + + + Style Color + + + + + Dark Color 1 + + + + + Light Color 1 + + + + + Dark Color 2 + + + + + Light Color 2 + + + + + + + + + + + Value + + + + + + Preset Color Value + + + + + Alice Blue Preset Color + + + + + Antique White Preset Color + + + + + Aqua Preset Color + + + + + Aquamarine Preset Color + + + + + Azure Preset Color + + + + + Beige Preset Color + + + + + Bisque Preset Color + + + + + Black Preset Color + + + + + Blanched Almond Preset Color + + + + + Blue Preset Color + + + + + Blue Violet Preset Color + + + + + Brown Preset Color + + + + + Burly Wood Preset Color + + + + + Cadet Blue Preset Color + + + + + Chartreuse Preset Color + + + + + Chocolate Preset Color + + + + + Coral Preset Color + + + + + Cornflower Blue Preset Color + + + + + Cornsilk Preset Color + + + + + Crimson Preset Color + + + + + Cyan Preset Color + + + + + Dark Blue Preset Color + + + + + Dark Cyan Preset Color + + + + + Dark Goldenrod Preset Color + + + + + Dark Gray Preset Color + + + + + Dark Green Preset Color + + + + + Dark Khaki Preset Color + + + + + Dark Magenta Preset Color + + + + + Dark Olive Green Preset Color + + + + + Dark Orange Preset Color + + + + + Dark Orchid Preset Color + + + + + Dark Red Preset Color + + + + + Dark Salmon Preset Color + + + + + Dark Sea Green Preset Color + + + + + Dark Slate Blue Preset Color + + + + + Dark Slate Gray Preset Color + + + + + Dark Turquoise Preset Color + + + + + Dark Violet Preset Color + + + + + Deep Pink Preset Color + + + + + Deep Sky Blue Preset Color + + + + + Dim Gray Preset Color + + + + + Dodger Blue Preset Color + + + + + Firebrick Preset Color + + + + + Floral White Preset Color + + + + + Forest Green Preset Color + + + + + Fuchsia Preset Color + + + + + Gainsboro Preset Color + + + + + Ghost White Preset Color + + + + + Gold Preset Color + + + + + Goldenrod Preset Color + + + + + Gray Preset Color + + + + + Green Preset Color + + + + + Green Yellow Preset Color + + + + + Honeydew Preset Color + + + + + Hot Pink Preset Color + + + + + Indian Red Preset Color + + + + + Indigo Preset Color + + + + + Ivory Preset Color + + + + + Khaki Preset Color + + + + + Lavender Preset Color + + + + + Lavender Blush Preset Color + + + + + Lawn Green Preset Color + + + + + Lemon Chiffon Preset Color + + + + + Light Blue Preset Color + + + + + Light Coral Preset Color + + + + + Light Cyan Preset Color + + + + + Light Goldenrod Yellow Preset Color + + + + + Light Gray Preset Color + + + + + Light Green Preset Color + + + + + Light Pink Preset Color + + + + + Light Salmon Preset Color + + + + + Light Sea Green Preset Color + + + + + Light Sky Blue Preset Color + + + + + Light Slate Gray Preset Color + + + + + Light Steel Blue Preset Color + + + + + Light Yellow Preset Color + + + + + Lime Preset Color + + + + + Lime Green Preset Color + + + + + Linen Preset Color + + + + + Magenta Preset Color + + + + + Maroon Preset Color + + + + + Medium Aquamarine Preset Color + + + + + Medium Blue Preset Color + + + + + Medium Orchid Preset Color + + + + + Medium Purple Preset Color + + + + + Medium Sea Green Preset Color + + + + + Medium Slate Blue Preset Color + + + + + Medium Spring Green Preset Color + + + + + Medium Turquoise Preset Color + + + + + Medium Violet Red Preset Color + + + + + Midnight Blue Preset Color + + + + + Mint Cream Preset Color + + + + + Misty Rose Preset Color + + + + + Moccasin Preset Color + + + + + Navajo White Preset Color + + + + + Navy Preset Color + + + + + Old Lace Preset Color + + + + + Olive Preset Color + + + + + Olive Drab Preset Color + + + + + Orange Preset Color + + + + + Orange Red Preset Color + + + + + Orchid Preset Color + + + + + Pale Goldenrod Preset Color + + + + + Pale Green Preset Color + + + + + Pale Turquoise Preset Color + + + + + Pale Violet Red Preset Color + + + + + Papaya Whip Preset Color + + + + + Peach Puff Preset Color + + + + + Peru Preset Color + + + + + Pink Preset Color + + + + + Plum Preset Color + + + + + Powder Blue Preset Color + + + + + Purple Preset Color + + + + + Red Preset Color + + + + + Rosy Brown Preset Color + + + + + Royal Blue Preset Color + + + + + Saddle Brown Preset Color + + + + + Salmon Preset Color + + + + + Sandy Brown Preset Color + + + + + Sea Green Preset Color + + + + + Sea Shell Preset Color + + + + + Sienna Preset Color + + + + + Silver Preset Color + + + + + Sky Blue Preset Color + + + + + Slate Blue Preset Color + + + + + Slate Gray Preset Color + + + + + Snow Preset Color + + + + + Spring Green Preset Color + + + + + Steel Blue Preset Color + + + + + Tan Preset Color + + + + + Teal Preset Color + + + + + Thistle Preset Color + + + + + Tomato Preset Color + + + + + Turquoise Preset Color + + + + + Violet Preset Color + + + + + Wheat Preset Color + + + + + White Preset Color + + + + + White Smoke Preset Color + + + + + Yellow Preset Color + + + + + Yellow Green Preset Color + + + + + + + + + + + Value + + + + + + + + Extension + + + + + + + + + + + + + + Horizontal Ratio + + + + + Vertical Ratio + + + + + + + + + Offset + + + + + Extents + + + + + + Rotation + + + + + Horizontal Flip + + + + + Vertical Flip + + + + + + + + Offset + + + + + Extents + + + + + Child Offset + + + + + Child Extents + + + + + + Rotation + + + + + Horizontal Flip + + + + + Vertical Flip + + + + + + + X-Coordinate in 3D + + + + + Y-Coordinate in 3D + + + + + Z-Coordinate in 3D + + + + + + + Distance along X-axis in 3D + + + + + Distance along Y-axis in 3D + + + + + Distance along Z-axis in 3D + + + + + + + Latitude + + + + + Longitude + + + + + Revolution + + + + + + + Left Offset + + + + + Top Offset + + + + + Right Offset + + + + + Bottom Offset + + + + + + Rectangle Alignments + + + + + Rectangle Alignment Enum ( Top Left ) + + + + + Rectangle Alignment Enum ( Top ) + + + + + Rectangle Alignment Enum ( Top Right ) + + + + + Rectangle Alignment Enum ( Left ) + + + + + Rectangle Alignment Enum ( Center ) + + + + + Rectangle Alignment Enum ( Right ) + + + + + Rectangle Alignment Enum ( Bottom Left ) + + + + + Rectangle Alignment Enum ( Bottom ) + + + + + Rectangle Alignment Enum ( Bottom Right ) + + + + + + + GUID Method + + + + + + + + + + RGB Color Model - Percentage Variant + + + + + RGB Color Model - Hex Variant + + + + + Hue, Saturation, Luminance Color Model + + + + + System Color + + + + + Scheme Color + + + + + Preset Color + + + + + + + + + + + + + + + + + Black and White Mode + + + + + Color + + + + + Automatic + + + + + Gray + + + + + Light Gray + + + + + Inverse Gray + + + + + Gray and White + + + + + Black and Gray + + + + + Black and White + + + + + Black + + + + + White + + + + + Hidden + + + + + + + + Embedded Picture Reference + + + + + Linked Picture Reference + + + + + + + Embedded Audio File Relationship ID + + + + + Sound Name + + + + + Recognized Built-In Sound + + + + + + + + Hyperlink Sound + + + + + + + Drawing Object Hyperlink Target + + + + + Invalid URL + + + + + Action Setting + + + + + Target Frame + + + + + Hyperlink Tooltip + + + + + Add Hyperlink to Page History + + + + + Highlight Click + + + + + End Sounds + + + + + + Drawing Element ID + + + + + + + + + + + Disallow Shape Grouping + + + + + Disallow Shape Selection + + + + + Disallow Shape Rotation + + + + + Disallow Aspect Ratio Change + + + + + Disallow Shape Movement + + + + + Disallow Shape Resize + + + + + Disallow Shape Point Editing + + + + + Disallow Showing Adjust Handles + + + + + Disallow Arrowhead Changes + + + + + Disallow Shape Type Change + + + + + + + + + + + + + + + + + Disallow Shape Text Editing + + + + + + + + + + + Disallow Crop Changes + + + + + + + + + + Disallow Shape Grouping + + + + + Disallow Shape Ungrouping + + + + + Disallow Shape Selection + + + + + Disallow Shape Rotation + + + + + Disallow Aspect Ratio Change + + + + + Disallow Moving Shape + + + + + Disallow Shape Resizing + + + + + + + + + + Disallow Shape Grouping + + + + + Disallow Selection of Child Shapes + + + + + Disallow Shape Selection + + + + + Disallow Aspect Ratio Change + + + + + Disallow Shape Movement + + + + + Disallow Shape Resize + + + + + + + + Drawing Element On Click Hyperlink + + + + + Hyperlink for Hover + + + + + + + Unique Identifier + + + + + Name + + + + + Alternative Text for Object + + + + + Hidden + + + + + + + + Shape Locks + + + + + + + Text Box + + + + + + + + Connection Shape Locks + + + + + Connection Start + + + + + Connection End + + + + + + + + + + Picture Locks + + + + + + + Relative Resize Preferred + + + + + + + + Group Shape Locks + + + + + + + + + + Graphic Frame Locks + + + + + + + + + + + + + + Uniform Resource Identifier + + + + + + + + Graphic Object Data + + + + + + + Graphic Object + + + + + + + + Chart Animation Build Step + + + + + Category + + + + + Category Points + + + + + Series + + + + + Series Points + + + + + All Points + + + + + Grid and Legend + + + + + + + Diagram Animation Build Steps + + + + + Shape + + + + + Background + + + + + + + + Identifier + + + + + Animation Build Step + + + + + + + Series Index + + + + + Category Index + + + + + Animation Build Step + + + + + + + + Diagram to Animate + + + + + Chart to Animate + + + + + + + Animation Build Type + + + + + Animate At Once + + + + + + + Diagram only Animation Types + + + + + Elements One-by-One + + + + + Level One-by-One + + + + + Each Level at Once + + + + + + + Diagram Animation Build Type + + + + + + + Build + + + + + Reverse Animation + + + + + + Chart only Animation Types + + + + + Series + + + + + Catefory + + + + + Series Element + + + + + Category Element + + + + + + + Chart Animation Build Type + + + + + + + Build + + + + + Animate Background + + + + + + + + Build Diagram + + + + + Build Chart + + + + + + + + + + + + + + + + + + + Outline + + + + + + + + + + + + + + + + + + Shape Text Body + + + + + + Use Shape Text Rectangle + + + + + + + + + + + + + Non-Visual Shape Drawing Properties + + + + + + + + + Non-Visual Properties for a Shape + + + + + Visual Properties + + + + + Text Shape + + + + + Style + + + + + + + + + + Non-Visual Drawing Properties + + + + + Non-Visual Connector Shape Drawing Properties + + + + + + + + + Non-Visual Properties for a Connection Shape + + + + + Visual Properties + + + + + Shape Style + + + + + + + + + + + Non-Visual Picture Drawing Properties + + + + + + + + + Non-Visual Properties for a Picture + + + + + Picture Fill + + + + + Shape Properties + + + + + + + + + + + + Non-Visual Graphic Frame Drawing Properties + + + + + + + + + Non-Visual Properties for a Graphic Frame + + + + + + + + + + + + + Non-Visual Group Shape Drawing Properties + + + + + + + + + Non-Visual Properties for a Group Shape + + + + + Visual Group Shape Properties + + + + + + Text shape + + + + + Shape + + + + + Connection Shape + + + + + Picture + + + + + Graphic Frame + + + + + Group shape + + + + + + + + + + + + Preset Camera Type + + + + + Legacy Oblique Top Left + + + + + Legacy Oblique Top + + + + + Legacy Oblique Top Right + + + + + Legacy Oblique Left + + + + + Legacy Oblique Front + + + + + Legacy Oblique Right + + + + + Legacy Oblique Bottom Left + + + + + Legacy Oblique Bottom + + + + + Legacy Oblique Bottom Right + + + + + Legacy Perspective Top Left + + + + + Legacy Perspective Top + + + + + Legacy Perspective Top Right + + + + + Legacy Perspective Left + + + + + Legacy Perspective Front + + + + + Legacy Perspective Right + + + + + Legacy Perspective Bottom Left + + + + + Legacy Perspective Bottom + + + + + Legacy Perspective Bottom Right + + + + + Orthographic Front + + + + + Isometric Top Up + + + + + Isometric Top Down + + + + + Isometric Bottom Up + + + + + Isometric Bottom Down + + + + + Isometric Left Up + + + + + Isometric Left Down + + + + + Isometric Right Up + + + + + Isometric Right Down + + + + + Isometric Off Axis 1 Left + + + + + Isometric Off Axis 1 Right + + + + + Isometric Off Axis 1 Top + + + + + Isometric Off Axis 2 Left + + + + + Isometric Off Axis 2 Right + + + + + Isometric Off Axis 2 Top + + + + + Isometric Off Axis 3 Left + + + + + Isometric Off Axis 3 Right + + + + + Isometric Off Axis 3 Bottom + + + + + Isometric Off Axis 4 Left + + + + + Isometric Off Axis 4 Right + + + + + Isometric Off Axis 4 Bottom + + + + + Oblique Top Left + + + + + Oblique Top + + + + + Oblique Top Right + + + + + Oblique Left + + + + + Oblique Right + + + + + Oblique Bottom Left + + + + + Oblique Bottom + + + + + Oblique Bottom Right + + + + + Perspective Front + + + + + Perspective Left + + + + + Perspective Right + + + + + Orthographic Above + + + + + Perspective Below + + + + + Perspective Above Left Facing + + + + + Perspective Above Right Facing + + + + + Perspective Contrasting Left Facing + + + + + Perspective Contrasting Right Facing + + + + + Perspective Heroic Left Facing + + + + + Perspective Heroic Right Facing + + + + + Perspective Heroic Extreme Left Facing + + + + + Perspective Heroic Extreme Right Facing + + + + + Perspective Relaxed + + + + + Perspective Relaxed Moderately + + + + + + + Field of View Angle + + + + + + + + + + + Rotation + + + + + + Preset Camera Type + + + + + Field of View + + + + + Zoom + + + + + + + + + Light Rig Direction + + + + + Top Left + + + + + Top + + + + + Top Right + + + + + Left + + + + + Right + + + + + Bottom Left + + + + + Bottom + + + + + Bottom Right + + + + + + + Light Rig Type + + + + + Legacy Flat 1 + + + + + Legacy Flat 2 + + + + + Legacy Flat 3 + + + + + Legacy Flat 4 + + + + + Legacy Normal 1 + + + + + Legacy Normal 2 + + + + + Legacy Normal 3 + + + + + Legacy Normal 4 + + + + + Legacy Harsh 1 + + + + + Legacy Harsh 2 + + + + + Legacy Harsh 3 + + + + + Legacy Harsh 4 + + + + + Three Point + + + + + Light Rig Enum ( Balanced ) + + + + + Soft + + + + + Harsh + + + + + Flood + + + + + Contrasting + + + + + Morning + + + + + Sunrise + + + + + Sunset + + + + + Chilly + + + + + Freezing + + + + + Flat + + + + + Two Point + + + + + Glow + + + + + Bright Room + + + + + + + + + Rotation + + + + + + Rig Preset + + + + + Direction + + + + + + + + + + + + + Camera + + + + + Light Rig + + + + + Backdrop Plane + + + + + + + + + + + + + Anchor Point + + + + + Normal + + + + + Up Vector + + + + + + + + + + + Bevel Presets + + + + + Relaxed Inset + + + + + Circle + + + + + Slope + + + + + Cross + + + + + Angle + + + + + Soft Round + + + + + Convex + + + + + Cool Slant + + + + + Divot + + + + + Riblet + + + + + Hard Edge + + + + + Art Deco + + + + + + + + Width + + + + + Height + + + + + Preset Bevel + + + + + + Preset Material Type + + + + + Legacy Matte + + + + + Legacy Plastic + + + + + Legacy Metal + + + + + Legacy Wireframe + + + + + Matte + + + + + Plastic + + + + + Metal + + + + + Warm Matte + + + + + Translucent Powder + + + + + Powder + + + + + Dark Edge + + + + + Soft Edge + + + + + Clear + + + + + Flat + + + + + Soft Metal + + + + + + + + + Top Bevel + + + + + Bottom Bevel + + + + + Extrusion Color + + + + + Contour Color + + + + + + + Shape Depth + + + + + Extrusion Height + + + + + Contour Width + + + + + Preset Material Type + + + + + + + Z Coordinate + + + + + + + + Apply 3D shape properties + + + + + No text in 3D scene + + + + + + + + + + + Threshold + + + + + + + + + + + + + + Amount + + + + + + + Radius + + + + + + + Alpha + + + + + + + Threshold + + + + + + + Radius + + + + + Grow Bounds + + + + + + + + Change Color From + + + + + Change Color To + + + + + + Consider Alpha Values + + + + + + + + + + + + + + + + + + + + Radius + + + + + + + + Hue + + + + + Saturation + + + + + Luminance + + + + + + + + + + Blur Radius + + + + + Distance + + + + + Direction + + + + + + + Brightness + + + + + Contrast + + + + + + + + + + Blur Radius + + + + + Shadow Offset Distance + + + + + Shadow Direction + + + + + Horizontal Scaling Factor + + + + + Vertical Scaling Factor + + + + + Horizontal Skew + + + + + Vertical Skew + + + + + Shadow Alignment + + + + + Rotate With Shape + + + + + + Preset Shadow Type + + + + + Top Left Drop Shadow + + + + + Top Right Drop Shadow + + + + + Back Left Perspective Shadow + + + + + Back Right Perspective Shadow + + + + + Bottom Left Drop Shadow + + + + + Bottom Right Drop Shadow + + + + + Front Left Perspective Shadow + + + + + Front Right Perspective Shadow + + + + + Top Left Small Drop Shadow + + + + + Top Left Large Drop Shadow + + + + + Back Left Long Perspective Shadow + + + + + Back Right Long Perspective Shadow + + + + + Top Left Double Drop Shadow + + + + + Bottom Right Small Drop Shadow + + + + + Front Left Long Perspective Shadow + + + + + Front Right LongPerspective Shadow + + + + + 3D Outer Box Shadow + + + + + 3D Inner Box Shadow + + + + + Back Center Perspective Shadow + + + + + Front Bottom Shadow + + + + + + + + + + + Preset Shadow + + + + + Distance + + + + + Direction + + + + + + + Blur Radius + + + + + Start Opacity + + + + + Start Position + + + + + End Alpha + + + + + End Position + + + + + Distance + + + + + Direction + + + + + Fade Direction + + + + + Horizontal Ratio + + + + + Vertical Ratio + + + + + Horizontal Skew + + + + + Vertical Skew + + + + + Shadow Alignment + + + + + Rotate With Shape + + + + + + + Offset X + + + + + Offset Y + + + + + + + Radius + + + + + + + Hue + + + + + Amount + + + + + + + Horizontal Ratio + + + + + Vertical Ratio + + + + + Horizontal Skew + + + + + Vertical Skew + + + + + Horizontal Shift + + + + + Vertical Shift + + + + + + + + + + + + + Angle + + + + + Scaled + + + + + + Path Shade Type + + + + + Shape + + + + + Circle + + + + + Rectangle + + + + + + + + + Fill To Rectangle + + + + + + Gradient Fill Path + + + + + + + + Linear Gradient Fill + + + + + Path Gradient + + + + + + + Tile Flip Mode + + + + + None + + + + + Horizontal + + + + + Vertical + + + + + Horizontal and Vertical + + + + + + + + + + + Position + + + + + + + + Gradient stops + + + + + + + + + Gradient Stop List + + + + + + Tile Rectangle + + + + + + Tile Flip + + + + + Rotate With Shape + + + + + + + Horizontal Offset + + + + + Vertical Offset + + + + + Horizontal Ratio + + + + + Vertical Ratio + + + + + Tile Flipping + + + + + Alignment + + + + + + + + Fill Rectangle + + + + + + + + + Tile + + + + + Stretch + + + + + + + Blip Compression Type + + + + + Email Compression + + + + + Screen Viewing Compression + + + + + Printing Compression + + + + + High Quality Printing Compression + + + + + No Compression + + + + + + + + + + Alpha Bi-Level Effect + + + + + + + + + Alpha Modulate Fixed Effect + + + + + + Bi-Level (Black/White) Effect + + + + + + + Solid Color Replacement + + + + + + + + + Luminance Effect + + + + + Tint Effect + + + + + + + + + Compression State + + + + + + + + + Source Rectangle + + + + + + + DPI Setting + + + + + Rotate With Shape + + + + + + Preset Pattern Value + + + + + 5% + + + + + 10% + + + + + 20% + + + + + 25% + + + + + 30% + + + + + 40% + + + + + 50% + + + + + 60% + + + + + 70% + + + + + 75% + + + + + 80% + + + + + 90% + + + + + Horizontal + + + + + Vertical + + + + + Light Horizontal + + + + + Light Vertical + + + + + Dark Horizontal + + + + + Dark Vertical + + + + + Narrow Horizontal + + + + + Narrow Vertical + + + + + Dashed Horizontal + + + + + Dashed Vertical + + + + + Cross + + + + + Downward Diagonal + + + + + Upward Diagonal + + + + + Light Downward Diagonal + + + + + Light Upward Diagonal + + + + + Dark Downward Diagonal + + + + + Dark Upward Diagonal + + + + + Wide Downward Diagonal + + + + + Wide Upward Diagonal + + + + + Dashed Downward Diagonal + + + + + Dashed Upward DIagonal + + + + + Diagonal Cross + + + + + Small Checker Board + + + + + Large Checker Board + + + + + Small Grid + + + + + Large Grid + + + + + Dotted Grid + + + + + Small Confetti + + + + + Large Confetti + + + + + Horizontal Brick + + + + + Diagonal Brick + + + + + Solid Diamond + + + + + Open Diamond + + + + + Dotted Diamond + + + + + Plaid + + + + + Sphere + + + + + Weave + + + + + Divot + + + + + Shingle + + + + + Wave + + + + + Trellis + + + + + Zig Zag + + + + + + + + + Foreground color + + + + + Background color + + + + + + Preset Pattern + + + + + + + + + + + + + Pattern Fill + + + + + Group Fill + + + + + + + + + + + + + + + + + Blend Mode + + + + + Overlay + + + + + Multiply + + + + + Screen + + + + + Darken + + + + + Lighten + + + + + + + + + + + Blend + + + + + + + Reference + + + + + + + + Effect Container + + + + + Effect + + + + + + Alpha Ceiling Effect + + + + + Alpha Floor Effect + + + + + Alpha Inverse Effect + + + + + Alpha Modulate Effect + + + + + + Alpha Inset/Outset Effect + + + + + Alpha Replace Effect + + + + + + Blend Effect + + + + + + Color Change Effect + + + + + + Duotone Effect + + + + + Fill + + + + + Fill Overlay Effect + + + + + Glow Effect + + + + + Gray Scale Effect + + + + + Hue Saturation Luminance Effect + + + + + Inner Shadow Effect + + + + + Luminance + + + + + Outer Shadow Effect + + + + + Preset Shadow + + + + + Reflection Effect + + + + + Relative Offset Effect + + + + + Soft Edge Effect + + + + + + Transform Effect + + + + + + + Effect Container Type + + + + + Sibling + + + + + Tree + + + + + + + + + Effect Container Type + + + + + Name + + + + + + + + + + + + + Effect to blend + + + + + + Blend Mode + + + + + + + + Blur Effect + + + + + + + + + + + + + + + + Effect Container + + + + + Effect Container + + + + + + + + + + + + + + + + Preset Shape Types + + + + + Line Shape + + + + + Line Inverse Shape + + + + + Triangle Shape + + + + + Right Triangle Shape + + + + + Rectangle Shape + + + + + Diamond Shape + + + + + Parallelogram Shape + + + + + Trapezoid Shape + + + + + Non-Isosceles Trapezoid Shape + + + + + Pentagon Shape + + + + + Hexagon Shape + + + + + Heptagon Shape + + + + + Octagon Shape + + + + + Decagon Shape + + + + + Dodecagon Shape + + + + + Four Pointed Star Shape + + + + + Five Pointed Star Shape + + + + + Six Pointed Star Shape + + + + + Seven Pointed Star Shape + + + + + Eight Pointed Star Shape + + + + + Ten Pointed Star Shape + + + + + Twelve Pointed Star Shape + + + + + Sixteen Pointed Star Shape + + + + + Twenty Four Pointed Star Shape + + + + + Thirty Two Pointed Star Shape + + + + + Round Corner Rectangle Shape + + + + + One Round Corner Rectangle Shape + + + + + Two Same-side Round Corner Rectangle Shape + + + + + Two Diagonal Round Corner Rectangle Shape + + + + + One Snip One Round Corner Rectangle Shape + + + + + One Snip Corner Rectangle Shape + + + + + Two Same-side Snip Corner Rectangle Shape + + + + + Two Diagonal Snip Corner Rectangle Shape + + + + + Plaque Shape + + + + + Ellipse Shape + + + + + Teardrop Shape + + + + + Home Plate Shape + + + + + Chevron Shape + + + + + Pie Wedge Shape + + + + + Pie Shape + + + + + Block Arc Shape + + + + + Donut Shape + + + + + No Smoking Shape + + + + + Right Arrow Shape + + + + + Left Arrow Shape + + + + + Up Arrow Shape + + + + + Down Arrow Shape + + + + + Striped Right Arrow Shape + + + + + Notched Right Arrow Shape + + + + + Bent Up Arrow Shape + + + + + Left Right Arrow Shape + + + + + Up Down Arrow Shape + + + + + Left Up Arrow Shape + + + + + Left Right Up Arrow Shape + + + + + Quad-Arrow Shape + + + + + Callout Left Arrow Shape + + + + + Callout Right Arrow Shape + + + + + Callout Up Arrow Shape + + + + + Callout Down Arrow Shape + + + + + Callout Left Right Arrow Shape + + + + + Callout Up Down Arrow Shape + + + + + Callout Quad-Arrow Shape + + + + + Bent Arrow Shape + + + + + U-Turn Arrow Shape + + + + + Circular Arrow Shape + + + + + Left Circular Arrow Shape + + + + + Left Right Circular Arrow Shape + + + + + Curved Right Arrow Shape + + + + + Curved Left Arrow Shape + + + + + Curved Up Arrow Shape + + + + + Curved Down Arrow Shape + + + + + Swoosh Arrow Shape + + + + + Cube Shape + + + + + Can Shape + + + + + Lightning Bolt Shape + + + + + Heart Shape + + + + + Sun Shape + + + + + Moon Shape + + + + + Smiley Face Shape + + + + + Irregular Seal 1 Shape + + + + + Irregular Seal 2 Shape + + + + + Folded Corner Shape + + + + + Bevel Shape + + + + + Frame Shape + + + + + Half Frame Shape + + + + + Corner Shape + + + + + Diagonal Stripe Shape + + + + + Chord Shape + + + + + Curved Arc Shape + + + + + Left Bracket Shape + + + + + Right Bracket Shape + + + + + Left Brace Shape + + + + + Right Brace Shape + + + + + Bracket Pair Shape + + + + + Brace Pair Shape + + + + + Straight Connector 1 Shape + + + + + Bent Connector 2 Shape + + + + + Bent Connector 3 Shape + + + + + Bent Connector 4 Shape + + + + + Bent Connector 5 Shape + + + + + Curved Connector 2 Shape + + + + + Curved Connector 3 Shape + + + + + Curved Connector 4 Shape + + + + + Curved Connector 5 Shape + + + + + Callout 1 Shape + + + + + Callout 2 Shape + + + + + Callout 3 Shape + + + + + Callout 1 Shape + + + + + Callout 2 Shape + + + + + Callout 3 Shape + + + + + Callout 1 with Border Shape + + + + + Callout 2 with Border Shape + + + + + Callout 3 with Border Shape + + + + + Callout 1 with Border and Accent Shape + + + + + Callout 2 with Border and Accent Shape + + + + + Callout 3 with Border and Accent Shape + + + + + Callout Wedge Rectangle Shape + + + + + Callout Wedge Round Rectangle Shape + + + + + Callout Wedge Ellipse Shape + + + + + Callout Cloud Shape + + + + + Cloud Shape + + + + + Ribbon Shape + + + + + Ribbon 2 Shape + + + + + Ellipse Ribbon Shape + + + + + Ellipse Ribbon 2 Shape + + + + + Left Right Ribbon Shape + + + + + Vertical Scroll Shape + + + + + Horizontal Scroll Shape + + + + + Wave Shape + + + + + Double Wave Shape + + + + + Plus Shape + + + + + Process Flow Shape + + + + + Decision Flow Shape + + + + + Input Output Flow Shape + + + + + Predefined Process Flow Shape + + + + + Internal Storage Flow Shape + + + + + Document Flow Shape + + + + + Multi-Document Flow Shape + + + + + Terminator Flow Shape + + + + + Preparation Flow Shape + + + + + Manual Input Flow Shape + + + + + Manual Operation Flow Shape + + + + + Connector Flow Shape + + + + + Punched Card Flow Shape + + + + + Punched Tape Flow Shape + + + + + Summing Junction Flow Shape + + + + + Or Flow Shape + + + + + Collate Flow Shape + + + + + Sort Flow Shape + + + + + Extract Flow Shape + + + + + Merge Flow Shape + + + + + Offline Storage Flow Shape + + + + + Online Storage Flow Shape + + + + + Magnetic Tape Flow Shape + + + + + Magnetic Disk Flow Shape + + + + + Magnetic Drum Flow Shape + + + + + Display Flow Shape + + + + + Delay Flow Shape + + + + + Alternate Process Flow Shape + + + + + Off-Page Connector Flow Shape + + + + + Blank Button Shape + + + + + Home Button Shape + + + + + Help Button Shape + + + + + Information Button Shape + + + + + Forward or Next Button Shape + + + + + Back or Previous Button Shape + + + + + End Button Shape + + + + + Beginning Button Shape + + + + + Return Button Shape + + + + + Document Button Shape + + + + + Sound Button Shape + + + + + Movie Button Shape + + + + + Gear 6 Shape + + + + + Gear 9 Shape + + + + + Funnel Shape + + + + + Plus Math Shape + + + + + Minus Math Shape + + + + + Multiply Math Shape + + + + + Divide Math Shape + + + + + Equal Math Shape + + + + + Not Equal Math Shape + + + + + Corner Tabs Shape + + + + + Square Tabs Shape + + + + + Plaque Tabs Shape + + + + + Chart X Shape + + + + + Chart Star Shape + + + + + Chart Plus Shape + + + + + + + Preset Text Shape Types + + + + + No Text Shape + + + + + Plain Text Shape + + + + + Stop Sign Text Shape + + + + + Triangle Text Shape + + + + + Inverted Triangle Text Shape + + + + + Chevron Text Shape + + + + + Inverted Chevron Text Shape + + + + + Inside Ring Text Shape + + + + + Outside Ring Text Shape + + + + + Upward Arch Text Shape + + + + + Downward Arch Text Shape + + + + + Circle Text Shape + + + + + Button Text Shape + + + + + Upward Pour Arch Text Shape + + + + + Downward Pour Arch Text Shape + + + + + Circle Pour Text Shape + + + + + Button Pour Text Shape + + + + + Upward Curve Text Shape + + + + + Downward Curve Text Shape + + + + + Upward Can Text Shape + + + + + Downward Can Text Shape + + + + + Wave 1 Text Shape + + + + + Wave 2 Text Shape + + + + + Double Wave 1 Text Shape + + + + + Wave 4 Text Shape + + + + + Inflate Text Shape + + + + + Deflate Text Shape + + + + + Bottom Inflate Text Shape + + + + + Bottom Deflate Text Shape + + + + + Top Inflate Text Shape + + + + + Top Deflate Text Shape + + + + + Deflate-Inflate Text Shape + + + + + Deflate-Inflate-Deflate Text Shape + + + + + Right Fade Text Shape + + + + + Left Fade Text Shape + + + + + Upward Fade Text Shape + + + + + Downward Fade Text Shape + + + + + Upward Slant Text Shape + + + + + Downward Slant Text Shape + + + + + Upward Cascade Text Shape + + + + + Downward Cascade Text Shape + + + + + + + Geometry Guide Name Properties + + + + + + Geometry Guide Formula Properties + + + + + + + Shape Guide Name + + + + + Shape Guide Formula + + + + + + + + Shape Guide + + + + + + + Adjustable Coordinate Methods + + + + + + Adjustable Angle Methods + + + + + + + X-Coordinate + + + + + Y-Coordinate + + + + + + + Left + + + + + Top + + + + + Right + + + + + Bottom Position + + + + + + + + Position + + + + + + Horizontal Adjustment Guide + + + + + Minimum Horizontal Adjustment + + + + + Maximum Horizontal Adjustment + + + + + Vertical Adjustment Guide + + + + + Minimum Vertical Adjustment + + + + + Maximum Vertical Adjustment + + + + + + + + Shape Position Coordinate + + + + + + Radial Adjustment Guide + + + + + Minimum Radial Adjustment + + + + + Maximum Radial Adjustment + + + + + Angle Adjustment Guide + + + + + Minimum Angle Adjustment + + + + + Maximum Angle Adjustment + + + + + + + + Position + + + + + + Connection Site Angle + + + + + + + + XY Adjust Handle + + + + + Polar Adjust Handle + + + + + + + + + Shape Connection Site + + + + + + + + Identifier + + + + + Index + + + + + + + + Move end point + + + + + + + + + Line end point + + + + + + + + Shape Arc Width Radius + + + + + Shape Arc Height Radius + + + + + Shape Arc Start Angle + + + + + Shape Arc Swing Angle + + + + + + + + Shape Path Point + + + + + + + + + Control points and end point + + + + + + + + Path Fill Mode + + + + + No Path Fill + + + + + Normal Path Fill + + + + + Lighten Path Fill + + + + + Lighten Path Fill Less + + + + + Darken Path Fill + + + + + Darken Path Fill Less + + + + + + + + + Close Shape Path + + + + + Move Path To + + + + + Draw Line To + + + + + Draw Arc To + + + + + Draw Quadratic Bezier Curve To + + + + + Draw Cubic Bezier Curve To + + + + + + Path Width + + + + + Path Height + + + + + Path Fill + + + + + Path Stroke + + + + + 3D Extrusion Allowed + + + + + + + + Shape Path + + + + + + + + + List of Shape Adjust Values + + + + + + Preset Shape + + + + + + + + Adjust Value List + + + + + + Preset Warp Shape + + + + + + + + Adjust Value List + + + + + List of Shape Guides + + + + + List of Shape Adjust Handles + + + + + List of Shape Connection Sites + + + + + Shape Text Rectangle + + + + + List of Shape Paths + + + + + + + + + Custom geometry + + + + + Preset geometry + + + + + + + + + Custom Geometry + + + + + Preset Text Warp + + + + + + + + + + Line End Type + + + + + None + + + + + Triangle Arrow Head + + + + + Stealth Arrow + + + + + Diamond + + + + + Oval + + + + + Arrow Head + + + + + + + Line End Width + + + + + Small + + + + + Medium + + + + + Large + + + + + + + Line End Length + + + + + Small + + + + + Medium + + + + + Large + + + + + + + + Line Head/End Type + + + + + Width of Head/End + + + + + Length of Head/End + + + + + + + + No Fill + + + + + Solid Fill + + + + + Gradient Fill + + + + + + + + + + + Miter Join Limit + + + + + + + + Round Line Join + + + + + Line Join Bevel + + + + + Miter Line Join + + + + + + + Preset Line Dash Value + + + + + Solid + + + + + Dot + + + + + Dash + + + + + Large Dash + + + + + Dash Dot + + + + + Large Dash Dot + + + + + Large Dash Dot Dot + + + + + System Dash + + + + + System Dot + + + + + System Dash Dot + + + + + System Dash Dot Dot + + + + + + + + Value + + + + + + + Dash Length + + + + + Space Length + + + + + + + + Dash Stop + + + + + + + + + Preset Dash + + + + + Custom Dash + + + + + + + End Line Cap + + + + + Round Line Cap + + + + + Square Line Cap + + + + + Flat Line Cap + + + + + + + Line Width + + + + + + + + + Alignment Type + + + + + Center Alignment + + + + + Inset Alignment + + + + + + + Compound Line Type + + + + + Single Line + + + + + Double Lines + + + + + Thick Thin Double Lines + + + + + Thin Thick Double Lines + + + + + Thin Thick Thin Triple Lines + + + + + + + + + + + + Line Head/End Style + + + + + Tail line end style + + + + + + + Line Width + + + + + Line Ending Cap Type + + + + + Compound Line Type + + + + + Stroke Alignment + + + + + + + + + Shape ID + + + + + + + + + + + + + + + 2D Transform for Individual Objects + + + + + + + + + + + + + Black and White Mode + + + + + + + + 2D Transform for Grouped Objects + + + + + + + + + + Black and White Mode + + + + + + + + + + + + + Style Matrix Index + + + + + + + + + + Identifier + + + + + + + + + + + Font Reference + + + + + + + + + + + + + + Visual Properties + + + + + + + + + + + + + Shape Default + + + + + Line Default + + + + + Text Default + + + + + + + + + + + + + + + + + Background 1 + + + + + Text 1 + + + + + Background 2 + + + + + Text 2 + + + + + Accent 1 + + + + + Accent 2 + + + + + Accent 3 + + + + + Accent 4 + + + + + Accent 5 + + + + + Accent 6 + + + + + Hyperlink + + + + + Followed Hyperlink + + + + + + + + + Master Color Mapping + + + + + Override Color Mapping + + + + + + + + + + + + + + + + Extra Color Scheme + + + + + + + + + Theme Elements + + + + + Object Defaults + + + + + Extra Color Scheme List + + + + + Custom Color List + + + + + + + Name + + + + + + + + Color Scheme + + + + + + + + + + + + Color Map + + + + + + + Theme + + + + + Theme Override + + + + + Theme Manager + + + + + + + + + + + + + Left Border Line Properties + + + + + Right Border Line Properties + + + + + Top Border Line Properties + + + + + Bottom Border Line Properties + + + + + Top-Left to Bottom-Right Border Line Properties + + + + + Bottom-Left to Top-Right Border Line Properties + + + + + Cell 3-D + + + + + + + + Left Margin + + + + + Right Margin + + + + + Top Margin + + + + + Bottom Margin + + + + + Text Direction + + + + + Anchor + + + + + Anchor Center + + + + + Horizontal Overflow + + + + + + + + + + Width + + + + + + + + Table Grid Column + + + + + + + + + Text Body + + + + + Table Cell Properties + + + + + + + Row Span + + + + + Grid Span + + + + + Horizontal Merge + + + + + Vertical Merge + + + + + + + + Table Cell + + + + + + + Height + + + + + + + + + + + Table Style + + + + + Table Style ID + + + + + + Extension List + + + + + + Right-to-Left + + + + + First Row + + + + + First Column + + + + + Last Row + + + + + Last Column + + + + + Banded Rows + + + + + Banded Columns + + + + + + + + Table Properties + + + + + Table Grid + + + + + Table Row + + + + + + + Table + + + + + + + + + + + + + + Bevel + + + + + Light Rig + + + + + + + Preset Material + + + + + + + + Fill + + + + + Fill Reference + + + + + + + + + + Line Reference + + + + + + + + + Effect + + + + + Effect Reference + + + + + + + + + Font + + + + + + + + On/Off Style Type + + + + + On + + + + + Off + + + + + Default + + + + + + + + + + + + + Bold + + + + + Italic + + + + + + + + Left Border + + + + + Right Border + + + + + Top Border + + + + + Bottom Border + + + + + Inside Horizontal Border + + + + + Inside Vertical Border + + + + + Top Left to Bottom Right Border + + + + + Top Right to Bottom Left Border + + + + + + + + + + + + + + + + Table Cell Borders + + + + + + + + + + + Table Cell Text Style + + + + + Table Cell Style + + + + + + + + + Table Background + + + + + Whole Table + + + + + Band 1 Horizontal + + + + + Band 2 Horizontal + + + + + Band 1 Vertical + + + + + Band 2 Vertical + + + + + Last Column + + + + + First Column + + + + + Last Row + + + + + Southeast Cell + + + + + Southwest Cell + + + + + First Row + + + + + Northeast Cell + + + + + Northwest Cell + + + + + + + Style ID + + + + + Name + + + + + + + + Table Style + + + + + + Default + + + + + + Table Style List + + + + + + + + + + + + Text Paragraph Properties + + + + + + End Paragraph Run Properties + + + + + + + Text Anchoring Types + + + + + Text Anchoring Type Enum ( Top ) + + + + + Text Anchor Enum ( Center ) + + + + + Text Anchor Enum ( Bottom ) + + + + + Text Anchor Enum ( Justified ) + + + + + Text Anchor Enum ( Distributed ) + + + + + + + Text Vertical Overflow + + + + + Text Overflow Enum ( Overflow ) + + + + + Text Overflow Enum ( Ellipsis ) + + + + + Text Overflow Enum ( Clip ) + + + + + + + Text Horizontal Overflow Types + + + + + Text Horizontal Overflow Enum ( Overflow ) + + + + + Text Horizontal Overflow Enum ( Clip ) + + + + + + + Vertical Text Types + + + + + Vertical Text Type Enum ( Horizontal ) + + + + + Vertical Text Type Enum ( Vertical ) + + + + + Vertical Text Type Enum ( Vertical 270 ) + + + + + Vertical Text Type Enum ( WordArt Vertical ) + + + + + Vertical Text Type Enum ( East Asian Vertical ) + + + + + Vertical Text Type Enum ( Mongolian Vertical ) + + + + + Vertical WordArt Right to Left + + + + + + + Text Wrapping Types + + + + + Text Wrapping Type Enum ( None ) + + + + + Text Wrapping Type Enum ( Square ) + + + + + + + Text Column Count + + + + + + + + + + + Default Paragraph Style + + + + + List Level 1 Text Style + + + + + List Level 2 Text Style + + + + + List Level 3 Text Style + + + + + List Level 4 Text Style + + + + + List Level 5 Text Style + + + + + List Level 6 Text Style + + + + + List Level 7 Text Style + + + + + List Level 8 Text Style + + + + + List Level 9 Text Style + + + + + + + + Text Font Scale Percentage + + + + + + + + + + Font Scale + + + + + Line Space Reduction + + + + + + + + + + No AutoFit + + + + + Normal AutoFit + + + + + Shape AutoFit + + + + + + + + + Preset Text Shape + + + + + + 3D Scene Properties + + + + + + + + Rotation + + + + + Paragraph Spacing + + + + + Text Vertical Overflow + + + + + Text Horizontal Overflow + + + + + Vertical Text + + + + + Text Wrapping Type + + + + + Left Inset + + + + + Top Inset + + + + + Right Inset + + + + + Bottom Inset + + + + + Number of Columns + + + + + Space Between Columns + + + + + Columns Right-To-Left + + + + + From WordArt + + + + + Anchor + + + + + Anchor Center + + + + + Force Anti-Alias + + + + + Text Upright + + + + + Compatible Line Spacing + + + + + + + + Body Properties + + + + + Text List Styles + + + + + Text Paragraphs + + + + + + + + + + + + Start Bullet At Number + + + + + + + + + Text Auto-number Schemes + + + + + Autonumber Enum ( alphaLcParenBoth ) + + + + + Autonumbering Enum ( alphaUcParenBoth ) + + + + + Autonumbering Enum ( alphaLcParenR ) + + + + + Autonumbering Enum ( alphaUcParenR ) + + + + + Autonumbering Enum ( alphaLcPeriod ) + + + + + Autonumbering Enum ( alphaUcPeriod ) + + + + + Autonumbering Enum ( arabicParenBoth ) + + + + + Autonumbering Enum ( arabicParenR ) + + + + + Autonumbering Enum ( arabicPeriod ) + + + + + Autonumbering Enum ( arabicPlain ) + + + + + Autonumbering Enum ( romanLcParenBoth ) + + + + + Autonumbering Enum ( romanUcParenBoth ) + + + + + Autonumbering Enum ( romanLcParenR ) + + + + + Autonumbering Enum ( romanUcParenR ) + + + + + Autonumbering Enum ( romanLcPeriod ) + + + + + Autonumbering Enum ( romanUcPeriod ) + + + + + Autonumbering Enum ( circleNumDbPlain ) + + + + + Autonumbering Enum ( circleNumWdBlackPlain ) + + + + + Autonumbering Enum ( circleNumWdWhitePlain ) + + + + + Autonumbering Enum ( arabicDbPeriod ) + + + + + Autonumbering Enum ( arabicDbPlain ) + + + + + Autonumbering Enum ( ea1ChsPeriod ) + + + + + Autonumbering Enum ( ea1ChsPlain ) + + + + + Autonumbering Enum ( ea1ChtPeriod ) + + + + + Autonumbering Enum ( ea1ChtPlain ) + + + + + Autonumbering Enum ( ea1JpnChsDbPeriod ) + + + + + Autonumbering Enum ( ea1JpnKorPlain ) + + + + + Autonumbering Enum ( ea1JpnKorPeriod ) + + + + + Autonumbering Enum ( arabic1Minus ) + + + + + Autonumbering Enum ( arabic2Minus ) + + + + + Autonumbering Enum ( hebrew2Minus ) + + + + + Autonumbering Enum ( thaiAlphaPeriod ) + + + + + Autonumbering Enum ( thaiAlphaParenR ) + + + + + Autonumbering Enum ( thaiAlphaParenBoth ) + + + + + Autonumbering Enum ( thaiNumPeriod ) + + + + + Autonumbering Enum ( thaiNumParenR ) + + + + + Autonumbering Enum ( thaiNumParenBoth ) + + + + + Autonumbering Enum ( hindiAlphaPeriod ) + + + + + Autonumbering Enum ( hindiNumPeriod ) + + + + + Autonumbering Enum ( hindiNumParenR ) + + + + + Autonumbering Enum ( hindiAlpha1Period ) + + + + + + + + + + Follow Text + + + + + Color Specified + + + + + + + Bullet Size Percentage + + + + + + + + + + + Value + + + + + + + Value + + + + + + + + Bullet Size Follows Text + + + + + Bullet Size Percentage + + + + + Bullet Size Points + + + + + + + + + + Follow text + + + + + Specified + + + + + + + + Bullet Autonumbering Type + + + + + Start Numbering At + + + + + + + Bullet Character + + + + + + + + Blip + + + + + + + + + + No Bullet + + + + + Auto-Numbered Bullet + + + + + Character Bullet + + + + + Picture Bullet + + + + + + + + + + + + Text Point + + + + + + + + + Text Non-Negative Point + + + + + + + + + Text Font Size + + + + + + + + + Panose Type + + + + + + + + Text Typeface + + + + + + + Text Typeface + + + + + Panose Setting + + + + + Similar Font Family + + + + + Similar Character Set + + + + + + Language ID + + + + + + Text Underline Types + + + + + Text Underline Enum ( None ) + + + + + Text Underline Enum ( Words ) + + + + + Text Underline Enum ( Single ) + + + + + Text Underline Enum ( Double ) + + + + + Text Underline Enum ( Heavy ) + + + + + Text Underline Enum ( Dotted ) + + + + + Text Underline Enum ( Heavy Dotted ) + + + + + Text Underline Enum ( Dashed ) + + + + + Text Underline Enum ( Heavy Dashed ) + + + + + Text Underline Enum ( Long Dashed ) + + + + + Text Underline Enum ( Heavy Long Dashed ) + + + + + Text Underline Enum ( Dot Dash ) + + + + + Text Underline Enum ( Heavy Dot Dash ) + + + + + Text Underline Enum ( Dot Dot Dash ) + + + + + Text Underline Enum ( Heavy Dot Dot Dash ) + + + + + Text Underline Enum ( Wavy ) + + + + + Text Underline Enum ( Heavy Wavy ) + + + + + Text Underline Enum ( Double Wavy ) + + + + + + + + + + + + + + Underline Follows Text + + + + + Underline Stroke + + + + + + + + + Underline Fill Properties Follow Text + + + + + Underline Fill + + + + + + + Text Strike Type + + + + + Text Strike Enum ( No Strike ) + + + + + Text Strike Enum ( Single Strike ) + + + + + Text Strike Enum ( Double Strike ) + + + + + + + Text Cap Types + + + + + Text Caps Enum ( None ) + + + + + Text Caps Enum ( Small ) + + + + + Text Caps Enum ( All ) + + + + + + + + + Line + + + + + + + Highlight Color + + + + + + + Latin Font + + + + + East Asian Font + + + + + Complex Script Font + + + + + Symbol Font + + + + + Click Hyperlink + + + + + Mouse-Over Hyperlink + + + + + + + Kumimoji + + + + + Language ID + + + + + Alternative Language + + + + + Font Size + + + + + Bold + + + + + Italics + + + + + Underline + + + + + Strikethrough + + + + + Kerning + + + + + Capitalization + + + + + Spacing + + + + + Normalize Heights + + + + + Baseline + + + + + No Proofing + + + + + Dirty + + + + + Spelling Error + + + + + SmartTag Clean + + + + + SmartTag ID + + + + + Bookmark Link Target + + + + + + + + + + + + Text Spacing Point + + + + + + + + + Text Spacing Percent + + + + + + + + + + Value + + + + + + + Value + + + + + + Text Margin + + + + + + + + + Text Indentation + + + + + + + + + Text Tab Alignment Types + + + + + Text Tab Alignment Enum ( Left) + + + + + Text Tab Alignment Enum ( Center ) + + + + + Text Tab Alignment Enum ( Right ) + + + + + Text Tab Alignment Enum ( Decimal ) + + + + + + + + Tab Position + + + + + Tab Alignment + + + + + + + + Tab Stop + + + + + + + + + Text Run Properties + + + + + + + + + Spacing Percent + + + + + Spacing Points + + + + + + + Text Alignment Types + + + + + Text Alignment Enum ( Left ) + + + + + Text Alignment Enum ( Center ) + + + + + Text Alignment Enum ( Right ) + + + + + Text Alignment Enum ( Justified ) + + + + + Text Alignment Enum ( Justified Low ) + + + + + Text Alignment Enum ( Distributed ) + + + + + Text Alignment Enum ( Thai Distributed ) + + + + + + + Font Alignment Types + + + + + Font Alignment Enum ( Automatic ) + + + + + Font Alignment Enum ( Top ) + + + + + Font Alignment Enum ( Center ) + + + + + Font Alignment Enum ( Baseline ) + + + + + Font Alignment Enum ( Bottom ) + + + + + + + Text Indent Level Type + + + + + + + + + + + Line Spacing + + + + + Space Before + + + + + Space After + + + + + + + + + Tab List + + + + + Default Text Run Properties + + + + + + + Left Margin + + + + + Right Margin + + + + + Level + + + + + Indent + + + + + Alignment + + + + + Default Tab Size + + + + + Right To Left + + + + + East Asian Line Break + + + + + Font Alignment + + + + + Latin Line Break + + + + + Hanging Punctuation + + + + + + + + Text Character Properties + + + + + Text Paragraph Properties + + + + + + + Field ID + + + + + Field Type + + + + + + + + Text Run + + + + + Text Line Break + + + + + Text Field + + + + + + + + + + + + Text Character Properties + + + + + Text String + + + + + + + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-picture.xsd b/tests/resources/schema/ecma-376/dml-picture.xsd new file mode 100644 index 000000000..9a8247e76 --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-picture.xsd @@ -0,0 +1,44 @@ + + + + + + + + + + Non-Visual Drawing Properties + + + + + Non-Visual Picture Drawing Properties + + + + + + + + + Non-Visual Picture Properties + + + + + Picture Fill + + + + + Shape Properties + + + + + + + Picture + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-spreadsheetDrawing.xsd b/tests/resources/schema/ecma-376/dml-spreadsheetDrawing.xsd new file mode 100644 index 000000000..511fc2339 --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-spreadsheetDrawing.xsd @@ -0,0 +1,410 @@ + + + + + + + + + + + Locks With Sheet Flag + + + + + Prints With Sheet Flag + + + + + + + + Non-Visual Drawing Properties + + + + + Connection Non-Visual Shape Properties + + + + + + + + + Non-Visual Properties for a Shape + + + + + Shape Properties + + + + + + Shape Text Body + + + + + + Reference to Custom Function + + + + + Text Link + + + + + Lock Text Flag + + + + + Publish to Server Flag + + + + + + + + Connection Non-Visual Properties + + + + + Non-Visual Connector Shape Drawing Properties + + + + + + + + + Non-Visual Properties for a Connection Shape + + + + + Connector Shape Properties + + + + + + + Reference to Custom Function + + + + + Publish to Server Flag + + + + + + + + + Non-Visual Picture Drawing Properties + + + + + + + + + Non-Visual Properties for a Picture + + + + + Picture Fill + + + + + + Shape Style + + + + + + Reference To Custom Function + + + + + Publish to Server Flag + + + + + + + + Connection Non-Visual Properties + + + + + Non-Visual Graphic Frame Drawing Properties + + + + + + + + + Non-Visual Properties for a Graphic Frame + + + + + 2D Transform for Graphic Frames + + + + + + + Reference To Custom Function + + + + + Publish to Server Flag + + + + + + + + Connection Non-Visual Properties + + + + + Non-Visual Group Shape Drawing Properties + + + + + + + + + Non-Visual Properties for a Group Shape + + + + + Group Shape Properties + + + + + + Shape + + + + + Group Shape + + + + + + Connection Shape + + + + + Picture + + + + + + + + + + + Shape + + + + + Group Shape + + + + + Graphic Frame + + + + + Connection Shape + + + + + + + + + Column ID + + + + + + + + Row ID + + + + + + + + + + Column) + + + + + Column Offset + + + + + Row + + + + + Row Offset + + + + + + + Resizing Behaviors + + + + + Move and Resize With Anchor Cells + + + + + Move With Cells but Do Not Resize + + + + + Do Not Move or Resize With Underlying Rows/Columns + + + + + + + + + Starting Anchor Point + + + + + Ending Anchor Point + + + + + + Client Data + + + + + + Positioning and Resizing Behaviors + + + + + + + + + + + + + + + + Position + + + + + Shape Extent + + + + + + + + + + + Two Cell Anchor Shape Size + + + + + One Cell Anchor Shape Size + + + + + Absolute Anchor Shape Size + + + + + + + + + + + + Worksheet Drawing + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/dml-wordprocessingDrawing.xsd b/tests/resources/schema/ecma-376/dml-wordprocessingDrawing.xsd new file mode 100644 index 000000000..3955cdf0c --- /dev/null +++ b/tests/resources/schema/ecma-376/dml-wordprocessingDrawing.xsd @@ -0,0 +1,557 @@ + + + + + + + + Additional Extent on Left Edge + + + + + Additional Extent on Top Edge + + + + + Additional Extent on Right Edge + + + + + Additional Extent on Bottom Edge + + + + + + Distance from Text + + + + + + + + Drawing Object Size + + + + + Inline Wrapping Extent + + + + + Drawing Object Non-Visual Properties + + + + + Common DrawingML Non-Visual Properties + + + + + + + Distance From Text on Top Edge + + + + + Distance From Text on Bottom Edge + + + + + Distance From Text on Left Edge + + + + + Distance From Text on Right Edge + + + + + + Text Wrapping Location + + + + + Both Sides + + + + + Left Side Only + + + + + Right Side Only + + + + + Largest Side Only + + + + + + + + + Wrapping Polygon Start + + + + + Wrapping Polygon Line End Position + + + + + + Wrapping Points Modified + + + + + + + + + Object Extents Including Effects + + + + + + Text Wrapping Location + + + + + Distance From Text (Top) + + + + + Distance From Text on Bottom Edge + + + + + Distance From Text on Left Edge + + + + + Distance From Text on Right Edge + + + + + + + + Tight Wrapping Extents Polygon + + + + + + Text Wrapping Location + + + + + Distance From Test on Left Edge + + + + + Distance From Text on Right Edge + + + + + + + + Wrapping Polygon + + + + + + Text Wrapping Location + + + + + Distance From Text on Left Edge + + + + + Distance From Text on Right Edge + + + + + + + + Wrapping Boundaries + + + + + + Distance From Text on Top Edge + + + + + Distance From Text on Bottom Edge + + + + + + + + + No Text Wrapping + + + + + Square Wrapping + + + + + Tight Wrapping + + + + + Through Wrapping + + + + + Top and Bottom Wrapping + + + + + + + + Absolute Position Offset Value + + + + + + Relative Horizontal Alignment Positions + + + + + Left Alignment + + + + + Right Alignment + + + + + Center Alignment + + + + + Inside + + + + + Outside + + + + + + + Horizontal Relative Positioning + + + + + Page Margin + + + + + Page Edge + + + + + Column + + + + + Character + + + + + Left Margin + + + + + Right Margin + + + + + Inside Margin + + + + + Outside Margin + + + + + + + + + + Relative Horizontal Alignment + + + + + Absolute Position Offset + + + + + + + Horizontal Position Relative Base + + + + + + Vertical Alignment Definition + + + + + Top + + + + + Bottom + + + + + Center Alignment + + + + + Inside + + + + + Outside + + + + + + + Vertical Relative Positioning + + + + + Page Margin + + + + + Page Edge + + + + + Paragraph + + + + + Line + + + + + Top Margin + + + + + Bottom Margin + + + + + Inside Margin + + + + + Outside Margin + + + + + + + + + + Relative Vertical Alignment + + + + + + + + Vertical Position Relative Base + + + + + + + + Simple Positioning Coordinates + + + + + Horizontal Positioning + + + + + Vertical Positioning + + + + + Inline Drawing Object Extents + + + + + + + Drawing Object Non-Visual Properties + + + + + + + + Distance From Text on Top Edge + + + + + Distance From Text on Bottom Edge + + + + + Distance From Text on Left Edge + + + + + Distance From Text on Right Edge + + + + + Page Positioning + + + + + Relative Z-Ordering Position + + + + + Display Behind Document Text + + + + + Lock Anchor + + + + + Layout In Table Cell + + + + + Hidden + + + + + Allow Objects to Overlap + + + + + + Inline DrawingML Object + + + + + Anchor for Floating DrawingML Object + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/pml.xsd b/tests/resources/schema/ecma-376/pml.xsd new file mode 100644 index 000000000..64f4b0aa5 --- /dev/null +++ b/tests/resources/schema/ecma-376/pml.xsd @@ -0,0 +1,4968 @@ + + + + + + + + + + + + + + + + + Transition Slide Direction Type + + + + + Transition Slide Direction Enum ( Left ) + + + + + Transition Slide Direction Enum ( Up ) + + + + + Transition Slide Direction ( Right ) + + + + + Transition Slide Direction Enum ( Down ) + + + + + + + Transition Corner Direction Type + + + + + Transition Corner Direction Enum ( Left-Up ) + + + + + Transition Corner Direction Enum ( Right-Up ) + + + + + Transition Corner Direction Enum ( Left-Down ) + + + + + Transition Corner Direction Enum ( Right-Down ) + + + + + + + Transition In/Out Direction Type + + + + + Transition In/Out Direction Enum ( Out ) + + + + + Transition In/Out Direction Enum ( In ) + + + + + + + + Direction + + + + + + + Direction + + + + + + Transition Eight Direction + + + + + + + Direction + + + + + + + Transition Direction + + + + + + + Direction + + + + + + + Transition Through Black + + + + + + + Orientation + + + + + Direction + + + + + + + Spokes + + + + + + + + Sound + + + + + + Loop Sound + + + + + + + + Start Sound Action + + + + + Stop Sound Action + + + + + + + Transition Speed + + + + + low + + + + + Medium + + + + + Fast + + + + + + + + + + Blinds Slide Transition + + + + + Checker Slide Transition + + + + + Circle Slide Transition + + + + + Dissolve Slide Transition + + + + + Comb Slide Transition + + + + + Cover Slide Transition + + + + + Cut Slide Transition + + + + + Diamond Slide Transition + + + + + Fade Slide Transition + + + + + Newsflash Slide Transition + + + + + Plus Slide Transition + + + + + Pull Slide Transition + + + + + Push Slide Transition + + + + + Random Slide Transition + + + + + Random Bar Slide Transition + + + + + Split Slide Transition + + + + + Strips Slide Transition + + + + + Wedge Slide Transition + + + + + Wheel Slide Transition + + + + + Wipe Slide Transition + + + + + Zoom Slide Transition + + + + + + Sound Action + + + + + + + Transition Speed + + + + + Advance on Click + + + + + Advance after time + + + + + + Indefinite Time Declaration + + + + + Indefinite Type Enum + + + + + + + Time + + + + + + Time Node ID + + + + + + + Time + + + + + + + Value + + + + + + Iterate Type + + + + + Element + + + + + Word + + + + + Letter + + + + + + + + + Time Absolute + + + + + Time Percentage + + + + + + Iterate Type + + + + + Backwards + + + + + + + Shape ID + + + + + + + + Character Range + + + + + Paragraph Text Range + + + + + + + Chart Subelement Type + + + + + Chart Build Element Type Enum ( Grid Legend ) + + + + + Chart Build Element Type Enum ( Series ) + + + + + Chart Build Element Type Enum ( Category ) + + + + + Chart Build Element Type Enum ( Point in Series ) + + + + + Chart Build Element Type Enum ( Point in Cat ) + + + + + + + + Type + + + + + Level + + + + + + + + Background + + + + + Subshape + + + + + OLE Chart Element + + + + + Text Element + + + + + Graphic Element + + + + + + Shape ID + + + + + + + + Slide Target + + + + + Sound Target + + + + + Shape Target + + + + + Ink Target + + + + + + + + Value + + + + + + Trigger RunTime Node + + + + + Trigger RunTime Node ( First ) + + + + + Trigger RunTime Node ( Last ) + + + + + Trigger RunTime Node Enum ( All ) + + + + + + + + Value + + + + + + Trigger Event + + + + + Trigger Event Enum ( On Begin ) + + + + + Trigger Event Enum ( On End ) + + + + + Trigger Event Enum ( Begin ) + + + + + Trigger Event Enum ( End ) + + + + + Trigger Event Enum ( On Click ) + + + + + Trigger Event Enum ( On Double Click ) + + + + + Trigger Event Enum ( On Mouse Over ) + + + + + Trigger Event Enum ( On Mouse Out ) + + + + + Trigger Event Enum ( On Next ) + + + + + Trigger Event Enum ( On Previous ) + + + + + Trigger Event Enum ( On Stop Audio ) + + + + + + + + + Target Element Trigger Choice + + + + + Time Node + + + + + Runtime Node Trigger Choice + + + + + + Trigger Event + + + + + Trigger Delay + + + + + + + + Condition + + + + + + + + + Parallel Time Node + + + + + Sequence Time Node + + + + + Exclusive + + + + + Animate + + + + + Animate Color Behavior + + + + + Animate Effect + + + + + Animate Motion + + + + + Animate Rotation + + + + + Animate Scale + + + + + Command + + + + + Set Time Node Behavior + + + + + Audio + + + + + Video + + + + + + + Time Node Preset Class Type + + + + + Preset Type Enum ( Entrance ) + + + + + Exit + + + + + Preset Type Enum ( Emphasis ) + + + + + Preset Type Enum ( Path ) + + + + + Preset Type Enum ( Verb ) + + + + + Preset Type Enum ( Media Call ) + + + + + + + Time Node Restart Type + + + + + Restart Enum ( Always ) + + + + + Restart Enum ( When Not Active ) + + + + + Restart Enum ( Never ) + + + + + + + Time Node Fill Type + + + + + Remove + + + + + Freeze + + + + + TimeNode Fill Type Enum ( Hold ) + + + + + Transition + + + + + + + Time Node Sync Type + + + + + TimeNode Sync Enum ( Can Slip ) + + + + + TimeNode Sync Enum ( Locked ) + + + + + + + Time Node Master Relation + + + + + TimeNode Master Relation Enum ( Same Click ) + + + + + TimeNode Master Relation Enum ( Last Click ) + + + + + TimeNode Master Relation Enum ( Next Click ) + + + + + + + Time Node Type + + + + + Node Type Enum ( Click Effect ) + + + + + Node Type Enum ( With Effect ) + + + + + Node Type Enum ( After Effect ) + + + + + Node Type Enum ( Main Sequence ) + + + + + Node Type Enum ( Interactive Sequence ) + + + + + Node Type Enum ( Click Paragraph ) + + + + + Node Type Enum ( With Group ) + + + + + Node Type Enum ( After Group ) + + + + + Node Type Enum ( Timing Root ) + + + + + + + + + Start Conditions List + + + + + End Conditions List + + + + + EndSync + + + + + Iterate + + + + + Children Time Node List + + + + + Sub-TimeNodes List + + + + + + ID + + + + + Preset ID + + + + + Preset Types + + + + + Preset SubType + + + + + Duration + + + + + Repeat Count + + + + + Repeat Duration + + + + + Speed + + + + + Acceleration + + + + + Deceleration + + + + + Auto Reverse + + + + + Restart + + + + + Fill + + + + + Synchronization Behavior + + + + + Time Filter + + + + + Event Filter + + + + + Display + + + + + Master Relation + + + + + Build level + + + + + Group ID + + + + + After Effect + + + + + Node Type + + + + + Node Placeholder + + + + + + + + Parallel TimeNode + + + + + + + Next Action Type + + + + + Next Action Type Enum ( None ) + + + + + Next Action Type Enum ( Seek ) + + + + + + + Previous Action Type + + + + + Previous Action Type Enum ( None ) + + + + + Previous Action Type Enum ( Skip Timed ) + + + + + + + + + Common TimeNode Properties + + + + + Previous Conditions List + + + + + Next Conditions List + + + + + + Concurrent + + + + + Previous Action + + + + + Next Action + + + + + + + + Common TimeNode Properties + + + + + + + + + Attribute Name + + + + + + + Behavior Additive Type + + + + + Additive Enum ( Base ) + + + + + Additive Enum ( Sum ) + + + + + Additive Enum ( Replace ) + + + + + Additive Enum ( Multiply ) + + + + + None + + + + + + + Behavior Accumulate Type + + + + + Accumulate Enum ( None ) + + + + + Accumulate Enum ( Always ) + + + + + + + Behavior Transform Type + + + + + Point + + + + + Image + + + + + + + Behavior Override Type + + + + + Override Enum ( Normal ) + + + + + Override Enum ( Child Style ) + + + + + + + + + + Target Element + + + + + Attribute Name List + + + + + + Additive + + + + + Accumulate + + + + + Transform Type + + + + + From + + + + + To + + + + + By + + + + + Runtime Context + + + + + Override + + + + + + + Value + + + + + + + Value + + + + + + + Value + + + + + + + Value + + + + + + + + Boolean Variant + + + + + Integer + + + + + Float Value + + + + + String Value + + + + + Color Value + + + + + + + Animation Time + + + + + + + + Value + + + + + + Time + + + + + Formula + + + + + + + + Time Animate Value + + + + + + + Time List Animate Behavior Calculate Mode + + + + + Calc Mode Enum ( Discrete ) + + + + + Calc Mode Enum ( Linear ) + + + + + Calc Mode Enum ( Formula ) + + + + + + + Time List Animate Behavior Value Types + + + + + Value Type Enum ( String ) + + + + + Value Type Enum ( Number ) + + + + + Value Type Enum ( Color ) + + + + + + + + + + Time Animated Value List + + + + + + By + + + + + From + + + + + To + + + + + Calculation Mode + + + + + Value Type + + + + + + + Red + + + + + Green + + + + + Blue + + + + + + + Hue + + + + + Saturation + + + + + Lightness + + + + + + + + RGB + + + + + HSL + + + + + + + Time List Animate Color Space + + + + + Color Space Enum ( RGB ) + + + + + Color Space Enum ( HSL ) + + + + + + + Time List Animate Color Direction + + + + + Direction Enum ( Clockwise ) + + + + + Counter-Clockwise + + + + + + + + + + By + + + + + From + + + + + To + + + + + + Color Space + + + + + Direction + + + + + + Time List Animate Effect Transition + + + + + Transition Enum ( In ) + + + + + Transition Enum ( Out ) + + + + + Transition Enum ( None ) + + + + + + + + + + Progress + + + + + + Transition + + + + + Filter + + + + + Property List + + + + + + Time List Animate Motion Behavior Origin + + + + + Origin Enum ( Parent ) + + + + + Origin Enum ( Layout ) + + + + + + + Time List Animate Motion Path Edit Mode + + + + + Path Edit Mode Enum ( Relative ) + + + + + Path Edit Mode Enum ( Fixed ) + + + + + + + + X coordinate + + + + + Y coordinate + + + + + + + + + + From + + + + + + Rotation Center + + + + + + Origin + + + + + Path + + + + + Path Edit Mode + + + + + Relative Angle + + + + + Points Types + + + + + + + + + + By + + + + + From + + + + + To + + + + + + + + + By + + + + + + To + + + + + + Zoom Content + + + + + + Command Type + + + + + Command Type Enum ( Event ) + + + + + Command Type Enum ( Call ) + + + + + Command Type Enum ( Verb ) + + + + + + + + + + + Command Type + + + + + Command + + + + + + + + Common Behavior + + + + + To + + + + + + + + + Common Time Node Properties + + + + + + + Volume + + + + + Mute + + + + + Number of Slides + + + + + Show When Stopped + + + + + + + + Common Media Node Properties + + + + + + Is Narration + + + + + + + + Common Media Node Properties + + + + + + Full Screen + + + + + + + Shape ID + + + + + Group ID + + + + + Expand UI + + + + + + + + Time Node List + + + + + + Level + + + + + + + + Template Effects + + + + + + + Paragraph Build Type + + + + + All At Once + + + + + Paragraph + + + + + Custom + + + + + Whole + + + + + + + + + Template effects + + + + + + + Build Types + + + + + Build Level + + + + + Animate Background + + + + + Auto Update Animation Background + + + + + Reverse + + + + + Auto Advance Time + + + + + + Diagram Build Types + + + + + Diagram Build Type Enum ( Whole ) + + + + + Diagram Build Type Enum ( Depth By Node ) + + + + + Diagram Build Type Enum ( Depth By Branch ) + + + + + Diagram Build Type Enum ( Breadth By Node ) + + + + + Diagram Build Type Enum ( Breadth By Level ) + + + + + Diagram Build Type Enum ( Clockwise ) + + + + + Diagram Build Type Enum ( Clockwise-In ) + + + + + Diagram Build Type Enum ( Clockwise-Out ) + + + + + Diagram Build Type Enum ( Counter-Clockwise ) + + + + + Diagram Build Type Enum ( Counter-Clockwise-In ) + + + + + Diagram Build Type Enum ( Counter-Clockwise-Out ) + + + + + Diagram Build Type Enum ( In-By-Ring ) + + + + + Diagram Build Type Enum ( Out-By-Ring ) + + + + + Diagram Build Type Enum ( Up ) + + + + + Diagram Build Type Enum ( Down ) + + + + + Diagram Build Type Enum ( All At Once ) + + + + + Diagram Build Type Enum ( Custom ) + + + + + + + + + Diagram Build Types + + + + + + OLE Chart Build Type + + + + + Chart Build Type Enum ( All At Once ) + + + + + Chart Build Type Enum ( Series ) + + + + + Chart Build Type Enum ( Category ) + + + + + Chart Build Type Enum ( Series Element ) + + + + + Chart Build Type Enum ( Category Element ) + + + + + + + + + Build + + + + + Animate Background + + + + + + + + Build As One + + + + + Build Sub Elements + + + + + + + + + + Build Paragraph + + + + + Build Diagram + + + + + Build OLE Chart + + + + + Build Graphics + + + + + + + + + + Build List + + + + + + + + + + + + Name string + + + + + + Direction + + + + + Horizontal + + + + + Vertical + + + + + + + Index + + + + + + + Start + + + + + End + + + + + + + Relationship ID + + + + + + + + Presentation Slide + + + + + + + + Custom Show Identifier + + + + + + + + All Slides + + + + + Slide Range + + + + + Custom Show + + + + + + + + Relationship ID + + + + + + + Relationship ID + + + + + + + + Customer Data + + + + + Customer Data Tags + + + + + + + + + + + Uniform Resource Identifier + + + + + + + + Extension + + + + + + + + + + + + + + + + Modify + + + + + + + + + + + + + + Comment Author ID + + + + + Comment Author Name + + + + + Comment Author Initials + + + + + Index of Comment Author's last comment + + + + + Comment Author Color Index + + + + + + + + Comment Author + + + + + + + List of Comment Authors + + + + + + + Comment Position + + + + + Comment's Text Content + + + + + + + Comment Author ID + + + + + Comment Date/Time + + + + + Comment Index + + + + + + + + Comment + + + + + + + Comment List + + + + + + + + + + + + OLE Object Shape ID + + + + + OLE Object Name + + + + + Show OLE Object As Icon + + + + + Relationship ID + + + + + Image Width + + + + + Image Height + + + + + + OLE Object to Follow Color Scheme + + + + + None + + + + + Full + + + + + Text and Background + + + + + + + + + + + Color Scheme Properties for OLE Object + + + + + + + + + + Update Linked OLE Objects Automatically + + + + + + + + Embedded OLE Object or Control + + + + + Linked OLE Object or Control + + + + + + + OLE ProgID + + + + + + Global Element for OLE Objects and Controls + + + + + + + + + + + + + Embedded Control + + + + + + + + + + + + + + Slide Identifier + + + + + + + + + + + + + Slide Identifier + + + + + Relationship Identifier + + + + + + + + Slide ID + + + + + + + Slide Master ID + + + + + + + + + + + + Slide Master Identifier + + + + + Relationship Identifier + + + + + + + + Slide Master ID + + + + + + + + + + + Relationship Identifier + + + + + + + + Notes Master ID + + + + + + + + + + + Relationship Identifier + + + + + + + + Handout Master ID + + + + + + + + Relationship Identifier + + + + + + + + Embedded Font Name + + + + + Regular Embedded Font + + + + + Bold Embedded Font + + + + + Italic Embedded Font + + + + + Bold Italic Embedded Font + + + + + + + + + Embedded Font + + + + + + + + Relationship Identifier + + + + + + + + List of Presentation Slides + + + + + + + Custom Show Name + + + + + Custom Show ID + + + + + + + + Custom Show + + + + + + + Photo Album Layout Definition + + + + + Fit Photos to Slide + + + + + 1 Photo per Slide + + + + + 2 Photos per Slide + + + + + 4 Photos per Slide + + + + + 1 Photo per Slide with Titles + + + + + 2 Photos per Slide with Titles + + + + + 4 Photos per Slide with Titles + + + + + + + Photo Album Shape for Photo Mask + + + + + Rectangle Photo Frame + + + + + Rounded Rectangle Photo Frame + + + + + Simple White Photo Frame + + + + + Simple Black Photo Frame + + + + + Compound Black Photo Frame + + + + + Center Shadow Photo Frame + + + + + Soft Edge Photo Frame + + + + + + + + + + + Black and White + + + + + Show/Hide Captions + + + + + Photo Album Layout + + + + + Frame Type + + + + + + Slide Size Coordinate + + + + + + + + + Slide Size Type + + + + + Screen 4x3 + + + + + Letter + + + + + A4 + + + + + 35mm Film + + + + + Overhead + + + + + Banner + + + + + Custom + + + + + Ledger + + + + + A3 + + + + + B4ISO + + + + + B5ISO + + + + + B4JIS + + + + + B5JIS + + + + + Hagaki Card + + + + + Screen 16x9 + + + + + Screen 16x10 + + + + + + + + Extent Length + + + + + Extent Width + + + + + Type of Size + + + + + + + Language + + + + + Invalid Kinsoku Start Characters + + + + + Invalid Kinsoku End Characters + + + + + + Bookmark ID Seed + + + + + + + + + Cryptographic Provider Type + + + + + RSA AES Encryption Scheme + + + + + RSA Full Encryption Scheme + + + + + Invalid Encryption Scheme + + + + + + + Cryptographic Algorithm Classes + + + + + Hash Algorithm Class + + + + + Invalid Algorithm Class + + + + + + + Cryptographic Algorithm Type + + + + + Any Algorithm Type + + + + + Invalid Algorithm Type + + + + + + + + Cryptographic Provider Type + + + + + Cryptographic Algorithm Class + + + + + Cryptographic Algorithm Type + + + + + Cryptographic Hashing Algorithm + + + + + Iterations to Run Hashing Algorithm + + + + + Salt for Password Verifier + + + + + Password Hash + + + + + Cryptographic Provider + + + + + Cryptographic Algorithm Extensibility + + + + + Algorithm Extensibility Source + + + + + Cryptographic Provider Type Extensibility + + + + + Provider Type Extensibility Source + + + + + + + + List of Slide Master IDs + + + + + List of Notes Master IDs + + + + + List of Handout Master IDs + + + + + List of Slide IDs + + + + + Presentation Slide Size + + + + + Notes Slide Size + + + + + Smart Tags + + + + + Embedded Font List + + + + + List of Custom Shows + + + + + Photo Album Information + + + + + List of Customer Data Buckets + + + + + Kinsoku Settings + + + + + Presentation Default Text Style + + + + + Modification Verifier + + + + + Extension List + + + + + + Server Zoom + + + + + First Slide Number + + + + + Show Header and Footer Placeholders on Titles + + + + + Right-To-Left Views + + + + + Remove Personal Information on Save + + + + + Compatibility Mode + + + + + Strict First and Last Characters + + + + + Embed True Type Fonts + + + + + Save Subset Fonts + + + + + Automatically Compress Pictures + + + + + Bookmark ID Seed + + + + + + Presentation + + + + + + + + + + Web browsers supported for HTML output + + + + + Browser v4 + + + + + Browser v3 + + + + + Browser v3v4 + + + + + + + + + + + + Show Speaker Notes + + + + + Browser Support Target + + + + + HTML Output Title + + + + + Publish Path + + + + + + HTML Slide Navigation Control Colors + + + + + Non-specific Colors + + + + + Browser Colors + + + + + Presentation Text Colors + + + + + Presentation Accent Colors + + + + + White Text on Black Colors + + + + + Black Text on White Colors + + + + + + + HTML/Web Screen Size Target + + + + + HTML/Web Size Enumeration 544x376 + + + + + HTML/Web Size Enumeration 640x480 + + + + + HTML/Web Size Enumeration 720x515 + + + + + HTML/Web Size Enumeration 800x600 + + + + + HTML/Web Size Enumeration 1024x768 + + + + + HTML/Web Size Enumeration 1152x882 + + + + + HTML/Web Size Enumeration 1152x900 + + + + + HTML/Web Size Enumeration 1280x1024 + + + + + HTML/Web Size Enumeration 1600x1200 + + + + + HTML/Web Size Enumeration 1800x1400 + + + + + HTML/Web Size Enumeration 1920x1200 + + + + + + + Web Encoding + + + + + + + + + + Show animation in HTML output + + + + + Resize graphics in HTML output + + + + + Allow PNG in HTML output + + + + + Rely on VML for HTML output + + + + + Organize HTML output in folders + + + + + Use long file names in HTML output + + + + + Image size for HTML output + + + + + Encoding for HTML output + + + + + Slide Navigation Colors for HTML output + + + + + + Default print output + + + + + Slides + + + + + 1 Slide / Handout Page + + + + + 2 Slides / Handout Page + + + + + 3 Slides / Handout Page + + + + + 4 Slides / Handout Page + + + + + 6 Slides / Handout Page + + + + + 9 Slides / Handout Page + + + + + Notes + + + + + Outline + + + + + + + Print Color Mode + + + + + Black and White Mode + + + + + Grayscale Mode + + + + + Color Mode + + + + + + + + + + + Print Output + + + + + Print Color Mode + + + + + Print Hidden Slides + + + + + Scale to Fit Paper when printing + + + + + Frame slides when printing + + + + + + + Show Scroll Bar in Window + + + + + + + Restart Show + + + + + + + + Presenter Slide Show Mode + + + + + Browse Slide Show Mode + + + + + Kiosk Slide Show Mode + + + + + + + + + + + Pen Color for Slide Show + + + + + + + Loop Slide Show + + + + + Show Narration in Slide Show + + + + + Show Animation in Slide Show + + + + + Use Timings in Slide Show + + + + + + + + HTML Publishing Properties + + + + + Web Properties + + + + + Printing Properties + + + + + Presentation-wide Show Properties + + + + + Color MRU + + + + + + + + Presentation-wide Properties + + + + + + + + + + + + + + + + + + + Slide Number Placeholder + + + + + Header Placeholder + + + + + Footer Placeholder + + + + + Date/Time Placeholder + + + + + + Placeholder IDs + + + + + Title + + + + + Body + + + + + Centered Title + + + + + Subtitle + + + + + Date and Time + + + + + Slide Number + + + + + Footer + + + + + Header + + + + + Object + + + + + Chart + + + + + Table + + + + + Clip Art + + + + + Diagram + + + + + Media + + + + + Slide Image + + + + + Picture + + + + + + + Placeholder Size + + + + + Full + + + + + Half + + + + + Quarter + + + + + + + + + + + Placeholder Type + + + + + Placeholder Orientation + + + + + Placeholder Size + + + + + Placeholder Index + + + + + Placeholder has custom prompt + + + + + + + + Placeholder Shape + + + + + + Customer Data List + + + + + + + Is a Photo Album + + + + + Is User Drawn + + + + + + + + Non-Visual Drawing Properties + + + + + Non-Visual Drawing Properties for a Shape + + + + + Application Non-Visual Drawing Properties + + + + + + + + + Non-Visual Properties for a Shape + + + + + + Shape Style + + + + + Shape Text Body + + + + + + + Use Background Fill + + + + + + + + Non-Visual Drawing Properties + + + + + Non-Visual Connector Shape Drawing Properties + + + + + Application Non-Visual Drawing Properties + + + + + + + + + Non-Visual Properties for a Connection Shape + + + + + Shape Properties + + + + + Connector Shape Style + + + + + + + + + + + Non-Visual Picture Drawing Properties + + + + + + + + + + Non-Visual Properties for a Picture + + + + + Picture Fill + + + + + + + + + + + + Non-Visual Drawing Properties + + + + + Non-Visual Graphic Frame Drawing Properties + + + + + Application Non-Visual Drawing Properties + + + + + + + + + Non-Visual Properties for a Graphic Frame + + + + + 2D Transform for Graphic Frame + + + + + + Extension List with Modification Flag + + + + + + + + + Non-visual Drawing Properties + + + + + Non-Visual Group Shape Drawing Properties + + + + + Non-Visual Properties + + + + + + + + + Non-Visual Properties for a Group Shape + + + + + Group Shape Properties + + + + + + Shape + + + + + Group Shape + + + + + Graphic Frame + + + + + Connection Shape + + + + + Picture + + + + + + + + + + + Color Scheme Map + + + + + + + + + Color Scheme Map Override + + + + + + + + Show Master Shapes + + + + + Show Master Placeholder Animations + + + + + + + + + + + + Shade to Title + + + + + + + + Background Properties + + + + + Background Style Reference + + + + + + + + + + + Black and White Mode + + + + + + + + Slide Background + + + + + Shape Tree + + + + + Customer Data List + + + + + List of controls + + + + + + + Name + + + + + + + + Common slide data for slides + + + + + + Slide Transition + + + + + Slide Timing Information for a Slide + + + + + + + + Show Slide in Slide Show + + + + + + Presentation Slide + + + + + Slide Layout Type + + + + + Slide Layout Type Enumeration ( Title ) + + + + + Slide Layout Type Enumeration ( Text ) + + + + + Slide Layout Type Enumeration ( Two Column Text ) + + + + + Slide Layout Type Enumeration ( Table ) + + + + + Slide Layout Type Enumeration ( Text and Chart ) + + + + + Slide Layout Type Enumeration ( Chart and Text ) + + + + + Slide Layout Type Enumeration ( Diagram ) + + + + + Chart + + + + + Text and Clip Art + + + + + Clip Art and Text + + + + + Slide Layout Type Enumeration ( Title Only ) + + + + + Slide Layout Type Enumeration ( Blank ) + + + + + Slide Layout Type Enumeration ( Text and Object ) + + + + + Slide Layout Type Enumeration ( Object and Text ) + + + + + Object + + + + + Title and Object + + + + + Slide Layout Type Enumeration ( Text and Media ) + + + + + Slide Layout Type Enumeration ( Media and Text ) + + + + + Slide Layout Type Enumeration ( Object over Text) + + + + + Slide Layout Type Enumeration ( Text over Object) + + + + + Text and Two Objects + + + + + Two Objects and Text + + + + + Two Objects over Text + + + + + Four Objects + + + + + Vertical Text + + + + + Clip Art and Vertical Text + + + + + Vertical Title and Text + + + + + Vertical Title and Text Over Chart + + + + + Two Objects + + + + + Object and Two Object + + + + + Two Objects and Object + + + + + Slide Layout Type Enumeration ( Custom ) + + + + + Section Header + + + + + Two Text and Two Objects + + + + + Title, Object, and Caption + + + + + Picture and Caption + + + + + + + + + Common slide data for slide layouts + + + + + + Slide Transition for a Slide Layout + + + + + Slide Timing Information for a Slide Layout + + + + + Header/Footer information for a slide layout + + + + + + + + Matching Name + + + + + Slide Layout Type + + + + + Preserve Slide Layout + + + + + Is User Drawn + + + + + + Slide Layout + + + + + + + Slide Master Title Text Style + + + + + Slide Master Body Text Style + + + + + Slide Master Other Text Style + + + + + + + + Slide Layout ID + + + + + + + + + + + + ID Tag + + + + + ID Tag + + + + + + + + Slide Layout Id + + + + + + + + + Common slide data for slide masters + + + + + + List of Slide Layouts + + + + + Slide Transition for a Slide Master + + + + + Slide Timing Information for Slide Masters + + + + + Header/Footer information for a slide master + + + + + Slide Master Text Styles + + + + + + + Preserve Slide Master + + + + + + Slide Master + + + + + + + Common slide data for handout master + + + + + + Header/Footer information for a handout master + + + + + + + + Handout Master + + + + + + + Common Slide Data + + + + + + Header/Footer Information for a Notes Master + + + + + Notes Text Style + + + + + + + + Notes Master + + + + + + + Common slide data for notes slides + + + + + + + + + + Notes Slide + + + + + + + + + + + + Server's Slide File ID + + + + + Server's Slide File's modification date/time + + + + + Client Slide Insertion date/time + + + + + + Slide Synchronization Properties + + + + + + + + Name + + + + + Value + + + + + + + + Programmable Extensibility Tag + + + + + + + Programmable Tab List + + + + + + + + + + Splitter Bar State + + + + + Min + + + + + Restored + + + + + Max + + + + + + + List of View Types + + + + + Normal Slide View + + + + + Slide Master View + + + + + Notes View + + + + + Handout View + + + + + Notes Master View + + + + + Outline View + + + + + Slide Sorter View + + + + + Slide Thumbnail View + + + + + + + + Normal View Dimension Size + + + + + Auto Adjust Normal View + + + + + + + + Normal View Restored Left Properties + + + + + Normal View Restored Top Properties + + + + + + + Show Outline Icons in Normal View + + + + + Snap Vertical Splitter + + + + + State of the Vertical Splitter Bar + + + + + State of the Horizontal Splitter Bar + + + + + Prefer Single View + + + + + + + + View Scale + + + + + View Origin + + + + + + Variable Scale + + + + + + + + Base properties for Notes View + + + + + + + + + Relationship Identifier + + + + + Collapsed + + + + + + + + Presentation Slide + + + + + + + + + Common View Properties + + + + + List of Presentation Slides + + + + + + + + + + Base properties for Slide Sorter View + + + + + + + Show Formatting + + + + + + + Guide Orientation + + + + + Guide Position + + + + + + + + A Guide + + + + + + + + + Base properties for Slide View + + + + + List of Guides + + + + + + Snap Objects to Grid + + + + + Snap Objects to Objects + + + + + Show Guides in View + + + + + + + + + + + + + + Common Slide View Properties + + + + + + + + + + Normal View Properties + + + + + Slide View Properties + + + + + Outline View Properties + + + + + Notes Text View Properties + + + + + Slide Sorter View Properties + + + + + Notes View Properties + + + + + Grid Spacing + + + + + + + Last View + + + + + Show Comments + + + + + + Presentation-wide View Properties + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/readme.md b/tests/resources/schema/ecma-376/readme.md new file mode 100644 index 000000000..dfe9d8e26 --- /dev/null +++ b/tests/resources/schema/ecma-376/readme.md @@ -0,0 +1,16 @@ +# pml.xsd + +## How do I create the file ? +* Go to http://www.ecma-international.org/publications/standards/Ecma-376.htm +* Download the file "ECMA-376 1st edition Part 4" +* Extract the directory Office Open XML 1st edition Part 2 (DOCX).zip\OpenPackagingConventions-XMLSchema.zip +* From this, create files (dml-diagram.xsd, dml-main.xsd, pml.xsd, sml.xsd) + * Incorporate xsd files based on the order of **ECMA-376, Second Edition, Part 4 - Transitional Migration Features.zip\OfficeOpenXML-XMLSchema-Transitional.zip** files + * Try to avoid duplicate imprts + +## How do valid new created xsd ? +* Fetch some files from an PPTX files (theme1.xml, ...) +* Use xmllint : +``` +$ xmllint --noout --schema pml.xsd ../../../../samples/results/theme1.xml +``` \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-additionalCharacteristics.xsd b/tests/resources/schema/ecma-376/shared-additionalCharacteristics.xsd new file mode 100644 index 000000000..b31d676d8 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-additionalCharacteristics.xsd @@ -0,0 +1,71 @@ + + + + + + + Single Characteristic + + + + + + + + Name of Characteristic + + + + + Relationship of Value to Name + + + + + Characteristic Value + + + + + Characteristic Grammar + + + + + + Characteristic Relationship Types + + + + + Greater Than or Equal to + + + + + Less Than or Equal To + + + + + Greater Than + + + + + Less Than + + + + + Equal To + + + + + + + Set of Additional Characteristics + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-bibliography.xsd b/tests/resources/schema/ecma-376/shared-bibliography.xsd new file mode 100644 index 000000000..c3c60fc7d --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-bibliography.xsd @@ -0,0 +1,534 @@ + + + + + String Value + + + + + + + + + Bibliographic Data Source Types + + + + + Article in a Periodical + + + + + Book + + + + + Book Section + + + + + Journal Article + + + + + Conference Proceedings + + + + + Reporter + + + + + Sound Recording + + + + + Performance + + + + + Art + + + + + Document from Internet Site + + + + + Internet Site + + + + + Film + + + + + Interview + + + + + Patent + + + + + Electronic Source + + + + + Case + + + + + Miscellaneous + + + + + + + + + Person + + + + + + + + + Person's Last, or Family, Name + + + + + Person's First, or Given, Name + + + + + Person's Middle, or Other, Name + + + + + + + + + Name List + + + + + + + + + + + Corporate Author + + + + + + + + + + + Artist + + + + + Author + + + + + Book Author + + + + + Compiler + + + + + Composer + + + + + Conductor + + + + + Counsel + + + + + Director + + + + + Editor + + + + + Interviewee + + + + + Interviewer + + + + + Inventor + + + + + Performer + + + + + Producer Name + + + + + Translator + + + + + Writer + + + + + + + + + + + Abbreviated Case Number + + + + + Album Title + + + + + Contributors List + + + + + Book Title + + + + + Broadcaster + + + + + Broadcast Title + + + + + Case Number + + + + + Chapter Number + + + + + City + + + + + Comments + + + + + Conference or Proceedings Name + + + + + Country or Region + + + + + Court + + + + + Day + + + + + Day Accessed + + + + + Department + + + + + Distributor + + + + + Editor + + + + + GUID + + + + + Institution + + + + + Internet Site Title + + + + + Issue + + + + + Journal Name + + + + + Locale ID + + + + + Medium + + + + + Month + + + + + Month Accessed + + + + + Number of Volumes + + + + + Pages + + + + + Patent Number + + + + + Periodical Title + + + + + Production Company + + + + + Publication Title + + + + + Publisher + + + + + Recording Number + + + + + Reference Order + + + + + Reporter + + + + + Source Type + + + + + Short Title + + + + + Standard Number + + + + + State or Province + + + + + Station + + + + + Tag + + + + + Theater + + + + + Thesis Type + + + + + Title + + + + + Type + + + + + URL + + + + + Version + + + + + Volume + + + + + Year + + + + + Year Accessed + + + + + + + + Sources + + + + + + + Source + + + + + + Selected Style + + + + + Documentation Style Name + + + + + Uniform Resource Identifier + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-commonSimpleTypes.xsd b/tests/resources/schema/ecma-376/shared-commonSimpleTypes.xsd new file mode 100644 index 000000000..801fadf8e --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-commonSimpleTypes.xsd @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-customXmlDataProperties.xsd b/tests/resources/schema/ecma-376/shared-customXmlDataProperties.xsd new file mode 100644 index 000000000..d2e7ce936 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-customXmlDataProperties.xsd @@ -0,0 +1,46 @@ + + + + + 128-Bit GUID Value + + + + + + + + + Target Namespace of Associated XML Schema + + + + + + + + Associated XML Schema + + + + + + + + + Set of Associated XML Schemas + + + + + + Custom XML Data ID + + + + + + Custom XML Data Properties + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-customXmlSchemaProperties.xsd b/tests/resources/schema/ecma-376/shared-customXmlSchemaProperties.xsd new file mode 100644 index 000000000..19de7d36f --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-customXmlSchemaProperties.xsd @@ -0,0 +1,34 @@ + + + + + + Custom XML Schema Namespace + + + + + Resource File Location + + + + + Custom XML Schema Location + + + + + + + + Custom XML Schema Reference + + + + + + + Embedded Custom XML Schema Supplementary Data + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-documentPropertiesCustom.xsd b/tests/resources/schema/ecma-376/shared-documentPropertiesCustom.xsd new file mode 100644 index 000000000..a28208bf8 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-documentPropertiesCustom.xsd @@ -0,0 +1,212 @@ + + + + + + Custom File Properties + + + + + + + Custom File Property + + + + + + + + + Vector + + + + + Array + + + + + Binary Blob + + + + + Binary Blob Object + + + + + Empty + + + + + Null + + + + + 1-Byte Signed Integer + + + + + 2-Byte Signed Integer + + + + + 4-Byte Signed Integer + + + + + 8-Byte Signed Integer + + + + + Integer + + + + + 1-Byte Unsigned Integer + + + + + 2-Byte Unsigned Integer + + + + + 4-Byte Unsigned Integer + + + + + 8-Byte Unsigned Integer + + + + + Unsigned Integer + + + + + 4-Byte Real Number + + + + + 8-Byte Real Number + + + + + Decimal + + + + + LPSTR + + + + + LPWSTR + + + + + Basic String + + + + + Date and Time + + + + + File Time + + + + + Boolean + + + + + Currency + + + + + Error Status Code + + + + + Binary Stream + + + + + Binary Stream Object + + + + + Binary Storage + + + + + Binary Storage Object + + + + + Binary Versioned Stream + + + + + Class ID + + + + + Clipboard Data + + + + + + Format ID + + + + + Property ID + + + + + Custom File Property Name + + + + + Bookmark Link Target + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-documentPropertiesExtended.xsd b/tests/resources/schema/ecma-376/shared-documentPropertiesExtended.xsd new file mode 100644 index 000000000..eb094ef32 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-documentPropertiesExtended.xsd @@ -0,0 +1,175 @@ + + + + + + Application Specific File Properties + + + + + + + Name of Document Template + + + + + Name of Manager + + + + + Name of Company + + + + + Total Number of Pages + + + + + Word Count + + + + + Total Number of Characters + + + + + Intended Format of Presentation + + + + + Number of Lines + + + + + Total Number of Paragraphs + + + + + Slides Metadata Element + + + + + Number of Slides Containing Notes + + + + + Total Edit Time Metadata Element + + + + + Number of Hidden Slides + + + + + Total Number of Multimedia Clips + + + + + Thumbnail Display Mode + + + + + Heading Pairs + + + + + Part Titles + + + + + Links Up-to-Date + + + + + Number of Characters (With Spaces) + + + + + Shared Document + + + + + Relative Hyperlink Base + + + + + Hyperlink List + + + + + Hyperlinks Changed + + + + + Digital Signature + + + + + Application Name + + + + + Application Version + + + + + Document Security + + + + + + + + + Vector + + + + + + + + + Vector + + + + + + + + + Binary Blob + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-documentPropertiesVariantTypes.xsd b/tests/resources/schema/ecma-376/shared-documentPropertiesVariantTypes.xsd new file mode 100644 index 000000000..ad5914995 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-documentPropertiesVariantTypes.xsd @@ -0,0 +1,844 @@ + + + + + Vector Base Type Simple Type + + + + + Variant Base Type + + + + + Vector Base Type Enumeration Value + + + + + 2-Byte Signed Integer Base Type + + + + + 4-Byte Signed Integer Base Type + + + + + 8-Byte Signed Integer Base Type + + + + + 1-Byte Unsigned Integer Base Type + + + + + 2-Byte Unisigned Integer Base Type + + + + + 4-Byte Unsigned Integer Base Type + + + + + 8-Byte Unsigned Integer Base Type + + + + + 4-Byte Real Number Base Type + + + + + 8-Byte Real Number Base Type + + + + + LPSTR Base Type + + + + + LPWSTR Base Type + + + + + Basic String Base Type + + + + + Date and Time Base Type + + + + + File Time Base Type + + + + + Boolean Base Type + + + + + Currency Base Type + + + + + Error Status Code Base Type + + + + + Class ID Base Type + + + + + Clipboard Data Base Type + + + + + + + Array Base Type Simple Type + + + + + Variant Base Type + + + + + 1-Byte Signed Integer Base Type + + + + + 2-Byte Signed Integer Base Type + + + + + 4-Byte Signed Integer Base Type + + + + + Integer Base Type + + + + + 1-Byte Unsigned Integer Base Type + + + + + 2-Byte Unsigned Integer Base Type + + + + + 4-Byte Unsigned Integer Base Type + + + + + Unsigned Integer Base Type + + + + + 4-Byte Real Number Base Type + + + + + 8-Byte Real Number Base Type + + + + + Decimal Base Type + + + + + Basic String Base Type + + + + + Date and Time Base Type + + + + + Boolean Base Type + + + + + Curency Base Type + + + + + Error Status Code Base Type + + + + + + + Currency Simple Type + + + + + + + + Error Status Code Simple Type + + + + + + + + Class ID Simple Type + + + + + + + + Format Simple Type + + + + + + + + + + + + + + + + Variant + + + + + 1-Byte Signed Integer + + + + + 2-Byte Signed Integer + + + + + 4-Byte Signed Integer + + + + + 8-Byte Signed Integer + + + + + 1-Byte Unsigned Integer + + + + + 2-Byte Unsigned Integer + + + + + 4-Byte Unsigned Integer + + + + + 8-Byte Unsigned Integer + + + + + 4-Byte Real Number + + + + + 8-Byte Real Number + + + + + LPSTR + + + + + LPWSTR + + + + + Basic String + + + + + Date and Time + + + + + File Time + + + + + Boolean + + + + + Currency + + + + + Error Status Code + + + + + Class ID + + + + + Clipboard Data + + + + + + Vector Base Type + + + + + Vector Size + + + + + + + + Variant + + + + + 1-Byte Signed Integer + + + + + 2-Byte Signed Integer + + + + + 4-Byte Signed Integer + + + + + Integer + + + + + 1-Byte Unsigned Integer + + + + + 2-Byte Unsigned Integer + + + + + 4-Byte Unsigned Integer + + + + + Unsigned Integer + + + + + 4-Byte Real Number + + + + + 8-Byte Real Number + + + + + Decimal + + + + + Basic String + + + + + Date and Time + + + + + Boolean + + + + + Error Status Code + + + + + Currency + + + + + + Array Lower Bounds Attribute + + + + + Array Upper Bounds Attribute + + + + + Array Base Type + + + + + + + + Variant + + + + + Vector + + + + + Array + + + + + Binary Blob + + + + + Binary Blob Object + + + + + Empty + + + + + Null + + + + + 1-Byte Signed Integer + + + + + 2-Byte Signed Integer + + + + + 4-Byte Signed Integer + + + + + 8-Byte Signed Integer + + + + + Integer + + + + + 1-Byte Unsigned Integer + + + + + 2-Byte Unsigned Integer + + + + + 4-Byte Unsigned Integer + + + + + 8-Byte Unsigned Integer + + + + + Unsigned Integer + + + + + 4-Byte Real Number + + + + + 8-Byte Real Number + + + + + Decimal + + + + + LPSTR + + + + + LPWSTR + + + + + Basic String + + + + + Date and Time + + + + + File Time + + + + + Boolean + + + + + Currency + + + + + Error Status Code + + + + + Binary Stream + + + + + Binary Stream Object + + + + + Binary Storage + + + + + Binary Storage Object + + + + + Binary Versioned Stream + + + + + Class ID + + + + + Clipboard Data + + + + + + + + + + VSTREAM Version Attribute + + + + + + + + + + + Format Attribute + + + + + + + + Variant + + + + + Vector + + + + + Array + + + + + Binary Blob + + + + + Binary Blob Object + + + + + Empty + + + + + Null + + + + + 1-Byte Signed Integer + + + + + 2-Byte Signed Integer + + + + + 4-Byte Signed Integer + + + + + 8-Byte Signed Integer + + + + + Integer + + + + + 1-Byte Unsigned Integer + + + + + 2-Byte Unsigned Integer + + + + + 4-Byte Unsigned Integer + + + + + 8-Byte Unsigned Integer + + + + + Unsigned Integer + + + + + 4-Byte Real Number + + + + + 8-Byte Real Number + + + + + Decimal + + + + + LPSTR + + + + + LPWSTR + + + + + Basic String + + + + + Date and Time + + + + + File Time + + + + + Boolean + + + + + Currency + + + + + Error Status Code + + + + + Binary Stream + + + + + Binary Stream Object + + + + + Binary Storage + + + + + Binary Storage Object + + + + + Binary Versioned Stream + + + + + Class ID + + + + + Clipboard Data + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-math.xsd b/tests/resources/schema/ecma-376/shared-math.xsd new file mode 100644 index 000000000..1740e6fc5 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-math.xsd @@ -0,0 +1,1528 @@ + + + + + + + Integer value (1 to 255) + + + + + + + + + + Value + + + + + + Integer value (-2 to 2) + + + + + + + + + + Value + + + + + + Spacing Rule + + + + + + + + + + Value + + + + + + Unsigned integer. + + + + + + + Value + + + + + + Character + + + + + + + + + value + + + + + + On Off + + + + + On + + + + + Off + + + + + + + + value + + + + + + String + + + + + + + value + + + + + + Horizontal Alignment + + + + + Left Justification + + + + + Center + + + + + Right + + + + + + + + Value + + + + + + Vertical Alignment + + + + + Top + + + + + Center (Function) + + + + + Bottom Alignment + + + + + + + + Value + + + + + + Shape (Delimiters) + + + + + Centered (Delimiters) + + + + + Match + + + + + + + + Value + + + + + + Fraction Type + + + + + Bar Fraction + + + + + Skewed + + + + + Linear Fraction + + + + + No-Bar Fraction (Stack) + + + + + + + + Value + + + + + + Limit Location + + + + + Under-Over location + + + + + Subscript-Superscript location + + + + + + + + Value + + + + + + Top-Bottom + + + + + Top + + + + + Bottom Alignment + + + + + + + + Value + + + + + + Script + + + + + Roman + + + + + Script + + + + + Fraktur + + + + + double-struck + + + + + Sans-Serif + + + + + Monospace + + + + + + + + Value + + + + + + Style + + + + + Plain + + + + + Bold + + + + + Italic + + + + + Bold-Italic + + + + + + + + Value + + + + + + + Index of Operator to Align To + + + + + + + + Script + + + + + style + + + + + + + + + Literal + + + + + + Normal Text + + + + + + + + + Break + + + + + Align + + + + + + + + + + Content Contains Significant Whitespace + + + + + + + + + + Run Properties + + + + + + + + Text + + + + + + + + + + + + + + + Accent Character + + + + + Control Properties + + + + + + + + + Accent Properties + + + + + Base + + + + + + + + + Position (Bar) + + + + + + + + + + Bar Properties + + + + + Base + + + + + + + + + Operator Emulator + + + + + No Break + + + + + Differential + + + + + Break + + + + + Alignment + + + + + + + + + + Box Properties + + + + + Base + + + + + + + + + Hide Top Edge + + + + + Hide Bottom Edge + + + + + Hide Left Edge + + + + + Hide Right Edge + + + + + Border Box Strikethrough Horizontal + + + + + Border Box Strikethrough Vertical + + + + + Border Box Strikethrough Bottom-Left to Top-Right + + + + + Border Box Strikethrough Top-Left to Bottom-Right + + + + + + + + + + Border Box Properties + + + + + Base + + + + + + + + + Delimiter Beginning Character + + + + + Delimiter Separator Character + + + + + Delimiter Ending Character + + + + + Delimiter Grow + + + + + Shape (Delimiters) + + + + + + + + + + Delimiter Properties + + + + + Base + + + + + + + + + Equation Array Base Justification + + + + + Maximum Distribution + + + + + Object Distribution + + + + + Row Spacing Rule + + + + + Row Spacing (Equation Array) + + + + + + + + + + Equation Array Properties + + + + + Element + + + + + + + + + Fraction type + + + + + + + + + + Fraction Properties + + + + + Numerator + + + + + Denominator + + + + + + + + + + + + + + Function Properties + + + + + Function Name + + + + + Base (Argument) + + + + + + + + + Group Character (Grouping Character) + + + + + Position (Group Character) + + + + + Vertical Justification + + + + + + + + + + Group-Character Properties + + + + + Base + + + + + + + + + + + + + + Lower Limit Properties + + + + + Base + + + + + Limit (Lower) + + + + + + + + + + + + + + Upper Limit Properties + + + + + Base + + + + + Limit (Upper) + + + + + + + + + Matrix Column Count + + + + + Matrix Column Justification + + + + + + + + + Matrix Column Properties + + + + + + + + + Matrix Column + + + + + + + + + Matrix Base Justification + + + + + Hide Placeholders (Matrix) + + + + + Row Spacing Rule + + + + + Matrix Column Gap Rule + + + + + Row Spacing (Matrix) + + + + + Matrix Column Spacing + + + + + Matrix Column Gap + + + + + Matrix Columns + + + + + + + + + + Element + + + + + + + + + Matrix Properties + + + + + Matrix Row + + + + + + + + + n-ary Operator Character + + + + + n-ary Limit Location + + + + + n-ary Grow + + + + + Hide Subscript (n-ary) + + + + + Hide Superscript (n-ary) + + + + + + + + + + n-ary Properties + + + + + Lower limit (n-ary) + + + + + Upper limit (n-ary) + + + + + Base (Argument) + + + + + + + + + Phantom Show + + + + + Phantom Zero Width + + + + + Phantom Zero Ascent + + + + + Phantom Zero Descent + + + + + Transparent (Phantom) + + + + + + + + + + Phantom Properties + + + + + Base + + + + + + + + + Hide Degree + + + + + + + + + + Radical Properties + + + + + Degree + + + + + Base + + + + + + + + + + + + + + Pre-Sub-Superscript Properties + + + + + Subscript (Pre-Sub-Superscript) + + + + + Superscript(Pre-Sub-Superscript function) + + + + + Base + + + + + + + + + + + + + + Subscript Properties + + + + + Base + + + + + Subscript (Subscript function) + + + + + + + + + Align Scripts + + + + + + + + + + Sub-Superscript Properties + + + + + Base + + + + + Subscript (Sub-Superscript) + + + + + Superscript (Sub-Superscript function) + + + + + + + + + + + + + + Superscript Properties + + + + + Base + + + + + Superscript (Superscript function) + + + + + + + + + Accent + + + + + Bar + + + + + Box Function + + + + + Border-Box Function + + + + + Delimiter Function + + + + + Equation-Array Function + + + + + Fraction Function + + + + + Function Apply Function + + + + + Group-Character Function + + + + + Lower-Limit Function + + + + + Upper-Limit Function + + + + + Matrix Function + + + + + n-ary Operator Function + + + + + Phantom Function + + + + + Radical Function + + + + + Pre-Sub-Superscript Function + + + + + Subscript Function + + + + + Sub-Superscript Function + + + + + Superscript Function + + + + + Run + + + + + + + + + + + + + + + Argument Size + + + + + + + + + Argument Properties + + + + + + + + + Justification + + + + + Left Justification + + + + + Right + + + + + Center (Equation) + + + + + Centered as Group (Equations) + + + + + + + + Value + + + + + + + + Justification + + + + + + + Twips measurement + + + + + + + Value + + + + + + Break Binary Operators + + + + + Before + + + + + After + + + + + Repeat + + + + + + + + Value + + + + + + Break on Binary Subtraction + + + + + Minus Minus + + + + + Minus Plus + + + + + Plus Minus + + + + + + + + Value + + + + + + + + Math Font + + + + + Break on Binary Operators + + + + + Break on Binary Subtraction + + + + + Small Fraction + + + + + Use Display Math Defaults + + + + + Left Margin + + + + + Right Margin + + + + + Default Justification + + + + + Pre-Equation Spacing + + + + + Post-Equation Spacing + + + + + Inter-Equation Spacing + + + + + Intra-Equation Spacing + + + + + + Wrap Indent + + + + + Wrap Right + + + + + + Integral Limit Locations + + + + + n-ary Limit Location + + + + + + + Math Properties + + + + + + + Office Math Paragraph Properties + + + + + Office Math + + + + + + + + + + + + + + + + + + + + Math Paragraph + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/shared-relationshipReference.xsd b/tests/resources/schema/ecma-376/shared-relationshipReference.xsd new file mode 100644 index 000000000..938c42210 --- /dev/null +++ b/tests/resources/schema/ecma-376/shared-relationshipReference.xsd @@ -0,0 +1,31 @@ + + + + + Explicit Relationship ID + + + + + + Relationship ID + + + + + Embedded Image Relationship Target + + + + + + + + + + + + Hyperlink Target Relationship ID + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/sml.xsd b/tests/resources/schema/ecma-376/sml.xsd new file mode 100644 index 000000000..6c0bcb301 --- /dev/null +++ b/tests/resources/schema/ecma-376/sml.xsd @@ -0,0 +1,15170 @@ + + + + + + + + + + + + + + + AutoFilter Column + + + + + Sort State for Auto Filter + + + + + + + Cell or Range Reference + + + + + + + + Filter Criteria + + + + + Top 10 + + + + + Custom Filters + + + + + Dynamic Filter + + + + + Color Filter Criteria + + + + + Icon Filter + + + + + + + Filter Column Data + + + + + Hidden AutoFilter Button + + + + + Show Filter Button + + + + + + + + Filter + + + + + Date Grouping + + + + + + Filter by Blank + + + + + Calendar Type + + + + + + + Filter Value + + + + + + + + Custom Filter Criteria + + + + + + And + + + + + + + Filter Comparison Operator + + + + + Top or Bottom Value + + + + + + + Top + + + + + Filter by Percent + + + + + Top or Bottom Value + + + + + Filter Value + + + + + + + Differential Format Record Id + + + + + Filter By Cell Color + + + + + + + Icon Set + + + + + Icon Id + + + + + + Filter Operator + + + + + Equal + + + + + Less Than + + + + + Less Than Or Equal + + + + + Not Equal + + + + + Greater Than Or Equal + + + + + Greater Than + + + + + + + + Dynamic filter type + + + + + Value + + + + + Max Value + + + + + + Dynamic Filter + + + + + Null + + + + + Above Average + + + + + Below Average + + + + + Tomorrow + + + + + Today + + + + + Yesterday + + + + + Next Week + + + + + This Week + + + + + Last Week + + + + + Next Month + + + + + This Month + + + + + Last Month + + + + + Next Quarter + + + + + This Quarter + + + + + Last Quarter + + + + + Next Year + + + + + This Year + + + + + Last Year + + + + + Year To Date + + + + + 1st Quarter + + + + + 2nd Quarter + + + + + 3rd Quarter + + + + + 4th Quarter + + + + + 1st Month + + + + + 2nd Month + + + + + 3rd Month + + + + + 4th Month + + + + + 5th Month + + + + + 6th Month + + + + + 7th Month + + + + + 8th Month + + + + + 9th Month + + + + + 10th Month + + + + + 11th Month + + + + + 12th Month + + + + + + + Icon Set Type + + + + + 3 Arrows + + + + + 3 Arrows (Gray) + + + + + 3 Flags + + + + + 3 Traffic Lights + + + + + 3 Traffic Lights Black + + + + + 3 Signs + + + + + 3 Symbols Circled + + + + + 3 Symbols + + + + + 4 Arrows + + + + + 4 Arrows (Gray) + + + + + 4 Red To Black + + + + + 4 Ratings + + + + + 4 Traffic Lights + + + + + 5 Arrows + + + + + 5 Arrows (Gray) + + + + + 5 Ratings Icon Set + + + + + 5 Quarters + + + + + + + + + Sort Condition + + + + + + + Sort by Columns + + + + + Case Sensitive + + + + + Sort Method + + + + + Sort Range + + + + + + + Descending + + + + + Sort By + + + + + Reference + + + + + Custom List + + + + + Format Id + + + + + Icon Set + + + + + Icon Id + + + + + + Sort By + + + + + Value + + + + + Sort by Cell Color + + + + + Sort by Font Color + + + + + Sort by Icon + + + + + + + Sort Method + + + + + Sort by Stroke + + + + + PinYin Sort + + + + + None + + + + + + + Calendar Type + + + + + No Calendar Type + + + + + Gregorian + + + + + Gregorian (U.S.) Calendar + + + + + Japanese Emperor Era Calendar + + + + + Taiwan Era Calendar + + + + + Korean Tangun Era Calendar + + + + + Hijri (Arabic Lunar) Calendar + + + + + Thai Calendar + + + + + Hebrew (Lunar) Calendar + + + + + Gregorian Middle East French Calendar + + + + + Gregorian Arabic Calendar + + + + + Gregorian Transliterated English Calendar + + + + + Gregorian Transliterated French Calendar + + + + + + + + Year + + + + + Month + + + + + Day + + + + + Hour + + + + + Minute + + + + + Second + + + + + Date Time Grouping + + + + + + Date Time Grouping + + + + + Group by Year + + + + + Month + + + + + Day + + + + + Group by Hour + + + + + Group by Minute + + + + + Second + + + + + + + + + Escaped String + + + + + + Cell Reference + + + + + + Cell References + + + + + + Single Cell Reference + + + + + + Reference Sequence + + + + + + Formula + + + + + + Hex Unsigned Integer + + + + + + + + Unsigned Short Hex + + + + + + + + Globally Unique Identifier + + + + + + + + + Value + + + + + + + + + + URI + + + + + + + + Extension + + + + + + + + + + + + + + + Calculation Chain Info + + + + + + + Cell + + + + + + + + + Cell Reference + + + + + Sheet Id + + + + + Child Chain + + + + + New Dependency Level + + + + + New Thread + + + + + Array + + + + + + + + + + Comments + + + + + + + Authors + + + + + List of Comments + + + + + + + + + + Author + + + + + + + + + Comment + + + + + + + + + Comment Text + + + + + + Cell Reference + + + + + Author Id + + + + + Unique Identifier for Comment + + + + + + + + XML Mapping + + + + + + + XML Schema + + + + + XML Mapping Properties + + + + + + Prefix Mappings for XPath Expressions + + + + + + + + + + Schema ID + + + + + Schema Reference + + + + + Schema Root Namespace + + + + + + + + XML Mapping + + + + + + XML Mapping ID + + + + + XML Mapping Name + + + + + Root Element Name + + + + + Schema Name + + + + + Show Validation Errors + + + + + AutoFit Table on Refresh + + + + + Append Data to Table + + + + + Preserve AutoFilter State + + + + + Preserve Cell Formatting + + + + + + + + + + Unique Identifer + + + + + Binding to External File + + + + + Reference to Connection ID + + + + + File Binding Name + + + + + XML Data Loading Behavior + + + + + + + + + + Connections + + + + + + + Connection + + + + + + + + + ODBC & OLE DB Properties + + + + + OLAP Properties + + + + + Web Query Properties + + + + + Text Import Settings + + + + + Query Parameters + + + + + Future Feature Data Storage + + + + + + Connection Id + + + + + Source Database File + + + + + Connection File + + + + + Keep Connection Open + + + + + Automatic Refresh Interval + + + + + Connection Name + + + + + Connection Description + + + + + Database Source Type + + + + + Reconnection Method + + + + + Last Refresh Version + + + + + Minimum Version Required for Refresh + + + + + Save Password + + + + + New Connection + + + + + Deleted Connection + + + + + Only Use Connection File + + + + + Background Refresh + + + + + Refresh on Open + + + + + Save Data + + + + + Reconnection Method + + + + + SSO Id + + + + + + Credentials Method + + + + + Integrated Authentication + + + + + No Credentials + + + + + Stored Credentials + + + + + Prompt Credentials + + + + + + + + Connection String + + + + + Command Text + + + + + Command Text + + + + + OLE DB Command Type + + + + + + + Local Cube + + + + + Local Cube Connection + + + + + Local Refresh + + + + + Send Locale to OLAP + + + + + Drill Through Count + + + + + OLAP Fill Formatting + + + + + OLAP Number Format + + + + + OLAP Server Font + + + + + OLAP Font Formatting + + + + + + + + Tables + + + + + + XML Source + + + + + Import XML Source Data + + + + + Parse PRE + + + + + Consecutive Delimiters + + + + + Use First Row + + + + + Created in Excel 97 + + + + + Dates as Text + + + + + Refreshed in Excel 2000 + + + + + URL + + + + + Web Post + + + + + HTML Tables Only + + + + + HTML Formatting Handling + + + + + Edit Query URL + + + + + + HTML Formatting Handling + + + + + No Formatting + + + + + Honor Rich Text + + + + + All + + + + + + + + + Parameter Properties + + + + + + Parameter Count + + + + + + + Parameter Name + + + + + SQL Data Type + + + + + Parameter Type + + + + + Refresh on Change + + + + + Parameter Prompt String + + + + + Boolean + + + + + Double + + + + + Integer + + + + + String + + + + + Cell Reference + + + + + + Parameter Type + + + + + Prompt on Refresh + + + + + Value + + + + + Parameter From Cell + + + + + + + + + No Value + + + + + Character Value + + + + + Index + + + + + + Count of Tables + + + + + + + + + Fields + + + + + + Prompt for File Name + + + + + File Type + + + + + Code Page + + + + + First Row + + + + + Source File Name + + + + + Delimited File + + + + + Decimal Separator + + + + + Thousands Separator + + + + + Tab as Delimiter + + + + + Space is Delimiter + + + + + Comma is Delimiter + + + + + Semicolon is Delimiter + + + + + Consecutive Delimiters + + + + + Qualifier + + + + + Custom Delimiter + + + + + + File Type + + + + + Macintosh + + + + + Windows (ANSI) + + + + + DOS + + + + + + + Qualifier + + + + + Double Quote + + + + + Single Quote + + + + + No Text Qualifier + + + + + + + + + Text Import Field Settings + + + + + + Count of Fields + + + + + + + Field Type + + + + + Position + + + + + + Text Field Datatype + + + + + General + + + + + Text + + + + + Month Day Year + + + + + Day Month Year + + + + + Year Month Day + + + + + Month Day Year + + + + + Day Year Month + + + + + Year Day Month + + + + + Skip Field + + + + + East Asian Year Month Day + + + + + + + + + + + + + + + PivotCache Definition + + + + + PivotCache Records + + + + + PivotTable Definition + + + + + + + PivotCache Source Description + + + + + PivotCache Fields + + + + + PivotCache Hierarchies + + + + + OLAP KPIs + + + + + Tuple Cache + + + + + Calculated Items + + + + + Calculated Members + + + + + OLAP Dimensions + + + + + OLAP Measure Groups + + + + + OLAP Measure Group + + + + + Future Feature Data Storage Area + + + + + + Relationship Identifier + + + + + Invalid Cache + + + + + Save Pivot Records + + + + + Refresh On Load + + + + + Optimize Cache for Memory + + + + + Enable PivotCache Refresh + + + + + Last Refreshed By + + + + + PivotCache Last Refreshed Date + + + + + Background Query + + + + + Missing Items Limit + + + + + PivotCache Created Version + + + + + PivotCache Last Refreshed Version + + + + + Minimum Version Required for Refresh + + + + + PivotCache Record Count + + + + + Upgrade PivotCache on Refresh + + + + + Stores Cache for OLAP Functions + + + + + Supports Subqueries + + + + + Supports Attribute Drilldown + + + + + + + + PivotCache Field + + + + + + Field Count + + + + + + + + Shared Items + + + + + Field Group Properties + + + + + Member Properties Map + + + + + Future Feature Data Storage Area + + + + + + PivotCache Field Name + + + + + PivotCache Field Caption + + + + + Property Name + + + + + Server-based Field + + + + + Unique List Retrieved + + + + + Number Format Id + + + + + Calculated Field Formula + + + + + SQL Data Type + + + + + Hierarchy + + + + + Hierarchy Level + + + + + Database Field + + + + + Member Property Count + + + + + Member Property Field + + + + + + + + Worksheet PivotCache Source + + + + + Consolidation Source + + + + + Future Feature Data Storage Area + + + + + + Cache Type + + + + + Connection Index + + + + + + PivotCache Type + + + + + Worksheet + + + + + External + + + + + Consolidation Ranges + + + + + Scenario Summary Report + + + + + + + + Reference + + + + + Named Range + + + + + Sheet Name + + + + + Relationship Id + + + + + + + + Page Item Values + + + + + Range Sets + + + + + + Auto Page + + + + + + + + Page Items + + + + + + Page Item String Count + + + + + + + + Page Item + + + + + + Page Item String Count + + + + + + + Page Item Name + + + + + + + + Range Set + + + + + + Reference and Page Item Count + + + + + + + Field Item Index Page 1 + + + + + Field Item Index Page 2 + + + + + Field Item index Page 3 + + + + + Field Item Index Page 4 + + + + + Reference + + + + + Named Range + + + + + Sheet Name + + + + + Relationship Id + + + + + + + + No Value + + + + + Numeric + + + + + Boolean + + + + + Error Value + + + + + Character Value + + + + + Date Time + + + + + + Contains Semi Mixed Data Types + + + + + Contains Non Date + + + + + Contains Date + + + + + Contains String + + + + + Contains Blank + + + + + Contains Mixed Data Types + + + + + Contains Numbers + + + + + Contains Integer + + + + + Minimum Numeric Value + + + + + Maximum Numeric Value + + + + + Minimum Date Time + + + + + Maximum Date Time Value + + + + + Shared Items Count + + + + + Long Text + + + + + + + + Tuples + + + + + Member Property Indexes + + + + + + Unused Item + + + + + Calculated Item + + + + + Caption + + + + + Member Property Count + + + + + Format Index + + + + + background Color + + + + + Foreground Color + + + + + Italic + + + + + Underline + + + + + Strikethrough + + + + + Bold + + + + + + + + OLAP Members + + + + + Member Property Index + + + + + + Value + + + + + Unused Item + + + + + Calculated Item + + + + + Caption + + + + + Member Property Count + + + + + Format Index + + + + + Background Color + + + + + Foreground Color + + + + + Italic + + + + + Underline + + + + + Strikethrough + + + + + Bold + + + + + + + + Member Property Indexes + + + + + + Value + + + + + Unused Item + + + + + Calculated Item + + + + + Caption + + + + + Member Property Count + + + + + + + + Tuples + + + + + Member Property Indexes + + + + + + Value + + + + + Unused Item + + + + + Calculated Item + + + + + Item Caption + + + + + Member Property Count + + + + + Format Index + + + + + background Color + + + + + Foreground Color + + + + + Italic + + + + + Underline + + + + + Strikethrough + + + + + Bold + + + + + + + + Tuples + + + + + Member Property Index + + + + + + Value + + + + + Unused Item + + + + + Calculated Item + + + + + Item Caption + + + + + Member Property Count + + + + + Format Index + + + + + Background Color + + + + + Foreground Color + + + + + Italic + + + + + Underline + + + + + Strikethrough + + + + + Bold + + + + + + + + Member Property Index + + + + + + Value + + + + + Unused Item + + + + + Calculated Item Value + + + + + Caption + + + + + Member Property Count + + + + + + + + Range Grouping Properties + + + + + Discrete Grouping Properties + + + + + OLAP Group Items + + + + + + Parent + + + + + Field Base + + + + + + + Source Data Set Beginning Range + + + + + Source Data Ending Range + + + + + Group By + + + + + Numeric Grouping Start Value + + + + + Numeric Grouping End Value + + + + + Date Grouping Start Value + + + + + Date Grouping End Value + + + + + Grouping Interval + + + + + + Values Group By + + + + + Group By Numeric Ranges + + + + + Seconds + + + + + Minutes + + + + + Hours + + + + + Days + + + + + Months + + + + + Quarters + + + + + Years + + + + + + + + + Element Group + + + + + + Mapping Index Count + + + + + + + + No Value + + + + + Numeric Value + + + + + Boolean + + + + + Error Value + + + + + Character Value + + + + + Date Time + + + + + + Items Created Count + + + + + + + + PivotCache Record + + + + + Future Feature Data Storage Area + + + + + + PivotCache Records Count + + + + + + + + No Value + + + + + Numeric Value + + + + + Boolean + + + + + Error Value + + + + + Character Value + + + + + Date Time + + + + + Shared Items Index + + + + + + + + + OLAP KPI + + + + + + KPI Count + + + + + + + KPI Unique Name + + + + + KPI Display Name + + + + + KPI Display Folder + + + + + KPI Measure Group Name + + + + + Parent KPI + + + + + KPI Value Unique Name + + + + + KPI Goal Unique Name + + + + + KPI Status Unique Name + + + + + KPI Trend Unique Name + + + + + KPI Weight Unique Name + + + + + Time Member KPI Unique Name + + + + + + + + PivotCache Hierarchy + + + + + + Hierarchy Count + + + + + + + + Fields Usage + + + + + OLAP Grouping Levels + + + + + Future Feature Data Storage Area + + + + + + Hierarchy Unique Name + + + + + Hierarchy Display Name + + + + + Measure Hierarchy + + + + + Set + + + + + Parent Set + + + + + KPI Icon Set + + + + + Attribute Hierarchy + + + + + Time + + + + + Key Attribute Hierarchy + + + + + Default Member Unique Name + + + + + Unique Name of 'All' + + + + + Display Name of 'All' + + + + + Dimension Unique Name + + + + + Display Folder + + + + + Measure Group Name + + + + + Measures + + + + + Levels Count + + + + + One Field + + + + + Member Value Data Type + + + + + Unbalanced + + + + + Unbalanced Group + + + + + Hidden + + + + + + + + PivotCache Field Id + + + + + + Field Count + + + + + + + Field Index + + + + + + + + OLAP Grouping Levels + + + + + + Grouping Level Count + + + + + + + + OLAP Level Groups + + + + + Future Feature Data Storage Area + + + + + + Unique Name + + + + + Grouping Level Display Name + + + + + User-Defined Group Level + + + + + Custom Roll Up + + + + + + + + OLAP Group + + + + + + Level Group Count + + + + + + + + OLAP Group Members + + + + + + Group Name + + + + + Unique Group Name + + + + + Group Caption + + + + + Parent Unique Name + + + + + Group Id + + + + + + + + OLAP Group Member + + + + + + Group Member Count + + + + + + + Group Member Unique Name + + + + + Group + + + + + + + + Entries + + + + + Sets + + + + + OLAP Query Cache + + + + + Server Formats + + + + + Future Feature Data Storage Area + + + + + + + + Culture + + + + + Format + + + + + + + + Server Format + + + + + + Format Count + + + + + + + + No Value + + + + + Numeric Value + + + + + Error Value + + + + + Character Value + + + + + + Tuple Count + + + + + + + + Tuple + + + + + + Member Name Count + + + + + + + Field Index + + + + + Hierarchy Index + + + + + Item Index + + + + + + + + OLAP Set + + + + + + Tuple Set Count + + + + + + + + Tuples + + + + + Sort By Tuple + + + + + + Number of Tuples + + + + + Maximum Rank Requested + + + + + MDX Set Definition + + + + + Set Sort Order + + + + + Query Failed + + + + + + Set Sort Order + + + + + None + + + + + Ascending + + + + + Descending + + + + + Ascending Alpha + + + + + Alphabetic Order Descending + + + + + Ascending Natural + + + + + Natural Order Descending + + + + + + + + + Query + + + + + + Cached Query Count + + + + + + + + Tuples + + + + + + MDX Query String + + + + + + + + Calculated Item + + + + + + Calculated Item Formula Count + + + + + + + + Calculated Item Location + + + + + Future Feature Data Storage Area + + + + + + Field Index + + + + + Calculated Item Formula + + + + + + + + Calculated Member + + + + + + Calculated Members Count + + + + + + + + Future Feature Data Storage Area + + + + + + Calculated Member Name + + + + + Calculated Member MDX Formula + + + + + OLAP Calculated Member Name + + + + + Hierarchy Name + + + + + Parent Name + + + + + Calculated Members Solve Order + + + + + Set + + + + + + + + PivotTable Location + + + + + PivotTable Fields + + + + + Row Fields + + + + + Row Items + + + + + Column Fields + + + + + Column Items + + + + + Page Field Items + + + + + Data Fields + + + + + PivotTable Formats + + + + + Conditional Formats + + + + + PivotChart Formats + + + + + PivotTable OLAP Hierarchies + + + + + PivotTable Style + + + + + Filters + + + + + Row OLAP Hierarchy References + + + + + Column OLAP Hierarchy References + + + + + Future Feature Data Storage Area + + + + + + Name + + + + + PivotCache Definition Id + + + + + Data On Rows + + + + + Default Data Field Position + + + + + + Data Field Header Name + + + + + Grand Totals Caption + + + + + Error Caption + + + + + Show Error + + + + + Caption for Missing Values + + + + + Show Missing + + + + + Page Header Style Name + + + + + Table Style Name + + + + + Vacated Style + + + + + PivotTable Custom String + + + + + PivotTable Last Updated Version + + + + + Minimum Refreshable Version + + + + + Asterisk Totals + + + + + Show Item Names + + + + + Allow Edit Data + + + + + Disable Field List + + + + + Show Calculated Members + + + + + Total Visual Data + + + + + Show Multiple Labels + + + + + Show Drop Down + + + + + Show Expand Collapse + + + + + Print Drill Indicators + + + + + Show Member Property ToolTips + + + + + Show ToolTips on Data + + + + + Enable PivotTable Wizard + + + + + Enable Drill Down + + + + + Enable Field Properties + + + + + Preserve Formatting + + + + + Auto Formatting + + + + + Page Wrap + + + + + Page Over Then Down + + + + + Subtotal Hidden Items + + + + + Row Grand Totals + + + + + Grand Totals On Columns + + + + + Field Print Titles + + + + + Item Print Titles + + + + + Merge Titles + + + + + Show Drop Zones + + + + + PivotCache Created Version + + + + + Indentation for Compact Axis + + + + + Show Empty Row + + + + + Show Empty Column + + + + + Show Field Headers + + + + + Compact New Fields + + + + + Outline New Fields + + + + + Outline Data Fields + + + + + Compact Data + + + + + Data Fields Published + + + + + Enable Drop Zones + + + + + Stop Immersive UI + + + + + Multiple Field Filters + + + + + Chart Format Id + + + + + Row Header Caption + + + + + Column Header Caption + + + + + Default Sort Order + + + + + MDX Subqueries Supported + + + + + Custom List AutoSort + + + + + + + Reference + + + + + First Header Row + + + + + PivotTable Data First Row + + + + + First Data Column + + + + + Rows Per Page Count + + + + + Columns Per Page + + + + + + + + PivotTable Field + + + + + + Field Count + + + + + + + + Field Items + + + + + AutoSort Scope + + + + + Future Feature Data Storage Area + + + + + + Field Name + + + + + Axis + + + + + Data Field + + + + + Custom Subtotal Caption + + + + + Show PivotField Header Drop Downs + + + + + Hidden Level + + + + + Unique Member Property + + + + + Compact + + + + + All Items Expanded + + + + + Number Format Id + + + + + Outline Items + + + + + Subtotals At Top + + + + + Drag To Row + + + + + Drag To Column + + + + + Multiple Field Filters + + + + + Drag Field to Page + + + + + Field Can Drag to Data + + + + + Drag Off + + + + + Show All Items + + + + + Insert Blank Row + + + + + Server-based Page Field + + + + + Insert Item Page Break + + + + + Auto Show + + + + + Top Auto Show + + + + + Hide New Items + + + + + Measure Filter + + + + + Inclusive Manual Filter + + + + + Items Per Page Count + + + + + Auto Sort Type + + + + + Data Source Sort + + + + + Auto Sort + + + + + Auto Show Rank By + + + + + Show Default Subtotal + + + + + Sum Subtotal + + + + + CountA + + + + + Average + + + + + Max Subtotal + + + + + Min Subtotal + + + + + Product Subtotal + + + + + Count + + + + + StdDev Subtotal + + + + + StdDevP Subtotal + + + + + Variance Subtotal + + + + + VarP Subtotal + + + + + Show Member Property in Cell + + + + + Show Member Property ToolTip + + + + + Show As Caption + + + + + Drill State + + + + + + + + Auto Sort Scope + + + + + + + + + PivotTable Field Item + + + + + + Field Count + + + + + + + Item User Caption + + + + + Item Type + + + + + Hidden + + + + + Character + + + + + Hide Details + + + + + Calculated Member + + + + + Missing + + + + + Child Items + + + + + Item Index + + + + + Expanded + + + + + Drill Across Attributes + + + + + + + + Page Field + + + + + + Page Item Count + + + + + + + + Future Feature Data Storage Area + + + + + + Field + + + + + Item Index + + + + + OLAP Hierarchy Index + + + + + Hierarchy Unique Name + + + + + Hierarchy Display Name + + + + + + + + Data Field Item + + + + + + Data Items Count + + + + + + + + Future Feature Data Storage Area + + + + + + Data Field Name + + + + + Field + + + + + Subtotal + + + + + Show Data As Display Format + + + + + 'Show Data As' Base Field + + + + + 'Show Data As' Base Setting + + + + + Number Format Id + + + + + + + + Row Items + + + + + + Items in a Row Count + + + + + + + + Column Items + + + + + + Column Item Count + + + + + + + + Row / Column Item Index + + + + + + Item Type + + + + + Repeated Items Count + + + + + Data Field Index + + + + + + + Shared Items Index + + + + + + + + Row Items + + + + + + Repeated Items Count + + + + + + + + Field + + + + + + Repeated Items Count + + + + + + + Field Index + + + + + + + + PivotTable Format + + + + + + Formats Count + + + + + + + + Pivot Table Location + + + + + Future Feature Data Storage Area + + + + + + Format Action + + + + + Format Id + + + + + + + + Conditional Formatting + + + + + + Conditional Format Count + + + + + + + + Pivot Areas + + + + + + + Conditional Formatting Scope + + + + + Conditional Formatting Rule Type + + + + + Priority + + + + + + + + Pivot Area + + + + + + Pivot Area Count + + + + + + Conditional Formatting Scope + + + + + Selection + + + + + Data Fields + + + + + Field Intersections + + + + + + + Top N Evaluation Type + + + + + Top N None + + + + + All + + + + + Row Top N + + + + + Column Top N + + + + + + + + + PivotChart Format + + + + + + Format Count + + + + + + + + Pivot Table Location Rule + + + + + + Chart Index + + + + + Pivot Format Id + + + + + Series Format + + + + + + + + OLAP Hierarchy + + + + + + OLAP Hierarchy Count + + + + + + + + OLAP Member Properties + + + + + Members + + + + + Future Feature Data Storage Area + + + + + + Outline New Levels + + + + + Multiple Field Filters + + + + + New Levels Subtotals At Top + + + + + Show In Field List + + + + + Drag To Row + + + + + Drag To Column + + + + + Drag to Page + + + + + Drag To Data + + + + + Drag Off + + + + + Inclusive Manual Filter + + + + + Hierarchy Caption + + + + + + + + Row OLAP Hierarchies + + + + + + Item Count + + + + + + + + Column OLAP Hierarchies + + + + + + Items Count + + + + + + + Hierarchy Usage + + + + + + + + OLAP Member Property + + + + + + OLAP Member Properties Count + + + + + + + OLAP Member Property Unique Name + + + + + Show Cell + + + + + Show Tooltip + + + + + Show As Caption + + + + + Name Length + + + + + Property Name Character Index + + + + + Property Name Length + + + + + Level Index + + + + + Field Index + + + + + + + + Member + + + + + + Item Count + + + + + Hierarchy Level + + + + + + + Hidden Item Name + + + + + + + + OLAP Dimension + + + + + + OLAP Dimensions Count + + + + + + + Measure + + + + + Dimension Name + + + + + Dimension Unique Name + + + + + Dimension Display Name + + + + + + + + OLAP Measure Group + + + + + + Measure Group Count + + + + + + + + OLAP Measure Group + + + + + + Measure Group Count + + + + + + + Measure Group Name + + + + + Measure Group Display Name + + + + + + + Measure Group Id + + + + + Dimension Id + + + + + + + Table Style Name + + + + + Show Row Header Formatting + + + + + Show Table Style Column Header Formatting + + + + + Show Row Stripes + + + + + Show Column Stripes + + + + + Show Last Column + + + + + + + + PivotTable Advanced Filter + + + + + + Pivot Filter Count + + + + + + + + Auto Filter + + + + + + + Field Index + + + + + Member Property Field Id + + + + + Pivot Filter Type + + + + + Evaluation Order + + + + + Pivot Filter Id + + + + + Measure Index + + + + + Measure Field Index + + + + + Pivot Filter Name + + + + + Pivot Filter Description + + + + + Label Pivot + + + + + Label Pivot Filter String Value 2 + + + + + + Show Data As + + + + + Normal Data Type + + + + + Difference + + + + + Percentage Of + + + + + Percentage Difference + + + + + Running Total + + + + + Percentage of Row + + + + + Percent of Column + + + + + Percentage of Total + + + + + Index + + + + + + + PivotItem Type + + + + + Data + + + + + Default + + + + + Sum + + + + + CountA + + + + + Average + + + + + Max + + + + + Min + + + + + Product + + + + + Count + + + + + stdDev + + + + + StdDevP + + + + + Var + + + + + VarP + + + + + Grand Total Item + + + + + Blank Pivot Item + + + + + + + PivotTable Format Types + + + + + Blank + + + + + Formatting + + + + + Drill Type + + + + + Formula Type + + + + + + + Field Sort Type + + + + + Manual Sort + + + + + Ascending + + + + + Descending + + + + + + + Pivot Filter Types + + + + + Unknown + + + + + Count + + + + + Percent + + + + + Sum + + + + + Caption Equals + + + + + Caption Not Equal + + + + + Caption Begins With + + + + + Caption Does Not Begin With + + + + + Caption Ends With + + + + + Caption Does Not End With + + + + + Caption Contains + + + + + Caption Does Not Contain + + + + + Caption Is Greater Than + + + + + Caption Is Greater Than Or Equal To + + + + + Caption Is Less Than + + + + + Caption Is Less Than Or Equal To + + + + + Caption Is Between + + + + + Caption Is Not Between + + + + + Value Equal + + + + + Value Not Equal + + + + + Value Greater Than + + + + + Value Greater Than Or Equal To + + + + + Value Less Than + + + + + Value Less Than Or Equal To + + + + + Value Between + + + + + Value Not Between + + + + + Date Equals + + + + + Date Does Not Equal + + + + + Date Older Than + + + + + Date Older Than Or Equal + + + + + Date Newer Than + + + + + Date Newer Than or Equal To + + + + + Date Between + + + + + Date Not Between + + + + + Tomorrow + + + + + Today + + + + + Yesterday + + + + + Next Week + + + + + This Week + + + + + Last Week + + + + + Next Month + + + + + This Month + + + + + Last Month + + + + + Next Quarter + + + + + This Quarter + + + + + Last Quarter + + + + + Next Year + + + + + This Year + + + + + Last Year + + + + + Year-To-Date + + + + + First Quarter + + + + + Second Quarter + + + + + Third Quarter + + + + + Fourth Quarter + + + + + January + + + + + Dates in February + + + + + Dates in March + + + + + Dates in April + + + + + Dates in May + + + + + Dates in June + + + + + Dates in July + + + + + Dates in August + + + + + Dates in September + + + + + Dates in October + + + + + Dates in November + + + + + Dates in December + + + + + + + + + + + + References + + + + + Future Feature Data Storage Area + + + + + + Field Index + + + + + Rule Type + + + + + Data Only + + + + + Labels Only + + + + + Include Row Grand Total + + + + + Include Column Grand Total + + + + + Cache Index + + + + + Outline + + + + + Offset Reference + + + + + Collapsed Levels Are Subtotals + + + + + Axis + + + + + Field Position + + + + + + Rule Type + + + + + None + + + + + Normal + + + + + Data + + + + + All + + + + + Origin + + + + + Field Button + + + + + Top Right + + + + + + + + + Reference + + + + + + Pivot Filter Count + + + + + + + + Field Item + + + + + + + Field Index + + + + + Item Index Count + + + + + Selected + + + + + Positional Reference + + + + + Relative Reference + + + + + Include Default Filter + + + + + Include Sum Filter + + + + + Include CountA Filter + + + + + Include Average Filter + + + + + Include Maximum Filter + + + + + Include Minimum Filter + + + + + Include Product Filter + + + + + Include Count Subtotal + + + + + Include StdDev Filter + + + + + Include StdDevP Filter + + + + + Include Var Filter + + + + + Include VarP Filter + + + + + + + Shared Items Index + + + + + + PivotTable Axis + + + + + Row Axis + + + + + Column Axis + + + + + Include Count Filter + + + + + Values Axis + + + + + + + + + + + + Query Table + + + + + + + QueryTable Refresh Information + + + + + Future Feature Data Storage Area + + + + + + QueryTable Name + + + + + First Row Column Titles + + + + + Row Numbers + + + + + Disable Refresh + + + + + Background Refresh + + + + + First Background Refresh + + + + + Refresh On Load + + + + + Grow Shrink Type + + + + + Fill Adjacent Formulas + + + + + Remove Data On Save + + + + + Disable Edit + + + + + Preserve Formatting On Refresh + + + + + Adjust Column Width On Refresh + + + + + Intermediate + + + + + Connection Id + + + + + + + + + Query table fields + + + + + Deleted Fields + + + + + Sort State + + + + + Future Feature Data Storage Area + + + + + + Preserve Sort & Filter Layout + + + + + Next Field Id Wrapped + + + + + Headers In Last Refresh + + + + + Minimum Refresh Version + + + + + Next field id + + + + + Columns Left + + + + + Columns Right + + + + + + + + Deleted Field + + + + + + Deleted Fields Count + + + + + + + Deleted Fields Name + + + + + + + + QueryTable Field + + + + + + Column Count + + + + + + + + Future Feature Data Storage Area + + + + + + Field Id + + + + + Name + + + + + Data Bound Column + + + + + Row Numbers + + + + + Fill This Formula On Refresh + + + + + Clipped Column + + + + + Table Column Id + + + + + + Grow Shrink Type + + + + + Insert & Delete On Refresh + + + + + Insert & Clear On Refresh + + + + + Overwrite & Clear On Refresh + + + + + + + + + + + Shared String Table + + + + + + + String Item + + + + + + + String Count + + + + + Unique String Count + + + + + + Phonetic Type + + + + + Half-Width Katakana + + + + + Full-Width Katakana + + + + + Hiragana + + + + + No Conversion + + + + + + + Phonetic Alignment Types + + + + + No Control + + + + + Left Alignment + + + + + Center Alignment + + + + + Distributed + + + + + + + + + Text + + + + + + Base Text Start Index + + + + + Base Text End Index + + + + + + + + Run Properties + + + + + Text + + + + + + + + + Font + + + + + Character Set + + + + + Font Family + + + + + Bold + + + + + Italic + + + + + Strike Through + + + + + Outline + + + + + Shadow + + + + + Condense + + + + + Extend + + + + + Text Color + + + + + Font Size + + + + + Underline + + + + + Vertical Alignment + + + + + Font Scheme + + + + + + + + + Text + + + + + Rich Text Run + + + + + Phonetic Run + + + + + Phonetic Properties + + + + + + + + Font Id + + + + + Character Type + + + + + Alignment + + + + + + + + + + + + Revision Headers + + + + + Revisions + + + + + + + Header + + + + + + Last Revision GUID + + + + + Last GUID + + + + + Shared Workbook + + + + + Disk Revisions + + + + + History + + + + + Track Revisions + + + + + Exclusive Mode + + + + + Revision Id + + + + + Version + + + + + Keep Change History + + + + + Protected + + + + + Preserve History + + + + + + + + Revision Row Column Insert Delete + + + + + Revision Cell Move + + + + + Revision Custom View + + + + + Revision Sheet Name + + + + + Revision Insert Sheet + + + + + Revision Cell Change + + + + + Revision Format + + + + + Revision AutoFormat + + + + + Revision Defined Name + + + + + Revision Cell Comment + + + + + Revision Query Table + + + + + Revision Merge Conflict + + + + + + + + Revision Id + + + + + Revision From Rejection + + + + + Revision Undo Rejected + + + + + + + + Sheet Id Map + + + + + Reviewed List + + + + + + + GUID + + + + + Date Time + + + + + Last Sheet Id + + + + + User Name + + + + + Relationship ID + + + + + Minimum Revision Id + + + + + Max Revision Id + + + + + + + + Sheet Id + + + + + + Sheet Count + + + + + + + Sheet Id + + + + + + + + Reviewed + + + + + + Reviewed Revisions Count + + + + + + + revision Id + + + + + + + Index + + + + + Expression + + + + + Reference 3D + + + + + Array Entered + + + + + Value Needed + + + + + Defined Name Formula + + + + + Cross Sheet Move + + + + + Range + + + + + Defined Name + + + + + Cell Reference + + + + + Sheet Id + + + + + + + + Undo + + + + + Revised Row Column + + + + + Revision Format + + + + + + + Sheet Id + + + + + End Of List + + + + + Reference + + + + + User Action + + + + + Edge Deleted + + + + + + + + Undo + + + + + Revision Cell Change + + + + + Revision Format + + + + + + + Sheet Id + + + + + Source + + + + + Destination + + + + + Source Sheet Id + + + + + + + GUID + + + + + User Action + + + + + + + + + + + Sheet Id + + + + + Old Sheet Name + + + + + New Sheet Name + + + + + + + + Sheet Id + + + + + Sheet Name + + + + + Sheet Position + + + + + + + + Old Cell Data + + + + + New Cell Data + + + + + Old Formatting Information + + + + + New Formatting Information + + + + + + + + Sheet Id + + + + + Old Formatting + + + + + Row Column Formatting Change + + + + + Style Revision + + + + + Formatting + + + + + Number Format Id + + + + + Quote Prefix + + + + + Old Quote Prefix + + + + + Phonetic Text + + + + + Old Phonetic Text + + + + + End of List Formula Update + + + + + + + + Formatting + + + + + + + Sheet Id + + + + + Row or Column Formatting Change + + + + + Style + + + + + Sequence Of References + + + + + Start index + + + + + Length + + + + + + + Sheet Id + + + + + + Reference + + + + + + + Sheet Id + + + + + Cell + + + + + GUID + + + + + User Action + + + + + Always Show Comment + + + + + Old Comment + + + + + Comment In Hidden Row + + + + + Hidden Column + + + + + Author + + + + + Original Comment Length + + + + + New Comment Length + + + + + + + + Formula + + + + + Old Formula + + + + + + + + Local Name Sheet Id + + + + + Custom View + + + + + Name + + + + + Function + + + + + Old Function + + + + + Function Group Id + + + + + Old Function Group Id + + + + + Shortcut Key + + + + + Old Short Cut Key + + + + + Named Range Hidden + + + + + Old Hidden + + + + + New Custom Menu + + + + + Old Custom Menu Text + + + + + Description + + + + + Old Description + + + + + New Help Topic + + + + + Old Help Topic + + + + + Status Bar + + + + + Old Status Bar + + + + + Name Comment + + + + + Old Name Comment + + + + + + + + Sheet Id + + + + + + + Sheet Id + + + + + QueryTable Reference + + + + + Field Id + + + + + + Row Column Action Type + + + + + Insert Row + + + + + Delete Row + + + + + Column Insert + + + + + Delete Column + + + + + + + Revision Action Types + + + + + Add + + + + + Delete + + + + + + + Formula Expression Type + + + + + Reference + + + + + Reference Is Error + + + + + Area + + + + + Area Error + + + + + Computed Area + + + + + + + + + + User List + + + + + + + User Information + + + + + + Active User Count + + + + + + + + + + User Revisions GUID + + + + + User Name + + + + + User Id + + + + + Date Time + + + + + + + + + + + + + + + Worksheet + + + + + Chart Sheet + + + + + Dialog Sheet + + + + + + + Sheet Properties + + + + + Macro Sheet Dimensions + + + + + Macro Sheet Views + + + + + Sheet Format Properties + + + + + Column Information + + + + + Sheet Data + + + + + Sheet Protection Options + + + + + AutoFilter + + + + + Sort State + + + + + Data Consolidation + + + + + Custom Sheet Views + + + + + Phonetic Properties + + + + + Conditional Formatting + + + + + Print Options + + + + + Page Margins + + + + + Page Setup Settings + + + + + Header Footer Settings + + + + + Horizontal Page Breaks (Row) + + + + + Vertical Page Breaks + + + + + Custom Properties + + + + + Drawing + + + + + Legacy Drawing Reference + + + + + Legacy Drawing Header Footer + + + + + Background Image + + + + + OLE Objects + + + + + Future Feature Data Storage Area + + + + + + + + + Sheet Properties + + + + + Dialog Sheet Views + + + + + Dialog Sheet Format Properties + + + + + Sheet Protection + + + + + Custom Sheet Views + + + + + Print Options + + + + + Page Margins + + + + + Page Setup Settings + + + + + Header & Footer Settings + + + + + Drawing + + + + + Legacy Drawing + + + + + Legacy Drawing Header Footer + + + + + + Future Feature Data Storage Area + + + + + + + + + Worksheet Properties + + + + + Worksheet Dimensions + + + + + Sheet Views + + + + + Sheet Format Properties + + + + + Column Information + + + + + Sheet Data + + + + + Sheet Calculation Properties + + + + + Sheet Protection + + + + + Protected Ranges + + + + + Scenarios + + + + + AutoFilter + + + + + Sort State + + + + + Data Consolidate + + + + + Custom Sheet Views + + + + + Merge Cells + + + + + Phonetic Properties + + + + + Conditional Formatting + + + + + Data Validations + + + + + Hyperlinks + + + + + Print Options + + + + + Page Margins + + + + + Page Setup Settings + + + + + Header and Footer Settings + + + + + Horizontal Page Breaks + + + + + Vertical Page Breaks + + + + + Custom Properties + + + + + Cell Watch Items + + + + + Ignored Errors + + + + + Smart Tags + + + + + Drawing + + + + + Legacy Drawing + + + + + Legacy Drawing Header Footer + + + + + Background Image + + + + + + Embedded Controls + + + + + Web Publishing Items + + + + + Table Parts + + + + + Future Feature Data Storage Area + + + + + + + + + Row + + + + + + + + Full Calculation On Load + + + + + + + Base Column Width + + + + + Default Column Width + + + + + Default Row Height + + + + + Custom Height + + + + + Hidden By Default + + + + + Thick Top Border + + + + + Thick Bottom Border + + + + + Maximum Outline Row + + + + + Column Outline Level + + + + + + + + Column Width & Formatting + + + + + + + + Minimum Column + + + + + Maximum Column + + + + + Column Width + + + + + Style + + + + + Hidden Columns + + + + + Best Fit Column Width + + + + + Custom Width + + + + + Show Phonetic Information + + + + + Outline Level + + + + + Collapsed + + + + + + Cell Span Type + + + + + + Cell Spans + + + + + + + + Cell + + + + + Future Feature Data Storage Area + + + + + + Row Index + + + + + Spans + + + + + Style Index + + + + + Custom Format + + + + + Row Height + + + + + Hidden + + + + + Custom Height + + + + + Outline Level + + + + + Collapsed + + + + + Thick Top Border + + + + + Thick Bottom + + + + + Show Phonetic + + + + + + + + Formula + + + + + Cell Value + + + + + Rich Text Inline + + + + + Future Feature Data Storage Area + + + + + + Reference + + + + + Style Index + + + + + Cell Data Type + + + + + Cell Metadata Index + + + + + Value Metadata Index + + + + + Show Phonetic + + + + + + Cell Type + + + + + Boolean + + + + + Number + + + + + Error + + + + + Shared String + + + + + String + + + + + Inline String + + + + + + + Formula Type + + + + + Normal + + + + + Array Entered + + + + + Table Formula + + + + + Shared Formula + + + + + + + + + Sheet Tab Color + + + + + Outline Properties + + + + + Page Setup Properties + + + + + + Synch Horizontal + + + + + Synch Vertical + + + + + Synch Reference + + + + + Transition Formula Evaluation + + + + + Transition Formula Entry + + + + + Published + + + + + Code Name + + + + + Filter Mode + + + + + Enable Conditional Formatting Calculations + + + + + + + Reference + + + + + + + + Worksheet View + + + + + Future Feature Data Storage Area + + + + + + + + + View Pane + + + + + Selection + + + + + PivotTable Selection + + + + + Future Feature Data Storage Area + + + + + + Window Protection + + + + + Show Formulas + + + + + Show Grid Lines + + + + + Show Headers + + + + + Show Zero Values + + + + + Right To Left + + + + + Sheet Tab Selected + + + + + Show Ruler + + + + + Show Outline Symbols + + + + + Default Grid Color + + + + + Show White Space + + + + + View Type + + + + + Top Left Visible Cell + + + + + Color Id + + + + + Zoom Scale + + + + + Zoom Scale Normal View + + + + + Zoom Scale Page Break Preview + + + + + Zoom Scale Page Layout View + + + + + Workbook View Index + + + + + + + Horizontal Split Position + + + + + Vertical Split Position + + + + + Top Left Visible Cell + + + + + Active Pane + + + + + Split State + + + + + + + + Pivot Area + + + + + + Pane + + + + + Show Header + + + + + Label + + + + + Data Selection + + + + + Extendable + + + + + Selection Count + + + + + Axis + + + + + Dimension + + + + + Start + + + + + Minimum + + + + + Maximum + + + + + Active Row + + + + + Active Column + + + + + Previous Row + + + + + Previous Column Selection + + + + + Click Count + + + + + Relationship Id + + + + + + + Pane + + + + + Active Cell Location + + + + + Active Cell Index + + + + + Sequence of References + + + + + + Pane Types + + + + + Bottom Right Pane + + + + + Top Right Pane + + + + + Bottom Left Pane + + + + + Top Left Pane + + + + + + + + + Break + + + + + + Page Break Count + + + + + Manual Break Count + + + + + + + Id + + + + + Minimum + + + + + Maximum + + + + + Manual Page Break + + + + + Pivot-Created Page Break + + + + + + Sheet View Type + + + + + Normal View + + + + + Page Break Preview + + + + + Page Layout View + + + + + + + + Apply Styles in Outline + + + + + Summary Below + + + + + Summary Right + + + + + Show Outline Symbols + + + + + + + Show Auto Page Breaks + + + + + Fit To Page + + + + + + + + Data Consolidation References + + + + + + Function Index + + + + + Use Left Column Labels + + + + + Labels In Top Row + + + + + Link + + + + + + Data Consolidation Functions + + + + + Average + + + + + Count + + + + + CountNums + + + + + Maximum + + + + + Minimum + + + + + Product + + + + + StdDev + + + + + StdDevP + + + + + Sum + + + + + Variance + + + + + VarP + + + + + + + + + Data Consolidation Reference + + + + + + Data Consolidation Reference Count + + + + + + + Reference + + + + + Named Range + + + + + Sheet Name + + + + + relationship Id + + + + + + + + Merged Cell + + + + + + Count + + + + + + + Reference + + + + + + + + Cell Smart Tags + + + + + + + + + Cell Smart Tag + + + + + + Reference + + + + + + + + Smart Tag Properties + + + + + + Smart Tag Type Index + + + + + Deleted + + + + + XML Based + + + + + + + Key Name + + + + + Value + + + + + + + Relationship id + + + + + + + Relationship Id + + + + + + + + Custom Sheet View + + + + + + + + + Pane Split Information + + + + + Selection + + + + + Horizontal Page Breaks + + + + + Vertical Page Breaks + + + + + Page Margins + + + + + Print Options + + + + + Page Setup Settings + + + + + Header Footer Settings + + + + + AutoFilter Settings + + + + + + + GUID + + + + + Print Scale + + + + + Color Id + + + + + Show Page Breaks + + + + + Show Formulas + + + + + Show Grid Lines + + + + + Show Headers + + + + + Show Outline Symbols + + + + + Show Zero Values + + + + + Fit To Page + + + + + Print Area Defined + + + + + Filtered List + + + + + Show AutoFitler Drop Down Controls + + + + + Hidden Rows + + + + + Hidden Columns + + + + + Visible State + + + + + Filter + + + + + View Type + + + + + Show Ruler + + + + + Top Left Visible Cell + + + + + + + + Data Validation + + + + + + Disable Prompts + + + + + Top Left Corner (X Coodrinate) + + + + + Top Left Corner (Y Coordinate) + + + + + Data Validation Item Count + + + + + + + + Formula 1 + + + + + Formula 2 + + + + + + Data Validation Type + + + + + Data Validation Error Style + + + + + IME Mode Enforced + + + + + Operator + + + + + Allow Blank + + + + + Show Drop Down + + + + + Show Input Message + + + + + Show Error Message + + + + + Error Alert Text + + + + + Error Message + + + + + Prompt Title + + + + + Input Prompt + + + + + Sequence of References + + + + + + Data Validation Type + + + + + None + + + + + Whole Number + + + + + Decimal + + + + + List + + + + + Date + + + + + Time + + + + + Text Length + + + + + Custom + + + + + + + Data Validation Operator + + + + + Between + + + + + Not Between + + + + + Equal + + + + + Not Equal + + + + + Less Than + + + + + Less Than Or Equal + + + + + Greater Than + + + + + Greater Than Or Equal + + + + + + + Data Validation Error Styles + + + + + Stop Icon + + + + + Warning Icon + + + + + Information Icon + + + + + + + Data Validation IME Mode + + + + + IME Mode Not Controlled + + + + + IME Off + + + + + IME On + + + + + Disabled IME Mode + + + + + Hiragana IME Mode + + + + + Full Katakana IME Mode + + + + + Half-Width Katakana + + + + + Full-Width Alpha-Numeric IME Mode + + + + + Half Alpha IME + + + + + Full Width Hangul + + + + + Half-Width Hangul IME Mode + + + + + + + Conditional Format Type + + + + + Expression + + + + + Cell Is + + + + + Color Scale + + + + + Data Bar + + + + + Icon Set + + + + + Top 10 + + + + + Unique Values + + + + + Duplicate Values + + + + + Contains Text + + + + + Does Not Contain Text + + + + + Begins With + + + + + Ends With + + + + + Contains Blanks + + + + + Contains No Blanks + + + + + Contains Errors + + + + + Contains No Errors + + + + + Time Period + + + + + Above or Below Average + + + + + + + Time Period Types + + + + + Today + + + + + Yesterday + + + + + Tomorrow + + + + + Last 7 Days + + + + + This Month + + + + + Last Month + + + + + Next Month + + + + + This Week + + + + + Last Week + + + + + Next Week + + + + + + + Conditional Format Operators + + + + + Less Than + + + + + Less Than Or Equal + + + + + Equal + + + + + Not Equal + + + + + Greater Than Or Equal + + + + + Greater Than + + + + + Between + + + + + Not Between + + + + + Contains + + + + + Does Not Contain + + + + + Begins With + + + + + Ends With + + + + + + + Conditional Format Value Object Type + + + + + Number + + + + + Percent + + + + + Maximum + + + + + Minimum + + + + + Formula + + + + + Percentile + + + + + + + + + Conditional Formatting Rule + + + + + + + PivotTable Conditional Formatting + + + + + Sequence of Refernces + + + + + + + + Formula + + + + + Color Scale + + + + + Data Bar + + + + + Icon Set + + + + + + + Type + + + + + Differential Formatting Id + + + + + Priority + + + + + Stop If True + + + + + Above Or Below Average + + + + + Top 10 Percent + + + + + Bottom N + + + + + Operator + + + + + Text + + + + + Time Period + + + + + Rank + + + + + StdDev + + + + + Equal Average + + + + + + + + Hyperlink + + + + + + + + Reference + + + + + Relationship Id + + + + + Location + + + + + Tool Tip + + + + + Display String + + + + + + + + + Formula Type + + + + + Always Calculate Array + + + + + Range of Cells + + + + + Data Table 2-D + + + + + Data Table Row + + + + + Input 1 Deleted + + + + + Input 2 Deleted + + + + + Data Table Cell 1 + + + + + Input Cell 2 + + + + + Calculate Cell + + + + + Shared Group Index + + + + + Assigns Value to Name + + + + + + + + + + Conditional Format Value Object + + + + + Color Gradiant Interpolation + + + + + + + + + Conditional Format Value Object + + + + + Data Bar Color + + + + + + Minimum Length + + + + + Maximum Length + + + + + Show Values + + + + + + + + Conditional Formatting Object + + + + + + Icon Set + + + + + Show Value + + + + + Percent + + + + + Reverse Icons + + + + + + + + + + Type + + + + + Value + + + + + Greater Than Or Equal + + + + + + + Left Page Margin + + + + + Right Page Margin + + + + + Top Page Margin + + + + + Bottom Page Margin + + + + + Header Page Margin + + + + + Footer Page Margin + + + + + + + Horizontal Centered + + + + + Vertical Centered + + + + + Print Headings + + + + + Print Grid Lines + + + + + Grid Lines Set + + + + + + + Paper Size + + + + + Print Scale + + + + + First Page Number + + + + + Fit To Width + + + + + Fit To Height + + + + + Page Order + + + + + Orientation + + + + + Use Printer Defaults + + + + + Black And White + + + + + Draft + + + + + Print Cell Comments + + + + + Use First Page Number + + + + + Print Error Handling + + + + + Horizontal DPI + + + + + Vertical DPI + + + + + Number Of Copies + + + + + Id + + + + + + Page Order + + + + + Down Then Over + + + + + Over Then Down + + + + + + + Orientation + + + + + Default + + + + + Portrait + + + + + Landscape + + + + + + + Cell Comments + + + + + None + + + + + Print Comments As Displayed + + + + + Print At End + + + + + + + + + Odd Header + + + + + Odd Page Footer + + + + + Even Page Header + + + + + Even Page Footer + + + + + First Page Header + + + + + First Page Footer + + + + + + Different Odd Even Header Footer + + + + + Different First Page + + + + + Scale Header & Footer With Document + + + + + Align Margins + + + + + + Print Errors + + + + + Display Cell Errors + + + + + Show Cell Errors As Blank + + + + + Dash Cell Errors + + + + + NA + + + + + + + + + Scenario + + + + + + Current Scenario + + + + + Last Shown Scenario + + + + + Sequence of References + + + + + + + Password + + + + + Sheet Locked + + + + + Objects Locked + + + + + Scenarios Locked + + + + + Format Cells Locked + + + + + Format Columns Locked + + + + + Format Rows Locked + + + + + Insert Columns Locked + + + + + Insert Rows Locked + + + + + Insert Hyperlinks Locked + + + + + Delete Columns Locked + + + + + Delete Rows Locked + + + + + Select Locked Cells Locked + + + + + Sort Locked + + + + + AutoFilter Locked + + + + + Pivot Tables Locked + + + + + Select Unlocked Cells Locked + + + + + + + + Protected Range + + + + + + + + Password + + + + + Sequence of References + + + + + Name + + + + + Security Descriptor + + + + + + + + Input Cells + + + + + + Scenario Name + + + + + Scenario Locked + + + + + Hidden Scenario + + + + + Changing Cell Count + + + + + User Name + + + + + Scenario Comment + + + + + + + Reference + + + + + Deleted + + + + + Undone + + + + + Value + + + + + Number Format Id + + + + + + + + Cell Watch Item + + + + + + + + Reference + + + + + + + + Chart Sheet Properties + + + + + Chart Sheet Views + + + + + Chart Sheet Protection + + + + + Custom Chart Sheet Views + + + + + + + + Drawing + + + + + + Legacy Drawing Reference in Header Footer + + + + + + + + + + + + + + Published + + + + + Code Name + + + + + + + + Chart Sheet View + + + + + + + + + + + + Sheet Tab Selected + + + + + Window Zoom Scale + + + + + Workbook View Id + + + + + Zoom To Fit + + + + + + + Password + + + + + Contents + + + + + Objects Locked + + + + + + + Paper Size + + + + + First Page Number + + + + + Orientation + + + + + Use Printer Defaults + + + + + Black And White + + + + + Draft + + + + + Use First Page Number + + + + + Horizontal DPI + + + + + Vertical DPI + + + + + Number Of Copies + + + + + Id + + + + + + + + Custom Chart Sheet View + + + + + + + + + + Chart Sheet Page Setup + + + + + + + GUID + + + + + Print Scale + + + + + Visible State + + + + + Zoom To Fit + + + + + + + + Custom Property + + + + + + + + Custom Property Name + + + + + Relationship Id + + + + + + + + OLE Object + + + + + + + + OLE ProgId + + + + + Data or View Aspect + + + + + OLE Link Moniker + + + + + OLE Update + + + + + Auto Load + + + + + Shape Id + + + + + Relationship Id + + + + + + Data View Aspect Type + + + + + Object Display Content + + + + + Object Display Icon + + + + + + + OLE Update Types + + + + + Always Update OLE + + + + + Update OLE On Call + + + + + + + + + Web Publishing Item + + + + + + Web Publishing Items Count + + + + + + + Id + + + + + Destination Bookmark + + + + + Web Source Type + + + + + Source Id + + + + + Source Object Name + + + + + Destination File Name + + + + + Title + + + + + Automatically Publish + + + + + + + + Embedded Control + + + + + + + + Shape Id + + + + + Relationship Id + + + + + Control Name + + + + + + Web Source Type + + + + + All Sheet Content + + + + + Print Area + + + + + AutoFilter + + + + + Range + + + + + Chart + + + + + PivotTable + + + + + QueryTable + + + + + Label + + + + + + + + + Ignored Error + + + + + + + + + Sequence of References + + + + + Evaluation Error + + + + + Two Digit Text Year + + + + + Number Stored As Text + + + + + Formula + + + + + Formula Range + + + + + Unlocked Formula + + + + + Empty Cell Reference + + + + + List Data Validation + + + + + Calculated Column + + + + + + Pane State + + + + + Split + + + + + Frozen + + + + + Frozen Split + + + + + + + + + Table Part + + + + + + Count + + + + + + + Relationship Id + + + + + + + + + Metadata + + + + + + + Metadata Types Collection + + + + + Metadata String Store + + + + + MDX Metadata Information + + + + + Future Metadata + + + + + Cell Metadata + + + + + Value Metadata + + + + + Future Feature Storage Area + + + + + + + + + Metadata Type Information + + + + + + Metadata Type Count + + + + + + + Metadata Type Name + + + + + Minimum Supported Version + + + + + Metadata Ghost Row + + + + + Metadata Ghost Column + + + + + Metadata Edit + + + + + Metadata Cell Value Delete + + + + + Metadata Copy + + + + + Metadata Paste All + + + + + Metadata Paste Formulas + + + + + Metadata Paste Special Values + + + + + Metadata Paste Formats + + + + + Metadata Paste Comments + + + + + Metadata Paste Data Validation + + + + + Metadata Paste Borders + + + + + Metadata Paste Column Widths + + + + + Metadata Paste Number Formats + + + + + Metadata Merge + + + + + Meatadata Split First + + + + + Metadata Split All + + + + + Metadata Insert Delete + + + + + Metadata Clear All + + + + + Metadata Clear Formats + + + + + Metadata Clear Contents + + + + + Metadata Clear Comments + + + + + Metadata Formula Assignment + + + + + Metadata Coercion + + + + + Adjust Metadata + + + + + Cell Metadata + + + + + + + + Metadata Block + + + + + + Metadata Block Count + + + + + + + + Metadata Record + + + + + + + + Metadata Record Type Index + + + + + Metadata Record Value Index + + + + + + + + Future Metadata Block + + + + + Future Feature Data Storage Area + + + + + + Metadata Type Name + + + + + Future Metadata Block Count + + + + + + + + Future Feature Storage Area + + + + + + + + + MDX Metadata Record + + + + + + MDX Metadata Record Count + + + + + + + + Tuple MDX Metadata + + + + + Set MDX Metadata + + + + + Member Property MDX Metadata + + + + + KPI MDX Metadata + + + + + + Connection Name Index + + + + + Cube Function Tag + + + + + + MDX Function Type + + + + + Cube Member + + + + + Cube Value + + + + + Cube Set + + + + + Cube Set Count + + + + + Cube Ranked Member + + + + + Cube Member Property + + + + + Cube KPI Member + + + + + + + + + Member Unique Name Index + + + + + + Member Index Count + + + + + Server Formatting Culture Currency + + + + + Server Formatting String Index + + + + + Server Formatting Built-In Number Format Index + + + + + Server Formatting Background Color + + + + + Server Formatting Foreground Color + + + + + Server Formatting Italic Font + + + + + Server Formatting Underline Font + + + + + Server Formatting Strikethrough Font + + + + + Server Formatting Bold Font + + + + + + + + Member Unique Name Index + + + + + + Set Definition Index + + + + + Sort By Member Index Count + + + + + Set Sort Order + + + + + + MDX Set Order + + + + + Unsorted + + + + + Ascending + + + + + Descending + + + + + Alpha Ascending Sort Order + + + + + Alpha Descending Sort Order + + + + + Natural Ascending + + + + + Natural Descending + + + + + + + + Member Unique Name Index + + + + + Property Name Index + + + + + + + Member Unique Name Index + + + + + KPI Index + + + + + KPI Property + + + + + + MDX KPI Property + + + + + Value + + + + + Goal + + + + + Status + + + + + Trend + + + + + Weight + + + + + Current Time Member + + + + + + + + Index Value + + + + + String is a Set + + + + + + + + MDX Metadata String + + + + + + MDX Metadata String Count + + + + + + + + + + Single Cells + + + + + + + Table Properties + + + + + + + + + Cell Properties + + + + + Future Feature Data Storage Area + + + + + + Table Id + + + + + Reference + + + + + Connection ID + + + + + + + + Column XML Properties + + + + + Future Feature Data Storage Area + + + + + + Table Field Id + + + + + Unique Table Name + + + + + + + + Future Feature Data Storage Area + + + + + + XML Map Id + + + + + XPath + + + + + XML Data Type + + + + + + + + + Style Sheet + + + + + + + Number Formats + + + + + Fonts + + + + + Fills + + + + + Borders + + + + + Formatting Records + + + + + Cell Formats + + + + + Cell Styles + + + + + Formats + + + + + Table Styles + + + + + Colors + + + + + Future Feature Data Storage Area + + + + + + + + Horizontal Alignment + + + + + Vertical Alignment + + + + + Text Rotation + + + + + Wrap Text + + + + + Indent + + + + + Relative Indent + + + + + Justify Last Line + + + + + Shrink To Fit + + + + + Reading Order + + + + + + Border Line Styles + + + + + None + + + + + Thin Border + + + + + Medium Border + + + + + Dashed + + + + + Dotted + + + + + Thick Line Border + + + + + Double Line + + + + + Hairline Border + + + + + Medium Dashed + + + + + Dash Dot + + + + + Medium Dash Dot + + + + + Dash Dot Dot + + + + + Medium Dash Dot Dot + + + + + Slant Dash Dot + + + + + + + + + Border + + + + + + Border Count + + + + + + + + Left Border + + + + + Right Border + + + + + Top Border + + + + + Bottom Border + + + + + Diagonal + + + + + Vertical Inner Border + + + + + Horizontal Inner Borders + + + + + + Diagonal Up + + + + + Diagonal Down + + + + + Outline + + + + + + + + Color + + + + + + Line Style + + + + + + + Cell Locked + + + + + Hidden Cell + + + + + + + + Font + + + + + + Font Count + + + + + + + + Fill + + + + + + Fill Count + + + + + + + + Pattern + + + + + Gradient + + + + + + + + + Foreground Color + + + + + Background Color + + + + + + Pattern Type + + + + + + + Automatic + + + + + Index + + + + + Alpha Red Green Blue Color Value + + + + + Theme Color + + + + + Tint + + + + + + Pattern Type + + + + + None + + + + + Solid + + + + + Medium Gray + + + + + Dary Gray + + + + + Light Gray + + + + + Dark Horizontal + + + + + Dark Vertical + + + + + Dark Down + + + + + Dark Up + + + + + Dark Grid + + + + + Dark Trellis + + + + + Light Horizontal + + + + + Light Vertical + + + + + Light Down + + + + + Light Up + + + + + Light Grid + + + + + Light Trellis + + + + + Gray 0.125 + + + + + Gray 0.0625 + + + + + + + + + Gradient Stop + + + + + + Gradient Fill Type + + + + + Linear Gradient Degree + + + + + Left Convergence + + + + + Right Convergence + + + + + Top Gradient Convergence + + + + + Bottom Convergence + + + + + + + + Color + + + + + + Gradient Stop Position + + + + + + Gradient Type + + + + + Linear Gradient + + + + + Path + + + + + + + Horizontal Alignment Type + + + + + General Horizontal Alignment + + + + + Left Horizontal Alignment + + + + + Centered Horizontal Alignment + + + + + Right Horizontal Alignment + + + + + Fill + + + + + Justify + + + + + Center Continuous Horizontal Alignment + + + + + Distributed Horizontal Alignment + + + + + + + Vertical Alignment Types + + + + + Align Top + + + + + Centered Vertical Alignment + + + + + Aligned To Bottom + + + + + Justified Vertically + + + + + Distributed Vertical Alignment + + + + + + + + + Number Formats + + + + + + Number Format Count + + + + + + + Number Format Id + + + + + Number Format Code + + + + + + + + Formatting Elements + + + + + + Style Count + + + + + + + + Format + + + + + + Format Count + + + + + + + + Alignment + + + + + Protection + + + + + Future Feature Data Storage Area + + + + + + Number Format Id + + + + + Font Id + + + + + Fill Id + + + + + Border Id + + + + + Format Id + + + + + Quote Prefix + + + + + Pivot Button + + + + + Apply Number Format + + + + + Apply Font + + + + + Apply Fill + + + + + Apply Border + + + + + Apply Alignment + + + + + Apply Protection + + + + + + + + Cell Style + + + + + + Style Count + + + + + + + + Future Feature Data Storage Area + + + + + + User Defined Cell Style + + + + + Format Id + + + + + Built-In Style Id + + + + + Outline Style + + + + + Hidden Style + + + + + Custom Built In + + + + + + + + Formatting + + + + + + Format Count + + + + + + + + Font Properties + + + + + Number Format + + + + + Fill + + + + + Alignment + + + + + Border Properties + + + + + Protection Properties + + + + + Future Feature Data Storage Area + + + + + + + Number Format Id + + + + + + Font Id + + + + + + Fill Id + + + + + + Border Id + + + + + + Cell Style Format Id + + + + + + Format Id + + + + + + + + Color Indexes + + + + + MRU Colors + + + + + + + + + RGB Color + + + + + + + + + Color + + + + + + + + Alpha Red Green Blue + + + + + + + + Table Style + + + + + + Table Style Count + + + + + Default Table Style + + + + + Default Pivot Style + + + + + + + + Table Style + + + + + + Table Style Name + + + + + Pivot Style + + + + + Table + + + + + Table Style Count + + + + + + + Table Style Type + + + + + Band Size + + + + + Formatting Id + + + + + + Table Style Type + + + + + Whole Table Style + + + + + Header Row Style + + + + + Total Row Style + + + + + First Column Style + + + + + Last Column Style + + + + + First Row Stripe Style + + + + + Second Row Stripe Style + + + + + First Column Stripe Style + + + + + Second Column Stipe Style + + + + + First Header Row Style + + + + + Last Header Style + + + + + First Total Row Style + + + + + Last Total Row Style + + + + + First Subtotal Column Style + + + + + Second Subtotal Column Style + + + + + Third Subtotal Column Style + + + + + First Subtotal Row Style + + + + + Second Subtotal Row Style + + + + + Third Subtotal Row Style + + + + + Blank Row Style + + + + + First Column Subheading Style + + + + + Second Column Subheading Style + + + + + Third Column Subheading Style + + + + + First Row Subheading Style + + + + + Second Row Subheading Style + + + + + Third Row Subheading Style + + + + + Page Field Labels Style + + + + + Page Field Values Style + + + + + + + + Value + + + + + + + Value + + + + + + + Value + + + + + + + String Value + + + + + + + Value + + + + + + Vertical Alignment Run Types + + + + + Baseline + + + + + Superscript + + + + + Subscript + + + + + + + + Font Scheme + + + + + + Font scheme Styles + + + + + None + + + + + Major Font + + + + + Minor Font + + + + + + + + Underline Value + + + + + + Underline Types + + + + + Single Underline + + + + + Double Underline + + + + + Accounting Single Underline + + + + + Accounting Double Underline + + + + + None + + + + + + + + + Font Name + + + + + Character Set + + + + + Font Family + + + + + Bold + + + + + Italic + + + + + Strike Through + + + + + Outline + + + + + Shadow + + + + + Condense + + + + + Extend + + + + + Text Color + + + + + Font Size + + + + + Underline + + + + + Text Vertical Alignment + + + + + Scheme + + + + + + + + Auto Format Id + + + + + Apply Number Formats + + + + + Apply Border Formats + + + + + Apply Font Formats + + + + + Apply Pattern Formats + + + + + Apply Alignment Formats + + + + + Apply Width / Height Formats + + + + + + + + + + + External Reference + + + + + + + External Workbook + + + + + DDE Connection + + + + + OLE Link + + + + + + + + + + Supporting Workbook Sheet Names + + + + + Named Links + + + + + Cached Worksheet Data + + + + + + Relationship to supporting book file path + + + + + + + + Sheet Name + + + + + + + + Sheet Name Value + + + + + + + + Defined Name + + + + + + + + Defined Name + + + + + Refers To + + + + + Sheet Id + + + + + + + + External Sheet Data Set + + + + + + + + + Row + + + + + + Sheet Id + + + + + Last Refresh Resulted in Error + + + + + + + + External Cell Data + + + + + + Row + + + + + + + + Value + + + + + + Reference + + + + + Type + + + + + Value Metadata + + + + + + + + DDE Items Collection + + + + + + Service name + + + + + Topic for DDE server + + + + + + + + DDE Item definition + + + + + + + + + DDE Name Values + + + + + + DDE Name + + + + + OLE + + + + + Advise + + + + + Data is an Image + + + + + + + + Value + + + + + + Rows + + + + + Columns + + + + + + + + DDE Link Value + + + + + + DDE Value Type + + + + + + DDE Value Types + + + + + Nil + + + + + Boolean + + + + + Real Number + + + + + Error + + + + + String + + + + + + + + + OLE Link Items + + + + + + OLE Link Relationship + + + + + OLE Link ProgID + + + + + + + + OLE Link Item + + + + + + + + OLE Name + + + + + Icon + + + + + Advise + + + + + Object is an Image + + + + + + + + + + + + Table + + + + + + + Table AutoFilter + + + + + Sort State + + + + + Table Columns + + + + + Table Style + + + + + Future Feature Data Storage Area + + + + + + Table Id + + + + + Name + + + + + Table Name + + + + + Table Comment + + + + + Reference + + + + + Table Type + + + + + Header Row Count + + + + + Insert Row Showing + + + + + Insert Row Shift + + + + + Totals Row Count + + + + + Totals Row Shown + + + + + Published + + + + + Header Row Format Id + + + + + Data Area Format Id + + + + + Totals Row Format Id + + + + + Header Row Border Format Id + + + + + Table Border Format Id + + + + + Totals Row Border Format Id + + + + + Header Row Style + + + + + Data Style Name + + + + + Totals Row Style + + + + + Connection ID + + + + + + Table Type + + + + + Worksheet + + + + + XML + + + + + Query Table + + + + + + + + Style Name + + + + + Show First Column + + + + + Show Last Column + + + + + Show Row Stripes + + + + + Show Column Stripes + + + + + + + + Table Column + + + + + + Column Count + + + + + + + + Calculated Column Formula + + + + + Totals Row Formula + + + + + XML Column Properties + + + + + Future Feature Data Storage Area + + + + + + Table Field Id + + + + + Unique Name + + + + + Column name + + + + + Totals Row Function + + + + + Totals Row Label + + + + + Query Table Field Id + + + + + Header Row Cell Format Id + + + + + Data & Insert Row Format Id + + + + + Totals Row Format Id + + + + + Header Row Cell Style + + + + + Data Area Style Name + + + + + Totals Row Style Name + + + + + + + + + Array + + + + + + + + Totals Row Function Types + + + + + None + + + + + Sum + + + + + Minimum + + + + + Maximum + + + + + Average + + + + + Non Empty Cell Count + + + + + Count Numbers + + + + + StdDev + + + + + Var + + + + + Custom Formula + + + + + + + + + Future Feature Data Storage Area + + + + + + XML Map Id + + + + + XPath + + + + + Denormalized + + + + + XML Data Type + + + + + + XML Data Types + + + + + String + + + + + Normalized String + + + + + Token + + + + + Byte + + + + + Unsigned Byte + + + + + Base 64 Encoded Binary + + + + + Hex Binary + + + + + Integer + + + + + Positive Integer + + + + + Negative Integer + + + + + Non Positive Integer + + + + + Non Negative Integer + + + + + Integer + + + + + Unsigned Integer + + + + + Long + + + + + Unsigned Long + + + + + Short + + + + + Unsigned Short + + + + + Decimal + + + + + Float + + + + + Double + + + + + Boolean + + + + + Time + + + + + Date Time + + + + + Duration + + + + + Date + + + + + gMonth + + + + + gYear + + + + + gYearMonth + + + + + gDay + + + + + gMonthDays + + + + + Name + + + + + Qname + + + + + NCName + + + + + Any URI + + + + + Language + + + + + ID + + + + + IDREF + + + + + IDREFS + + + + + ENTITY + + + + + ENTITIES + + + + + Notation + + + + + NMTOKEN + + + + + NMTOKENS + + + + + Any Type + + + + + + + + + + Volatile Dependency Types + + + + + + + Volatile Dependency Type + + + + + + + + + + Main + + + + + + Type + + + + + + + + Topic + + + + + + First String + + + + + + + + Topic Value + + + + + Strings in Subtopic + + + + + References + + + + + + Type + + + + + + + Reference + + + + + Sheet Id + + + + + + Volatile Dependency Types + + + + + Real Time Data + + + + + OLAP Formulas + + + + + + + Volatile Dependency Value Types + + + + + Boolean + + + + + Real Number + + + + + Error + + + + + String + + + + + + + + + + + Workbook + + + + + + + File Version + + + + + File Sharing + + + + + Workbook Properties + + + + + Workbook Protection + + + + + Workbook Views + + + + + Sheets + + + + + Function Groups + + + + + External References + + + + + Defined Names + + + + + Calculation Properties + + + + + OLE Size + + + + + Custom Workbook Views + + + + + PivotCaches + + + + + Smart Tag Properties + + + + + Smart Tag Types + + + + + Web Publishing Properties + + + + + File Recovery Properties + + + + + Web Publish Objects + + + + + Future Feature Data Storage Area + + + + + + + + Application Name + + + + + Last Edited Version + + + + + Lowest Edited Version + + + + + Build Version + + + + + Code Name + + + + + + + + Workbook View + + + + + + + + + + + Visibility + + + + + Minimized + + + + + Show Horizontal Scroll + + + + + Show Vertical Scroll + + + + + Show Sheet Tabs + + + + + Upper Left Corner (X Coordinate) + + + + + Upper Left Corner (Y Coordinate) + + + + + Window Width + + + + + Window Height + + + + + Sheet Tab Ratio + + + + + First Sheet + + + + + Active Sheet Index + + + + + AutoFilter Date Grouping + + + + + + Visibility Types + + + + + Visible + + + + + Hidden + + + + + Very Hidden + + + + + + + + + Custom Workbook View + + + + + + + + + + + Custom View Name + + + + + Custom View GUID + + + + + Auto Update + + + + + Merge Interval + + + + + Changes Saved Win + + + + + Only Synch + + + + + Personal View + + + + + Include Print Settings + + + + + Include Hidden Rows & Columns + + + + + Maximized + + + + + Minimized + + + + + Show Horizontal Scroll + + + + + Show Vertical Scroll + + + + + Show Sheet Tabs + + + + + Top Left Corner (X Coordinate) + + + + + Top Left Corner (Y Coordinate) + + + + + Window Width + + + + + Window Height + + + + + Sheet Tab Ratio + + + + + Active Sheet in Book View + + + + + Show Formula Bar + + + + + Show Status Bar + + + + + Show Comments + + + + + Show Objects + + + + + + Comment Display Types + + + + + No Comments + + + + + Show Comment Indicator + + + + + Show Comment & Indicator + + + + + + + Object Display Types + + + + + All + + + + + Show Placeholders + + + + + None + + + + + + + + + Sheet Information + + + + + + + + Sheet Name + + + + + Sheet Tab Id + + + + + Visible State + + + + + Relationship Id + + + + + + Sheet Visibility Types + + + + + Visible + + + + + Hidden + + + + + Very Hidden + + + + + + + + Date 1904 + + + + + Show Objects + + + + + Show Border Unselected Table + + + + + Filter Privacy + + + + + Prompted Solutions + + + + + Show Ink Annotations + + + + + Create Backup File + + + + + Save External Link Values + + + + + Update Links Behavior + + + + + Code Name + + + + + Hide Pivot Field List + + + + + Show Pivot Chart Filter + + + + + Allow Refresh Query + + + + + Publish Items + + + + + Check Compatibility On Save + + + + + Auto Compress Pictures + + + + + Refresh all Connections on Open + + + + + Default Theme Version + + + + + + Update Links Behavior Types + + + + + User Set + + + + + Never Update Links + + + + + Always Update Links + + + + + + + + Embed SmartTags + + + + + Show Smart Tags + + + + + + Smart Tag Display Types + + + + + All + + + + + None + + + + + No Smart Tag Indicator + + + + + + + + + Smart Tag Type + + + + + + + + SmartTag Namespace URI + + + + + Name + + + + + Smart Tag URL + + + + + + + Auto Recover + + + + + Crash Save + + + + + Data Extract Load + + + + + Repair Load + + + + + + + Calculation Id + + + + + Calculation Mode + + + + + Full Calculation On Load + + + + + Reference Mode + + + + + Calculation Iteration + + + + + Iteration Count + + + + + Iterative Calculation Delta + + + + + Full Precision Calculation + + + + + Calc Completed + + + + + Calculate On Save + + + + + Concurrent Calculations + + + + + Concurrent Thread Manual Count + + + + + Force Full Calculation + + + + + + Calculation Mode + + + + + Manual Calculation Mode + + + + + Automatic + + + + + Automatic Calculation (No Tables) + + + + + + + Reference Mode + + + + + A1 Mode + + + + + R1C1 Reference Mode + + + + + + + + + Defined Name + + + + + + + + + + Defined Name + + + + + Comment + + + + + Custom Menu Text + + + + + Description + + + + + Help + + + + + Status Bar + + + + + Local Name Sheet Id + + + + + Hidden Name + + + + + Function + + + + + Procedure + + + + + External Function + + + + + Function Group Id + + + + + Shortcut Key + + + + + Publish To Server + + + + + Workbook Parameter (Server) + + + + + + + + + + External Reference + + + + + + + + Relationship Id + + + + + + + Relationship Id + + + + + + + + PivotCache + + + + + + + + PivotCache Id + + + + + Relationship Id + + + + + + + Read Only Recommended + + + + + User Name + + + + + Write Reservation Password + + + + + + + Reference + + + + + + + Workbook Password + + + + + Revisions Password + + + + + Lock Structure + + + + + Lock Windows + + + + + Lock Revisions + + + + + + + Use CSS + + + + + Thicket + + + + + Enable Long File Names + + + + + VML in Browsers + + + + + Allow PNG + + + + + Target Screen Size + + + + + DPI + + + + + Code Page + + + + + + Target Screen Size Types + + + + + 544 x 376 Resolution + + + + + 640 x 480 Resolution + + + + + 720 x 512 Resolution + + + + + 800 x 600 Resolution + + + + + 1024 x 768 Resolution + + + + + 1152 x 882 Resolution + + + + + 1152 x 900 Resolution + + + + + 1280 x 1024 Resolution + + + + + 1600 x 1200 Resolution + + + + + 1800 x 1440 Resolution + + + + + 1920 x 1200 Resolution + + + + + + + + + Function Group + + + + + + Built-in Function Group Count + + + + + + + Name + + + + + + + + Web Publishing Object + + + + + + Count + + + + + + + Id + + + + + Div Id + + + + + Source Object + + + + + Destination File + + + + + Title + + + + + Auto Republish + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/vml-main.xsd b/tests/resources/schema/ecma-376/vml-main.xsd new file mode 100644 index 000000000..784aee8f3 --- /dev/null +++ b/tests/resources/schema/ecma-376/vml-main.xsd @@ -0,0 +1,1733 @@ + + + + + + + + + + + + Unique Identifier + + + + + + + Shape Styling Properties + + + + + + + Shape Type Reference + + + + + + + Adjustment Parameters + + + + + + + Edge Path + + + + + + + Shape Fill Toggle + + + + + Fill Color + + + + + + + Image Transparency Color + + + + + + + VML Extension Handling Behavior + + + + + + + + + Hyperlink Target + + + + + Hyperlink Display Target + + + + + CSS Reference + + + + + Shape Title + + + + + Alternate Text + + + + + Coordinate Space Size + + + + + Coordinate Space Origin + + + + + Shape Bounding Polygon + + + + + Print Toggle + + + + + + + + + Fill Color Opacity + + + + + Shape Stroke Toggle + + + + + Shape Stroke Color + + + + + Shape Stroke Weight + + + + + Inset Border From Path + + + + + + + Optional String + + + + + Shape Handle Toggle + + + + + Regroup ID + + + + + Double-click Notification Toggle + + + + + Button Behavior Toggle + + + + + Hide Script Anchors + + + + + Graphical Bullet + + + + + Horizontal Rule Toggle + + + + + Horizontal Rule Standard Display Toggle + + + + + Horizontal Rule 3D Shading Toggle + + + + + Horizontal Rule Length Percentage + + + + + Horizontal Rule Alignment + + + + + Allow in Table Cell + + + + + Allow Shape Overlap + + + + + Exists In Master Slide + + + + + Border Top Color + + + + + Border Left Color + + + + + Bottom Border Color + + + + + Border Right Color + + + + + Diagram Node Layout Identifier + + + + + Diagram Node Identifier + + + + + Diagram Node Recent Layout Identifier + + + + + Text Inset Mode + + + + + + + Optional Number + + + + + Shape Connector Type + + + + + Black-and-White Mode + + + + + Pure Black-and-White Mode + + + + + Normal Black-and-White Mode + + + + + Force Dashed Outline + + + + + Embedded Object Icon Toggle + + + + + Embedded Object Toggle + + + + + Relative Resize Toggle + + + + + Clip to Wrapping Polygon + + + + + Clipping Toggle + + + + + + + + + + + + + + + Image Source + + + + + Image Left Crop + + + + + Image Top Crop + + + + + Image Right Crop + + + + + Image Bottom Crop + + + + + Image Intensity + + + + + Image Brightness + + + + + Image Gamma Correction + + + + + Image Grayscale Toggle + + + + + Image Bilevel Toggle + + + + + + + Stroke Toggle + + + + + Stroke Weight + + + + + Stroke Color + + + + + Stroke Opacity + + + + + Stroke Line Style + + + + + Miter Joint Limit + + + + + Line End Join Style + + + + + Line End Cap + + + + + Stroke Dash Pattern + + + + + Stroke Image Style + + + + + Stroke Image Location + + + + + Stroke Image Aspect Ratio + + + + + Stroke Image Size + + + + + Stoke Image Alignment + + + + + Stroke Alternate Pattern Color + + + + + Line Start Arrowhead + + + + + Line Start Arrowhead Width + + + + + Line Start Arrowhead Length + + + + + Line End Arrowhead + + + + + Line End Arrowhead Width + + + + + Line End Arrowhead Length + + + + + Original Image Reference + + + + + Alternate Image Reference + + + + + Stroke Title + + + + + Force Dashed Outline + + + + + Relationship + + + + + Inset Border From Path + + + + + Relationship to Part + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shape Definition + + + + + Shape Template + + + + + Shape Group + + + + + Document Background + + + + + + + + + + + + + + + + Encoded Package + + + + + Storage for Alternate Math Content + + + + + + + + + + + + + + + Master Element Toggle + + + + + + + + + + + + + + + + + + + + + + + + Group Diagram Type + + + + + Table Properties + + + + + Table Row Height Limits + + + + + + + + + + + + Black-and-White Mode + + + + + Pure Black-and-White Mode + + + + + Normal Black-and-White Mode + + + + + Target Screen Size + + + + + + Shape Fill Properties + + + + + Set of Formulas + + + + + Set of Handles + + + + + Image Data + + + + + Shape Path + + + + + Text Box + + + + + Shadow Effect + + + + + Line Stroke Settings + + + + + Text Layout Path + + + + + + + + + + Fill Type + + + + + Fill Toggle + + + + + Primary Color + + + + + Primary Color Opacity + + + + + Secondary Color + + + + + Fill Image Source + + + + + Hyperlink Target + + + + + Alternate Image Reference Location + + + + + Fill Image Size + + + + + Fill Image Origin + + + + + Fill Image Position + + + + + Image Aspect Ratio + + + + + Intermediate Colors + + + + + Gradient Angle + + + + + Align Image With Shape + + + + + Gradient Center + + + + + Radial Gradient Size + + + + + Radial Gradient Center + + + + + Gradient Fill Method + + + + + Detect Mouse Click + + + + + Title + + + + + Secondary Color Opacity + + + + + Recolor Fill as Picture + + + + + Rotate Fill with Shape + + + + + Relationship to Part + + + + + Relationship to Part + + + + + + + + Single Formula + + + + + + + + Equation + + + + + + + + Shape Handle + + + + + + + + Handle Position + + + + + Handle Polar Center + + + + + Handle Coordinate Mapping + + + + + Invert Handle's X Position + + + + + Invert Handle's Y Position + + + + + Handle Inversion Toggle + + + + + Handle X Position Range + + + + + Handle Y Position Range + + + + + Handle Polar Radius Range + + + + + + + + + + Embossed Color + + + + + Black Recoloring Color + + + + + Original Image Reference + + + + + Alternate Image Reference + + + + + Image Data Title + + + + + Image Embedded Object ID + + + + + Detect Mouse Click + + + + + Movie Reference + + + + + Relationship to Part + + + + + Explicit Relationship to Image Data + + + + + Explicit Relationship to Alternate Image Data + + + + + Explicit Relationship to Hyperlink Target + + + + + + + + Path Definition + + + + + Limo Stretch Point + + + + + Text Box Bounding Box + + + + + Shape Fill Toggle + + + + + Stroke Toggle + + + + + Shadow Toggle + + + + + Arrowhead Display Toggle + + + + + Gradient Shape Toggle + + + + + Text Path Toggle + + + + + Inset Stroke From Path Flag + + + + + Connection Point Type + + + + + Connection Points + + + + + Connection Point Connect Angles + + + + + Extrusion Toggle + + + + + + + + Shadow Toggle + + + + + Shadow Type + + + + + Shadow Transparency + + + + + Shadow Primary Color + + + + + Shadow Opacity + + + + + Shadow Primary Offset + + + + + Shadow Secondary Color + + + + + Shadow Secondary Offset + + + + + Shadow Origin + + + + + Shadow Perspective Matrix + + + + + + + + + + + + + + + + + + + + + + + + Text Box Inset + + + + + Text Box Single-Click Selection Toggle + + + + + Text Inset Mode + + + + + + + + + Text Path Toggle + + + + + Shape Fit Toggle + + + + + Path Fit Toggle + + + + + Text Path Trim Toggle + + + + + Text X-Scaling + + + + + Text Path Text + + + + + + Arc Segment + + + + + Bezier Curve + + + + + Image File + + + + + Line + + + + + Oval + + + + + Multiple Path Line + + + + + Rectangle + + + + + Rounded Rectangle + + + + + + + + + + + Starting Angle + + + + + Ending Angle + + + + + + + + + + + + Curve Starting Point + + + + + First Curve Control Point + + + + + Second Curve Control Point + + + + + Curve Ending Point + + + + + + + + + + + + + + + + + + + + Line Start + + + + + Line End Point + + + + + + + + + + + + + + + + + + + + Points for Compound Line + + + + + + + + + + + + + + + + + + + Rounded Corner Arc Size + + + + + + VML Extension Handling Behaviors + + + + + Not renderable + + + + + Editable + + + + + Renderable + + + + + + + Boolean Value + + + + + True + + + + + False + + + + + True + + + + + False + + + + + + + Color Type + + + + + + Shape Fill Type + + + + + Solid Fill + + + + + Linear Gradient + + + + + Radial Gradient + + + + + Tiled Image + + + + + Image Pattern + + + + + Stretch Image to Fit + + + + + + + Gradient Fill Computation Type + + + + + No Gradient Fill + + + + + Linear Fill + + + + + Sigma Fill + + + + + Application Default Fill + + + + + Linear Sigma Fill + + + + + + + Shadow Type + + + + + Single Shadow + + + + + Double Shadow + + + + + Embossed Shadow + + + + + Perspective Shadow + + + + + + + Stroke Line Style + + + + + Single Line + + + + + Two Thin Lines + + + + + Thin Line Outside Thick Line + + + + + Thick Line Outside Thin Line + + + + + Thck Line Between Thin Lines + + + + + + + Line Join Type + + + + + Round Joint + + + + + Bevel Joint + + + + + Miter Joint + + + + + + + Stroke End Cap Type + + + + + Flat End + + + + + Square End + + + + + Round End + + + + + + + Stroke Arrowhead Length + + + + + Short Arrowhead + + + + + Medium Arrowhead + + + + + Long Arrowhead + + + + + + + Stroke Arrowhead Width + + + + + Narrow Arrowhead + + + + + Medium Arrowhead + + + + + Wide Arrowhead + + + + + + + Stroke Arrowhead Type + + + + + No Arrowhead + + + + + Block Arrowhead + + + + + Classic Arrowhead + + + + + Oval Arrowhead + + + + + Diamond Arrowhead + + + + + Open Arrowhead + + + + + + + Image Scaling Behavior + + + + + Ignore Aspect Ratio + + + + + At Most + + + + + At Least + + + + + + + Boolean Value with Blank [False] State + + + + + Logical True + + + + + Logical False + + + + + Logical True + + + + + Logical False + + + + + Blank – Logical False + + + + + + + Shape Grouping Types + + + + + Shape Canvas + + + + + Organization Chart Diagram + + + + + Radial Diagram + + + + + Cycle Diagram + + + + + Pyramid Diagram + + + + + Venn Diagram + + + + + Bullseye Diagram + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/vml-officeDrawing.xsd b/tests/resources/schema/ecma-376/vml-officeDrawing.xsd new file mode 100644 index 000000000..fd2f2ce38 --- /dev/null +++ b/tests/resources/schema/ecma-376/vml-officeDrawing.xsd @@ -0,0 +1,1642 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + New Shape Defaults + + + + + Shape Layout Properties + + + + + Digital Signature Line + + + + + Ink + + + + + VML Diagram + + + + + + + + + + + + + Callout + + + + + Shape Protections + + + + + Most Recently Used Colors + + + + + UI Default Colors + + + + + + + Shape ID Optional Storage + + + + + Shape Styling Properties + + + + + Shape Fill Toggle + + + + + Default Fill Color + + + + + Shape Stroke Toggle + + + + + Shape Stroke Color + + + + + Allow in Table Cell + + + + + + + + Ink Data + + + + + Annotation Flag + + + + + + + + Signature Line Flag + + + + + Unique ID + + + + + Signature Provider ID + + + + + Use Signing Instructions Flag + + + + + User-specified Comments Flag + + + + + Show Signed Date Flag + + + + + Suggested Signer Line 1 + + + + + Suggested Signer Line 2 + + + + + Suggested Signer E-mail Address + + + + + Instructions for Signing + + + + + Additional Signature Information + + + + + Signature Provider Download URL + + + + + + + + Shape ID Map + + + + + Shape Grouping History + + + + + Rule Set + + + + + + + + + + Shape IDs + + + + + + + + Regroup Entry + + + + + + + + + New Group ID + + + + + Old Group ID + + + + + + + + Rule + + + + + + + + + + Shape Reference + + + + + + Rule ID + + + + + Rule Type + + + + + Alignment Rule Type + + + + + Rule Shape Reference + + + + + + + Start Point Connection Flag + + + + + End Point Connection Flag + + + + + Proxy Shape Reference + + + + + Connection Location + + + + + + + + Diagram Relationship Table + + + + + + + Diagram Style Options + + + + + Diagram Automatic Format + + + + + Diagram Reverse Direction + + + + + Diagram Automatic Layout + + + + + Diagram Layout X Scale + + + + + Diagram Layout Y Scale + + + + + Diagram Font Size + + + + + Diagram Layout Extents + + + + + Diagram Base Font Size + + + + + + + + Diagram Relationship + + + + + + + + + + Diagram Relationship Source Shape + + + + + Diagram Relationship Destination Shape + + + + + Diagram Relationship Center Shape + + + + + + + + Recent colors + + + + + + + + Default stroke color + + + + + Default fill color + + + + + Default shadow color + + + + + Default extrusion color + + + + + + Skew Transform + + + + + 3D Extrusion + + + + + + + Embedded OLE Object + + + + + Complex + + + + + Text Box Left Stroke + + + + + Text Box Top Stroke + + + + + Text Box Right Stroke + + + + + Text Box Bottom Stroke + + + + + Text Box Interior Stroke + + + + + Shape Clipping Path + + + + + Shape Fill Extended Properties + + + + + + + Skew ID + + + + + Skew Toggle + + + + + Skew Offset + + + + + Skew Origin + + + + + Skew Perspective Matrix + + + + + + + + Extrusion Toggle + + + + + Extrusion Type + + + + + Extrusion Render Mode + + + + + Extrusion Viewpoint Origin + + + + + Extrusion Viewpoint + + + + + Extrusion Direction + + + + + Extrusion Skew Angle + + + + + Extrusion Skew + + + + + Forward Extrusion + + + + + Backward Extrusion Depth + + + + + Rotation Axis + + + + + Rotation Around Axis + + + + + Rotation Toggle + + + + + Center of Rotation Toggle + + + + + Rotation Center + + + + + X-Y Rotation Angle + + + + + Extrusion Color Mode + + + + + Extrusion Color + + + + + Shininess + + + + + Specularity + + + + + Diffuse Reflection + + + + + Metallic Surface Toggle + + + + + Simulated Bevel + + + + + Faceting Quality + + + + + Shape Face Lighting Toggle + + + + + Brightness + + + + + Primary Light Position + + + + + Primary Light Intensity + + + + + Primary Light Harshness Toggle + + + + + Secondary Light Position + + + + + Secondary Light Intensity + + + + + Secondary Light Harshness Toggle + + + + + + + + Callout toggle + + + + + Callout type + + + + + Callout gap + + + + + Callout angle + + + + + Callout automatic drop toggle + + + + + Callout drop position + + + + + Callout drop distance + + + + + Callout length toggle + + + + + Callout length + + + + + Callout accent bar toggle + + + + + Callout text border toggle + + + + + Callout flip x + + + + + Callout flip y + + + + + + + + Position Lock + + + + + Selection Lock + + + + + Grouping Lock + + + + + Ungrouping Lock + + + + + Rotation Lock + + + + + Cropping Lock + + + + + Vertices Lock + + + + + Handles Lock + + + + + Text Lock + + + + + Aspect Ratio Lock + + + + + AutoShape Type Lock + + + + + + + + Embedded Object Alternate Image Request + + + + + Embedded Object Cannot Be Refreshed + + + + + WordprocessingML Field Switches + + + + + + OLE Object Type + + + + + OLE Object Application + + + + + OLE Object Shape + + + + + OLE Object Representation + + + + + OLE Object Unique ID + + + + + Relationship + + + + + OLE Update Mode + + + + + + + + + + + Stroke Toggle + + + + + Stroke Weight + + + + + Stroke Color + + + + + Stroke Alternate Pattern Color + + + + + Stroke Opacity + + + + + Stroke Line Style + + + + + Miter Joint Limit + + + + + Line End Join Style) + + + + + Line End Cap + + + + + Stroke Dash Pattern + + + + + Inset Border From Path + + + + + Stroke Image Style + + + + + Stroke Image Location + + + + + Stroke Image Aspect Ratio + + + + + Stroke Image Size + + + + + Stoke Image Alignment + + + + + Line Start Arrowhead + + + + + Line Start Arrowhead Width + + + + + Line Start Arrowhead Length + + + + + Line End Arrowhead + + + + + Line End Arrowhead Width + + + + + Line End Arrowhead Length + + + + + Original Image Reference + + + + + Alternate Image Reference + + + + + Stroke Title + + + + + Force Dashed Outline + + + + + + + Path Definition + + + + + + + + Fill Type + + + + + + Rule Type + + + + + Arc Rule + + + + + Callout Rule + + + + + Connector Rule + + + + + Alignment Rule + + + + + + + Alignment Type + + + + + Top Alignment + + + + + Middle Alignment + + + + + Bottom Alignment + + + + + Left Alignment + + + + + Center Alignment + + + + + Right Alignment + + + + + + + Black And White Modes + + + + + Color + + + + + Automatic + + + + + Grayscale + + + + + Light grayscale + + + + + Inverse Grayscale + + + + + Gray Outlines + + + + + Black And White + + + + + Black + + + + + White + + + + + Hide Object When Displayed in Black and White + + + + + Do Not Show + + + + + Black Text And Lines + + + + + + + Screen Sizes Type + + + + + 544x376 pixels + + + + + 640x480 pixels + + + + + 720x512 pixels + + + + + 800x600 pixels + + + + + 1024x768 pixels + + + + + 1152x862 pixels + + + + + + + Inset Margin Type + + + + + Automatic Margins + + + + + Custom Margins + + + + + + + Extrusion Color Types + + + + + Use Shape Fill Color + + + + + Use Custom Color + + + + + + + Color Type + + + + + + Extrusion Type + + + + + Perspective Projection + + + + + Parallel Projection + + + + + + + Extrusion Rendering Types + + + + + Solid + + + + + Wireframe + + + + + Bounding Cube + + + + + + + Extrusion Planes + + + + + XY Plane + + + + + ZX Plane + + + + + YZ Plane + + + + + + + Callout Angles + + + + + Any Angle + + + + + 30 degrees + + + + + 45 degrees + + + + + 60 degrees + + + + + 90 degrees + + + + + Automatic Angle + + + + + + + Callout Drop Location + + + + + + Callout Placement + + + + + Top placement + + + + + Center placement + + + + + Bottom placement + + + + + User-defined placement + + + + + + + Connector Type + + + + + No Connector + + + + + Straight Connector + + + + + Elbow Connector + + + + + Curved Connector + + + + + + + Alignment Type + + + + + Left Alignment + + + + + Right Alignment + + + + + Center Alignment + + + + + + + Connection Locations Type + + + + + No + + + + + Four Connections + + + + + Edit Point Connections + + + + + Custom Connections + + + + + + + Embedded Object Alternate Image Request Types + + + + + Other Image + + + + + Bitmap Image + + + + + Enhanced Metafile Image + + + + + + + OLE Connection Type + + + + + Embedded Object + + + + + Linked Object + + + + + + + OLE Object Representations + + + + + Snapshot + + + + + Icon + + + + + + + OLE Update Method Type + + + + + Server Application Update + + + + + User Update + + + + + + + 128-Bit GUID + + + + + + + + Explicit Relationship ID + + + + + + Boolean Value + + + + + True + + + + + False + + + + + True + + + + + False + + + + + + + Boolean Value with Blank [False] State + + + + + Blank – Logical False + + + + + Logical True + + + + + Logical False + + + + + Logical True + + + + + Logical False + + + + + + + Shape Fill Type + + + + + Centered Radial Gradient + + + + + Solid Fill + + + + + Image Pattern + + + + + Tiled Image + + + + + Stretch Image to Fit + + + + + Unscaled Gradient + + + + + Radial Gradient + + + + + Linear Gradient + + + + + Use Background Fill + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/vml-presentationDrawing.xsd b/tests/resources/schema/ecma-376/vml-presentationDrawing.xsd new file mode 100644 index 000000000..e431af9d4 --- /dev/null +++ b/tests/resources/schema/ecma-376/vml-presentationDrawing.xsd @@ -0,0 +1,21 @@ + + + + + Ink Annotation Flag + + + + + VML Diagram Text + + + + + + + Text Reference + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/vml-spreadsheetDrawing.xsd b/tests/resources/schema/ecma-376/vml-spreadsheetDrawing.xsd new file mode 100644 index 000000000..3f04438b5 --- /dev/null +++ b/tests/resources/schema/ecma-376/vml-spreadsheetDrawing.xsd @@ -0,0 +1,518 @@ + + + + + Attached Object Data + + + + + + + Move with Cells + + + + + Resize with Cells + + + + + Anchor + + + + + Lock Toggle + + + + + Default Size Toggle + + + + + Print Toggle + + + + + Macro Disable Toggle + + + + + AutoFill + + + + + AutoLine + + + + + Automatically Size + + + + + Reference to Custom Function + + + + + Horizontal Text Alignment + + + + + Vertical Text Alignment + + + + + Text Lock + + + + + Far East Alignment Toggle + + + + + Password Edit + + + + + Default Button + + + + + Help Button + + + + + Cancel Button + + + + + Dismiss Button + + + + + Primary Keyboard Accelerator + + + + + Secondary Keyboard Accelerator + + + + + Comment Row Target + + + + + Comment Column Target + + + + + Comment Visibility Toggle + + + + + Comment's Row is Hidden + + + + + Comment's Column is Hidden + + + + + Validation Type + + + + + Multi-line + + + + + Vertical Scroll + + + + + Valid ID + + + + + List Items Source Range + + + + + Minimum Width + + + + + Selected Entry + + + + + Disable 3D + + + + + Selection Type + + + + + Multiple Selections + + + + + Callback Type + + + + + Non-linked List Item + + + + + Dropdown Style + + + + + Dropdown Color Toggle + + + + + Dropdown Maximum Lines + + + + + Checked + + + + + Linked Formula + + + + + Camera Source Range + + + + + Disable 3D + + + + + First Radio Button + + + + + Linked Formula - Group Box + + + + + Scroll bar position + + + + + Scroll Bar Minimum + + + + + Scroll Bar Maximum + + + + + Scroll Bar Increment + + + + + Scroll Bar Page Increment + + + + + Scroll Bar Orientation + + + + + Scroll Bar Width + + + + + ActiveX Control + + + + + Clipboard Format + + + + + Camera Tool + + + + + Recalculation Toggle + + + + + Font AutoScale + + + + + Dynamic Data Exchange + + + + + UI Object Toggle + + + + + HTML Script Text + + + + + HTML Script Attributes + + + + + HTML Script Language + + + + + HTML Script Location + + + + + Text Formula + + + + + + Object type + + + + + + Clipboard Format Type + + + + + WMF + + + + + EMF + + + + + Bitmap + + + + + Printer Picture + + + + + Screen Picture EMF + + + + + + + Object Type + + + + + Pushbutton + + + + + Checkbox + + + + + Dialog + + + + + Dropdown Box + + + + + Editable Text Field + + + + + Group Box + + + + + Label + + + + + Auditing Line + + + + + List Box + + + + + Movie + + + + + Comment + + + + + Image + + + + + Radio Button + + + + + Auditing Rectangle + + + + + Scroll Bar + + + + + Spin Button + + + + + Plain Shape + + + + + Group + + + + + Plain Rectangle + + + + + + + Boolean Value with Blank State + + + + + Logical True + + + + + Logical True + + + + + Logical False + + + + + Logical False + + + + + Blank - Default Value + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/vml-wordprocessingDrawing.xsd b/tests/resources/schema/ecma-376/vml-wordprocessingDrawing.xsd new file mode 100644 index 000000000..8b2d266ab --- /dev/null +++ b/tests/resources/schema/ecma-376/vml-wordprocessingDrawing.xsd @@ -0,0 +1,355 @@ + + + + + Top Border + + + + + Left Border + + + + + Right Border + + + + + Bottom Border + + + + + + Border Style + + + + + Border Width + + + + + Border shadow + + + + + + Text Wrapping + + + + + + Wrapping type + + + + + Wrapping side + + + + + Horizontal Positioning Base + + + + + Vertical Positioning Base + + + + + + Anchor Location Is Locked + + + + + + Border Type + + + + + No Border + + + + + Single Line Border + + + + + Thick Line Border + + + + + Double Line Border + + + + + Hairline Border + + + + + Dotted Border + + + + + pecifies a line border consisting of a dashed line around the parent object. + + + + + Dot Dash Border + + + + + Dash Dot Dot Border + + + + + Triple Line Border + + + + + Thin Thick Small Gap Border + + + + + Small thick-thin lines border + + + + + Small thin-thick-thin Lines Border + + + + + Thin Thick Line Border + + + + + Thick Thin Line Border + + + + + Thin-thick-thin Border + + + + + Thin Thick Large Gap Border + + + + + Thick Thin Large Gap Border + + + + + Large thin-thick-thin Border + + + + + Wavy Border + + + + + Double Wavy Lines Border + + + + + Small Dash Border + + + + + Stroked Dash Dot Border + + + + + 3D Embossed Border + + + + + 3D Engraved Border + + + + + Outset Border + + + + + Inset Border + + + + + + + Border Shadow Type + + + + + True + + + + + True + + + + + False + + + + + False + + + + + + + Text Wrapping Type + + + + + Top and bottom wrapping + + + + + Square wrapping + + + + + No wrapping + + + + + Tight wrapping + + + + + Through wrapping + + + + + + + Text Wrapping Side + + + + + Both sides + + + + + Left side + + + + + Right side + + + + + Largest side + + + + + + + Horizontal Anchor Type + + + + + Margin + + + + + Page + + + + + Text + + + + + Character + + + + + + + Vertical Anchor Type + + + + + Margin + + + + + Page + + + + + Text + + + + + Line + + + + + \ No newline at end of file diff --git a/tests/resources/schema/ecma-376/wml.xsd b/tests/resources/schema/ecma-376/wml.xsd new file mode 100644 index 000000000..737611f73 --- /dev/null +++ b/tests/resources/schema/ecma-376/wml.xsd @@ -0,0 +1,11334 @@ + + + + + + + + + + + On/Off Value + + + + + True + + + + + False + + + + + True + + + + + False + + + + + False + + + + + True + + + + + + + + On/Off Value + + + + + + Four Digit Hexadecimal Number Value + + + + + + + + + Long Hexadecimal Number Value + + + + + + Two Digit Hexadecimal Number Value + + + + + + + + + Two Digit Hexadecimal Value + + + + + + Two Digit Hexadecimal Number Value + + + + + + + + + Value + + + + + + Decimal Number Value + + + + + + + Decimal Number Value + + + + + + Unsigned Decimal Number Value + + + + + + Measurement in Twentieths of a Point + + + + + + + Measurement in Twentieths of a Point + + + + + + Signed Measurement in Twentieths of a Point + + + + + + + Positive or Negative Value in Twentieths of a Point + + + + + + Measurement in Pixels + + + + + + + Measurement in Pixels + + + + + + Measurement in Half-Points + + + + + + + Half Point Measurement + + + + + + Signed Measurement in Half-Points + + + + + + + Signed Half-Point Measurement + + + + + + Standard Date and Time Storage Format + + + + + + Script Subroutine Name Value + + + + + + + + + Name of Script Function + + + + + + Measurement in Eighths of a Point + + + + + + Measurement in Points + + + + + + String + + + + + + + String Value + + + + + + Text Expansion/Compression Percentage + + + + + + + + + + Text Expansion/Compression Value + + + + + + Text Highlight Colors + + + + + Black Highlighting Color + + + + + Blue Highlighting Color + + + + + Cyan Highlighting Color + + + + + Green Highlighting Color + + + + + Magenta Highlighting Color + + + + + Red Highlighting Color + + + + + Yellow Highlighting Color + + + + + White Highlighting Color + + + + + Dark Blue Highlighting Color + + + + + Dark Cyan Highlighting Color + + + + + Dark Green Highlighting Color + + + + + Dark Magenta Highlighting Color + + + + + Dark Red Highlighting Color + + + + + Dark Yellow Highlighting Color + + + + + Dark Gray Highlighting Color + + + + + Light Gray Highlighting Color + + + + + No Text Highlighting + + + + + + + + Highlighting Color + + + + + + ‘Automatic’ Color Value + + + + + Automatically Determined Color + + + + + + + Hexadecimal Color Value + + + + + + + + Color Value + + + + + + + Run Content Color + + + + + Run Content Theme Color + + + + + Run Content Theme Color Tint + + + + + Run Content Theme Color Shade + + + + + + Two Digit Hexadecimal Language Code + + + + + + + + Language Reference + + + + + + + Language Code + + + + + + 128-Bit GUID + + + + + + + + + GUID Value + + + + + + Underline Patterns + + + + + Single Underline + + + + + Underline Non-Space Characters Only + + + + + Double Underline + + + + + Thick Underline + + + + + Dotted Underline + + + + + Thick Dotted Underline + + + + + Dashed Underline + + + + + Thick Dashed Underline + + + + + Long Dashed Underline + + + + + Thick Long Dashed Underline + + + + + Dash-Dot Underline + + + + + Thick Dash-Dot Underline + + + + + Dash-Dot-Dot Underline + + + + + Thick Dash-Dot-Dot Underline + + + + + Wave Underline + + + + + Heavy Wave Underline + + + + + Double Wave Underline + + + + + No Underline + + + + + + + + Underline Style + + + + + Underline Color + + + + + Underline Theme Color + + + + + Underline Theme Color Tint + + + + + Underline Theme Color Shade + + + + + + Animated Text Effects + + + + + Blinking Background Animation + + + + + Colored Lights Animation + + + + + Black Dashed Line Animation + + + + + Marching Red Ants + + + + + Shimmer Animation + + + + + Sparkling Lights Animation + + + + + No Animation + + + + + + + + Animated Text Effect Type + + + + + + Border Styles + + + + + No Border + + + + + No Border + + + + + Single Line Border + + + + + Single Line Border + + + + + Double Line Border + + + + + Dotted Line Border + + + + + Dashed Line Border + + + + + Dot Dash Line Border + + + + + Dot Dot Dash Line Border + + + + + Triple Line Border + + + + + Thin, Thick Line Border + + + + + Thick, Thin Line Border + + + + + Thin, Thick, Thin Line Border + + + + + Thin, Thick Line Border + + + + + Thick, Thin Line Border + + + + + Thin, Thick, Thin Line Border + + + + + Thin, Thick Line Border + + + + + Thick, Thin Line Border + + + + + Thin, Thick, Thin Line Border + + + + + Wavy Line Border + + + + + Double Wave Line Border + + + + + Dashed Line Border + + + + + Dash Dot Strokes Line Border + + + + + 3D Embossed Line Border + + + + + 3D Engraved Line Border + + + + + Outset Line Border + + + + + Inset Line Border + + + + + Apples Art Border + + + + + Arched Scallops Art Border + + + + + Baby Pacifier Art Border + + + + + Baby Rattle Art Border + + + + + Three Color Balloons Art Border + + + + + Hot Air Balloons Art Border + + + + + Black Dash Art Border + + + + + Black Dot Art Border + + + + + Black Square Art Border + + + + + Thin Line Art Border + + + + + White Dash Art Border + + + + + White Dot Art Border + + + + + White Square Art Border + + + + + Wide Inline Art Border + + + + + Wide Midline Art Border + + + + + Wide Outline Art Border + + + + + Bats Art Border + + + + + Birds Art Border + + + + + Birds Flying Art Border + + + + + Cabin Art Border + + + + + Cake Art Border + + + + + Candy Corn Art Border + + + + + Knot Work Art Border + + + + + Certificate Banner Art Border + + + + + Chain Link Art Border + + + + + Champagne Bottle Art Border + + + + + Black and White Bar Art Border + + + + + Color Checked Bar Art Border + + + + + Checkerboard Art Border + + + + + Christmas Tree Art Border + + + + + Circles And Lines Art Border + + + + + Circles and Rectangles Art Border + + + + + Wave Art Border + + + + + Clocks Art Border + + + + + Compass Art Border + + + + + Confetti Art Border + + + + + Confetti Art Border + + + + + Confetti Art Border + + + + + Confetti Streamers Art Border + + + + + Confetti Art Border + + + + + Corner Triangle Art Border + + + + + Dashed Line Art Border + + + + + Dotted Line Art Border + + + + + Maze Art Border + + + + + Butterfly Art Border + + + + + Fish Art Border + + + + + Insects Art Border + + + + + Ladybug Art Border + + + + + Cross-stitch Art Border + + + + + Cupid Art Border + + + + + Archway Art Border + + + + + Color Archway Art Border + + + + + Blocks Art Border + + + + + Gray Diamond Art Border + + + + + Double D Art Border + + + + + Diamond Art Border + + + + + Earth Art Border + + + + + Earth Art Border + + + + + Shadowed Square Art Border + + + + + Shadowed Square Art Border + + + + + Painted Egg Art Border + + + + + Fans Art Border + + + + + Film Reel Art Border + + + + + Firecracker Art Border + + + + + Flowers Art Border + + + + + Daisy Art Border + + + + + Flowers Art Border + + + + + Flowers Art Border + + + + + Pansy Art Border + + + + + Red Rose Art Border + + + + + Roses Art Border + + + + + Flowers in a Teacup Art Border + + + + + Small Flower Art Border + + + + + Gems Art Border + + + + + Gingerbread Man Art Border + + + + + Triangle Gradient Art Border + + + + + Handmade Art Border + + + + + Handmade Art Border + + + + + Heart-Shaped Balloon Art Border + + + + + Gray Heart Art Border + + + + + Hearts Art Border + + + + + Pattern Art Border + + + + + Holly Art Border + + + + + House Art Border + + + + + Circular Art Border + + + + + Ice Cream Cone Art Border + + + + + Light Bulb Art Border + + + + + Lightning Art Border + + + + + Lightning Art Border + + + + + Map Pins Art Border + + + + + Maple Leaf Art Border + + + + + Muffin Art Border + + + + + Marquee Art Border + + + + + Marquee Art Border + + + + + Moon Art Border + + + + + Mosaic Art Border + + + + + Musical Note Art Border + + + + + Patterned Art Border + + + + + Oval Art Border + + + + + Package Art Border + + + + + Black Palm Tree Art Border + + + + + Color Palm Tree Art Border + + + + + Paper Clip Art Border + + + + + Papyrus Art Border + + + + + Party Favor Art Border + + + + + Party Glass Art Border + + + + + Pencils Art Border + + + + + Character Art Border + + + + + Waving Character Border + + + + + Character With Hat Art Border + + + + + Poinsettia Art Border + + + + + Postage Stamp Art Border + + + + + Pumpkin Art Border + + + + + Push Pin Art Border + + + + + Push Pin Art Border + + + + + Pyramid Art Border + + + + + Pyramid Art Border + + + + + Quadrants Art Border + + + + + Rings Art Border + + + + + Safari Art Border + + + + + Saw tooth Art Border + + + + + Gray Saw tooth Art Border + + + + + Scared Cat Art Border + + + + + Umbrella Art Border + + + + + Shadowed Squares Art Border + + + + + Shark Tooth Art Border + + + + + Bird Tracks Art Border + + + + + Rocket Art Border + + + + + Snowflake Art Border + + + + + Snowflake Art Border + + + + + Sombrero Art Border + + + + + Southwest-themed Art Border + + + + + Stars Art Border + + + + + Stars On Top Art Border + + + + + 3-D Stars Art Border + + + + + Stars Art Border + + + + + Stars With Shadows Art Border + + + + + Sun Art Border + + + + + Whirligig Art Border + + + + + Torn Paper Art Border + + + + + Black Torn Paper Art Border + + + + + Tree Art Border + + + + + Triangle Art Border + + + + + Triangles Art Border + + + + + Tribal Art Border One + + + + + Tribal Art Border Two + + + + + Tribal Art Border Three + + + + + Tribal Art Border Four + + + + + Tribal Art Border Five + + + + + Tribal Art Border Six + + + + + Twisted Lines Art Border + + + + + Twisted Lines Art Border + + + + + Vine Art Border + + + + + Wavy Line Art Border + + + + + Weaving Angles Art Border + + + + + Weaving Braid Art Border + + + + + Weaving Ribbon Art Border + + + + + Weaving Strips Art Border + + + + + White Flowers Art Border + + + + + Woodwork Art Border + + + + + Crisscross Art Border + + + + + Triangle Art Border + + + + + Zigzag Art Border + + + + + Zigzag stitch + + + + + + + + Border Style + + + + + Border Color + + + + + Border Theme Color + + + + + Border Theme Color Tint + + + + + Border Theme Color Shade + + + + + Border Width + + + + + Border Spacing Measurement + + + + + Border Shadow + + + + + Create Frame Effect + + + + + + Shading Patterns + + + + + No Pattern + + + + + No Pattern + + + + + 100% Fill Pattern + + + + + Horizontal Stripe Pattern + + + + + Vertical Stripe Pattern + + + + + Reverse Diagonal Stripe Pattern + + + + + Diagonal Stripe Pattern + + + + + Horizontal Cross Pattern + + + + + Diagonal Cross Pattern + + + + + Thin Horizontal Stripe Pattern + + + + + Thin Vertical Stripe Pattern + + + + + Thin Reverse Diagonal Stripe Pattern + + + + + Thin Diagonal Stripe Pattern + + + + + Thin Horizontal Cross Pattern + + + + + Thin Diagonal Cross Pattern + + + + + 5% Fill Pattern + + + + + 10% Fill Pattern + + + + + 12.5% Fill Pattern + + + + + 15% Fill Pattern + + + + + 20% Fill Pattern + + + + + 25% Fill Pattern + + + + + 30% Fill Pattern + + + + + 35% Fill Pattern + + + + + 37.5% Fill Pattern + + + + + 40% Fill Pattern + + + + + 45% Fill Pattern + + + + + 50% Fill Pattern + + + + + 55% Fill Pattern + + + + + 60% Fill Pattern + + + + + 62.5% Fill Pattern + + + + + 65% Fill Pattern + + + + + 70% Fill Pattern + + + + + 75% Fill Pattern + + + + + 80% Fill Pattern + + + + + 85% Fill Pattern + + + + + 87.5% Fill Pattern + + + + + 90% Fill Pattern + + + + + 95% Fill Pattern + + + + + + + + Shading Pattern + + + + + Shading Pattern Color + + + + + Shading Pattern Theme Color + + + + + Shading Pattern Theme Color Tint + + + + + Shading Pattern Theme Color Shade + + + + + Shading Background Color + + + + + Shading Background Theme Color + + + + + Shading Background Theme Color Tint + + + + + Shading Background Theme Color Shade + + + + + + Vertical Positioning Location + + + + + Regular Vertical Positioning + + + + + Superscript + + + + + Subscript + + + + + + + + Subscript/Superscript Value + + + + + + + Value + + + + + Fit Text Run ID + + + + + + Emphasis Mark Type + + + + + No Emphasis Mark + + + + + Dot Emphasis Mark Above Characters + + + + + Comma Emphasis Mark Above Characters + + + + + Circle Emphasis Mark Above Characters + + + + + Dot Emphasis Mark Below Characters + + + + + + + + Emphasis Mark Type + + + + + + + Latin Language + + + + + East Asian Language + + + + + Complex Script Language + + + + + + Two Lines in One Enclosing Character Type + + + + + No Enclosing Brackets + + + + + Round Brackets + + + + + Square Brackets + + + + + Angle Brackets + + + + + Curly Brackets + + + + + + + + East Asian Typography Run ID + + + + + Two Lines in One + + + + + Display Brackets Around Two Lines in One + + + + + Horizontal in Vertical (Rotate Text) + + + + + Compress Rotated Text to Line Height + + + + + + Horizontal Alignment Location + + + + + Left Aligned Horizontally + + + + + Centered Horizontally + + + + + Right Aligned Horizontally + + + + + Inside + + + + + Outside + + + + + + + Vertical Alignment Location + + + + + In line With Text + + + + + Top + + + + + Centered Vertically + + + + + Bottom + + + + + Inside Anchor Extents + + + + + Outside Anchor Extents + + + + + + + Height Rule + + + + + Determine Height Based On Contents + + + + + Exact Height + + + + + Minimum Height + + + + + + + Text Wrapping around Text Frame Type + + + + + Default Text Wrapping Around Frame + + + + + No Text Wrapping Beside Frame + + + + + Allow Text Wrapping Around Frame + + + + + Tight Text Wrapping Around Frame + + + + + Through Text Wrapping Around Frame + + + + + No Text Wrapping Around Frame + + + + + + + Vertical Anchor Location + + + + + Relative To Vertical Text Extents + + + + + Relative To Margin + + + + + Relative To Page + + + + + + + Horizontal Anchor Location + + + + + Relative to Text Extents + + + + + Relative To Margin + + + + + Relative to Page + + + + + + + Text Frame Drop Cap Location + + + + + Not Drop Cap + + + + + Drop Cap Inside Margin + + + + + Drop Cap Outside Margin + + + + + + + + Drop Cap Frame + + + + + Drop Cap Vertical Height in Lines + + + + + Frame Width + + + + + Frame Height + + + + + Vertical Frame Padding + + + + + Horizontal Frame Padding + + + + + Text Wrapping Around Frame + + + + + Frame Horizontal Positioning Base + + + + + Frame Vertical Positioning Base + + + + + Absolute Horizontal Position + + + + + Relative Horizontal Position + + + + + Absolute Vertical Position + + + + + Relative Vertical Position + + + + + Frame Height Type + + + + + Lock Frame Anchor to Paragraph + + + + + + Custom Tab Stop Type + + + + + No Tab Stop + + + + + Left Tab + + + + + Centered Tab + + + + + Right Tab + + + + + Decimal Tab + + + + + Bar Tab + + + + + List Tab + + + + + + + Custom Tab Stop Leader Character + + + + + No tab stop leader + + + + + Dotted leader line + + + + + Dashed tab stop leader line + + + + + Solid leader line + + + + + Heavy solid leader line + + + + + Middle dot leader line + + + + + + + + Tab Stop Type + + + + + Tab Leader Character + + + + + Tab Stop Position + + + + + + Line Spacing Rule + + + + + Automatically Determined Line Height + + + + + Exact Line Height + + + + + Minimum Line Height + + + + + + + + Spacing Above Paragraph + + + + + Spacing Above Paragraph IN Line Units + + + + + Automatically Determine Spacing Above Paragraph + + + + + Spacing Below Paragraph + + + + + Spacing Below Paragraph in Line Units + + + + + Automatically Determine Spacing Below Paragraph + + + + + Spacing Between Lines in Paragraph + + + + + Type of Spacing Between Lines + + + + + + + Left Indentation + + + + + Left Indentation in Character Units + + + + + Right Indentation + + + + + Right Indentation in Character Units + + + + + Indentation Removed from First Line + + + + + Indentation Removed From First Line in Character Units + + + + + Additional First Line Indentation + + + + + Additional First Line Indentation in Character Units + + + + + + Horizontal Alignment Type + + + + + Align Left + + + + + Align Center + + + + + Align Right + + + + + Justified + + + + + Medium Kashida Length + + + + + Distribute All Characters Equally + + + + + Align to List Tab + + + + + Widest Kashida Length + + + + + Low Kashida Length + + + + + Thai Language Justification + + + + + + + + Alignment Type + + + + + + Document View Values + + + + + Default View + + + + + Print Layout View + + + + + Outline View + + + + + Master Document View + + + + + Draft View + + + + + Web Page View + + + + + + + + Document View Setting Value + + + + + + Magnification Preset Values + + + + + No Preset Magnification + + + + + Display One Full Page + + + + + Display Page Width + + + + + Display Text Width + + + + + + + + Zoom Type + + + + + Zoom Percentage + + + + + + + Writing Style Language + + + + + Grammatical Engine ID + + + + + Grammatical Check Engine Version + + + + + Natural Language Grammar Check + + + + + Check Stylistic Rules With Grammar + + + + + Application Name + + + + + + Proofing State Values + + + + + Check Completed + + + + + Check Not Completed + + + + + + + + Spell Checking State + + + + + Grammatical Checking State + + + + + + Document Classification Values + + + + + Default Document + + + + + Letter + + + + + E-Mail Message + + + + + + + + Document Classification Value + + + + + + Document Protection Types + + + + + No Editing Restrictions + + + + + Allow No Editing + + + + + Allow Editing of Comments + + + + + Allow Editing With Revision Tracking + + + + + Allow Editing of Form Fields + + + + + + + Cryptographic Provider Types + + + + + AES Provider + + + + + Any Provider + + + + + + + Cryptographic Algorithm Classes + + + + + Hashing + + + + + + + Cryptographic Algorithm Types + + + + + Any Type + + + + + + + + Cryptographic Provider Type + + + + + Cryptographic Algorithm Class + + + + + Cryptographic Algorithm Type + + + + + Cryptographic Hashing Algorithm + + + + + Iterations to Run Hashing Algorithm + + + + + Cryptographic Provider + + + + + Cryptographic Algorithm Extensibility + + + + + Algorithm Extensibility Source + + + + + Cryptographic Provider Type Extensibility + + + + + Provider Type Extensibility Source + + + + + Password Hash + + + + + Salt for Password Verifier + + + + + + + Document Editing Restrictions + + + + + Only Allow Formatting With Unlocked Styles + + + + + Enforce Document Protection Settings + + + + + + + Source Document Types + + + + + Catalog Source Document + + + + + Envelope Source Document + + + + + Mailing Label Source Document + + + + + Form Letter Source Document + + + + + E-Mail Source Document + + + + + Fax Source Document + + + + + + + + Mail Merge Source Document Type + + + + + + Mail Merge Data Source Type Values + + + + + Text File Data Source + + + + + Database Data Source + + + + + Spreadsheet Data Source + + + + + Query Data Source + + + + + Open Database Connectivity Data Source + + + + + Office Data Source Object Data Source + + + + + + + + Value + + + + + + Merged Document Destination Types + + + + + Send Merged Documents to New Documents + + + + + Send Merged Documents to Printer + + + + + Send Merged Documents as E-mail Messages + + + + + Send Merged Documents as Faxes + + + + + + + + Mail Merge Merged Document Type + + + + + + Merge Field Mapping Types + + + + + Field Not Mapped + + + + + Field Mapping to Data Source Column + + + + + + + + Merge Field Mapping Type + + + + + + + Display Visual Indicator Of Markup Area + + + + + Display Comments + + + + + Display Content Revisions + + + + + Display Formatting Revisions + + + + + Display Ink Annotations + + + + + + + Language For Which Custom Line Breaking Rule Applies + + + + + Characters For Custom Line Breaking Rule + + + + + + Text Flow Direction + + + + + Left to Right, Top to Bottom + + + + + Top to Bottom, Right to Left + + + + + Bottom to Top, Left to Right + + + + + Left to Right, Top to Bottom Rotated + + + + + Top to Bottom, Right to Left Rotated + + + + + Top to Bottom, Left to Right Rotated + + + + + + + + Direction of Text Flow + + + + + + Vertical Text Alignment Types + + + + + Align Text at Top + + + + + Align Text at Center + + + + + Align Text at Baseline + + + + + Align Text at Bottom + + + + + Automatically Determine Alignment + + + + + + + + Vertical Character Alignment Position + + + + + + Location of Custom XML Markup Displacing an Annotation + + + + + Displaced by Next Custom XML Markup Tag + + + + + Displaced by Previous Custom XML Markup Tag + + + + + + + Table Cell Vertical Merge Revision Type + + + + + Vertically Merged Cell + + + + + Vertically Split Cell + + + + + + + + Annotation Identifier + + + + + + + + + Annotation Author + + + + + Annotation Date + + + + + + + + + + + Revised Vertical Merge Setting + + + + + Vertical Merge Setting Removed by Revision + + + + + + + + + + + Annotation Marker Displaced By Custom XML Markup + + + + + + + + + + + Annotation Marker Relocated For Custom XML Markup + + + + + + + + + + + First Table Column Covered By Bookmark + + + + + Last Table Column Covered By Bookmark + + + + + + + + + + + Bookmark Name + + + + + + + + + + + Annotation Author + + + + + Annotation Date + + + + + + + + + + + + + + Initials of Comment Author + + + + + + + + + + + Previous Numbering Value + + + + + + + + + + + + Previous Table-Level Property Exceptions + + + + + + + + + + + + + Previous Table Cell Properties + + + + + + + + + + + + + Previous Table Row Properties + + + + + + + + + + + + + Previous Table Grid + + + + + + + + + + + + + Previous Table Properties + + + + + + + + + + + + + Previous Section Properties + + + + + + + + + + + + + Previous Paragraph Properties + + + + + + + + + + + + + Previous Run Properties + + + + + + + + + + + + + Previous Run Properties for the Paragraph Mark + + + + + + + + + + + + + + + + + + + + + Table Cell Insertion + + + + + Table Cell Deletion + + + + + Vertically Merged/Split Table Cells + + + + + + + + + Bookmark Start + + + + + Bookmark End + + + + + Move Source Location Container - Start + + + + + Move Source Location Container - End + + + + + Move Destination Location Container - Start + + + + + Move Destination Location Container - End + + + + + Comment Anchor Range Start + + + + + Comment Anchor Range End + + + + + Custom XML Markup Insertion Start + + + + + Custom XML Markup Insertion End + + + + + Custom XML Markup Deletion Start + + + + + Custom XML Markup Deletion End + + + + + Custom XML Markup Move Source Start + + + + + Custom XML Markup Move Source End + + + + + Custom XML Markup Move Destination Location Start + + + + + Custom XML Markup Move Destination Location End + + + + + + + + + Numbering Level Reference + + + + + Numbering Definition Instance Reference + + + + + Previous Paragraph Numbering Properties + + + + + Inserted Numbering Properties + + + + + + + + + Paragraph Border Above Identical Paragraphs + + + + + Left Paragraph Border + + + + + Paragraph Border Between Identical Paragraphs + + + + + Right Paragraph Border + + + + + Paragraph Border Between Identical Paragraphs + + + + + Paragraph Border Between Facing Pages + + + + + + + + + Custom Tab Stop + + + + + + + Lines To Tight Wrap Within Text Box + + + + + Do Not Tight Wrap + + + + + Tight Wrap All Lines + + + + + Tight Wrap First and Last Lines + + + + + Tight Wrap First Line + + + + + Tight Wrap Last Line + + + + + + + + Lines to Tight Wrap to Paragraph Extents + + + + + + + + Referenced Paragraph Style + + + + + Keep Paragraph With Next Paragraph + + + + + Keep All Lines On One Page + + + + + Start Paragraph on Next Page + + + + + Text Frame Properties + + + + + Allow First/Last Line to Display on a Separate Page + + + + + Numbering Definition Instance Reference + + + + + Suppress Line Numbers for Paragraph + + + + + Paragraph Borders + + + + + Paragraph Shading + + + + + Set of Custom Tab Stops + + + + + Suppress Hyphenation for Paragraph + + + + + Use East Asian Typography Rules for First and Last Character per Line + + + + + Allow Line Breaking At Character Level + + + + + Allow Punctuation to Extent Past Text Extents + + + + + Compress Punctuation at Start of a Line + + + + + Automatically Adjust Spacing of Latin and East Asian Text + + + + + Automatically Adjust Spacing of East Asian Text and Numbers + + + + + Right to Left Paragraph Layout + + + + + Automatically Adjust Right Indent When Using Document Grid + + + + + Use Document Grid Settings for Inter-Line Paragraph Spacing + + + + + Spacing Between Lines and Above/Below Paragraph + + + + + Paragraph Indentation + + + + + Ignore Spacing Above and Below When Using Identical Styles + + + + + Use Left/Right Indents as Inside/Outside Indents + + + + + Prevent Text Frames From Overlapping + + + + + Paragraph Alignment + + + + + Paragraph Text Flow Direction + + + + + Vertical Character Alignment on Line + + + + + Allow Surrounding Paragraphs to Tight Wrap to Text Box Contents + + + + + Associated Outline Level + + + + + Associated HTML div ID + + + + + Paragraph Conditional Formatting + + + + + + + + + + + Run Properties for the Paragraph Mark + + + + + Section Properties + + + + + Revision Information for Paragraph Properties + + + + + + + + + + Unique Name for Embedded Control + + + + + Associated VML Data Reference + + + + + Embedded Control Properties Relationship Reference + + + + + + + + + Background Color + + + + + Background Theme Color + + + + + Border Theme Color Tint + + + + + Border Theme Color Shade + + + + + + + + + Relationship to Part + + + + + + + + + + + + + + + + Inline Embedded Control + + + + + + Original Image Width + + + + + Original Image Height + + + + + + + + + + + + Embedded Video + + + + + Floating Embedded Control + + + + + + + + + + + Drawing Element Anchor + + + + + Inline Drawing Object + + + + + + + + + Custom Field Data + + + + + + + Field Codes + + + + + Field Should Not Be Recalculated + + + + + Field Result Invalidated + + + + + + Complex Field Character Type + + + + + Start Character + + + + + Separator Character + + + + + End Character + + + + + + + Help or Status Text Type + + + + + Literal Text + + + + + Glossary Document Entry + + + + + + + Help Text Value + + + + + + + + Status Text Value + + + + + + + + Form Field Name Value + + + + + + + + Text Box Form Field Type Values + + + + + Text Box + + + + + Number + + + + + Date + + + + + Current Time Display + + + + + Current Date Display + + + + + Field Calculation + + + + + + + + Text Box Form Field Type Values + + + + + + + Form Field Name Value + + + + + + + + Custom Field Data + + + + + Form Field Properties + + + + + Previous Numbering Field Properties + + + + + + Field Character Type + + + + + Field Should Not Be Recalculated + + + + + Field Result Invalidated + + + + + + + + Hyperlink Target Frame + + + + + Associated String + + + + + Location in Target Document + + + + + Add To Viewed Hyperlinks + + + + + Hyperlink Anchor + + + + + Hyperlink Target + + + + + + + + Form Field Name + + + + + Form Field Enabled + + + + + Recalculate Fields When Current Field Is Modified + + + + + Script Function to Execute on Form Field Entry + + + + + Script Function to Execute on Form Field Exit + + + + + Associated Help Text + + + + + Associated Status Text + + + + + + Checkbox Form Field Properties + + + + + Drop-Down List Form Field Properties + + + + + Text Box Form Field Properties + + + + + + + + + Help Text Type + + + + + Help Text Value + + + + + + + Status Text Type + + + + + Status Text Value + + + + + + + + + Checkbox Form Field Size + + + + + Automatically Size Form Field + + + + + + Default Checkbox Form Field State + + + + + Checkbox Form Field State + + + + + + + + + Drop-Down List Selection + + + + + Default Drop-Down List Item Index + + + + + Drop-Down List Entry + + + + + + + + + Text Box Form Field Type + + + + + Default Text Box Form Field String + + + + + Text Box Form Field Maximum Length + + + + + Text Box Form Field Formatting + + + + + + + Section Type + + + + + Next Page Section Break + + + + + Column Section Break + + + + + Continuous Section Break + + + + + Even Page Section Break + + + + + Odd Page Section Break + + + + + + + + Section Type Setting + + + + + + + First Page Printer Tray Code + + + + + Non-First Page Printer Tray Code + + + + + + Numbering Format + + + + + Decimal Numbers + + + + + Uppercase Roman Numerals + + + + + Lowercase Roman Numerals + + + + + Uppercase Latin Alphabet + + + + + Lowercase Latin Alphabet + + + + + Ordinal + + + + + Cardinal Text + + + + + Ordinal Text + + + + + Hexadecimal Numbering + + + + + Chicago Manual of Style + + + + + Ideographs + + + + + Japanese Counting System + + + + + AIUEO Order Hiragana + + + + + Iroha Ordered Katakana + + + + + Double Byte Arabic Numerals + + + + + Single Byte Arabic Numerals + + + + + Japanese Legal Numbering + + + + + Japanese Digital Ten Thousand Counting System + + + + + Decimal Numbers Enclosed in a Circle + + + + + Double Byte Arabic Numerals Alternate + + + + + Full-Width AIUEO Order Hiragana + + + + + Full-Width Iroha Ordered Katakana + + + + + Initial Zero Arabic Numerals + + + + + Bullet + + + + + Korean Ganada Numbering + + + + + Korean Chosung Numbering + + + + + Decimal Numbers Followed by a Period + + + + + Decimal Numbers Enclosed in Parenthesis + + + + + Decimal Numbers Enclosed in a Circle + + + + + Ideographs Enclosed in a Circle + + + + + Traditional Ideograph Format + + + + + Zodiac Ideograph Format + + + + + Traditional Zodiac Ideograph Format + + + + + Taiwanese Counting System + + + + + Traditional Legal Ideograph Format + + + + + Taiwanese Counting Thousand System + + + + + Taiwanese Digital Counting System + + + + + Chinese Counting System + + + + + Chinese Legal Simplified Format + + + + + Chinese Counting Thousand System + + + + + Korean Digital Counting System + + + + + Korean Counting System + + + + + Korean Legal Numbering + + + + + Korean Digital Counting System Alternate + + + + + Vietnamese Numerals + + + + + Lowercase Russian Alphabet + + + + + Uppercase Russian Alphabet + + + + + No Numbering + + + + + Number With Dashes + + + + + Hebrew Numerals + + + + + Hebrew Alphabet + + + + + Arabic Alphabet + + + + + Arabic Abjad Numerals + + + + + Hindi Vowels + + + + + Hindi Consonants + + + + + Hindi Numbers + + + + + Hindi Counting System + + + + + Thai Letters + + + + + Thai Numerals + + + + + Thai Counting System + + + + + + + Page Orientation + + + + + Portrait Mode + + + + + Landscape Mode + + + + + + + + Page Width + + + + + Page Height + + + + + Page Orientation + + + + + Printer Paper Code + + + + + + + Top Margin Spacing + + + + + Right Margin Spacing + + + + + Page Bottom Spacing + + + + + Left Margin Spacing + + + + + Spacing to Top of Header + + + + + Spacing to Bottom of Footer + + + + + Page Gutter Spacing + + + + + + Page Border Z-Order + + + + + Page Border Ahead of Text + + + + + Page Border Behind Text + + + + + + + Page Border Display Options + + + + + Display Page Border on All Pages + + + + + Display Page Border on First Page + + + + + Display Page Border on All Pages Except First + + + + + + + Page Border Positioning Base + + + + + Page Border Is Positioned Relative to Page Edges + + + + + Page Border Is Positioned Relative to Text Extents + + + + + + + + + Top Border + + + + + Left Border + + + + + Bottom Border + + + + + Right Border + + + + + + Z-Ordering of Page Border + + + + + Pages to Display Page Borders + + + + + Page Border Positioning + + + + + + Chapter Separator Types + + + + + Hyphen Chapter Separator + + + + + Period Chapter Separator + + + + + Colon Chapter Separator + + + + + Em Dash Chapter Separator + + + + + En Dash Chapter Separator + + + + + + + Line Numbering Restart Position + + + + + Restart Line Numbering on Each Page + + + + + Restart Line Numbering for Each Section + + + + + Continue Line Numbering From Previous Section + + + + + + + + Line Number Increments to Display + + + + + Line Numbering Starting Value + + + + + Distance Between Text and Line Numbering + + + + + Line Numbering Restart Setting + + + + + + + Page Number Format + + + + + Starting Page Number + + + + + Chapter Heading Style + + + + + Chapter Separator Character + + + + + + + Column Width + + + + + Space Before Following Column + + + + + + + + Single Column Definition + + + + + + Equal Column Widths + + + + + Spacing Between Equal Width Columns + + + + + Number of Equal Width Columns + + + + + Draw Line Between Columns + + + + + + Vertical Alignment Type + + + + + Align Top + + + + + Align Center + + + + + Vertical Justification + + + + + Align Bottom + + + + + + + + Vertical Alignment Setting + + + + + + Document Grid Types + + + + + No Document Grid + + + + + Line Grid Only + + + + + Line and Character Grid + + + + + Character Grid Only + + + + + + + + Document Grid Type + + + + + Document Grid Line Pitch + + + + + Document Grid Character Pitch + + + + + + Header or Footer Type + + + + + Even Numbered Pages Only + + + + + Default Header or Footer + + + + + First Page Only + + + + + + + Footnote or Endnote Type + + + + + Normal Footnote/Endnote + + + + + Separator + + + + + Continuation Separator + + + + + Continuation Notice Separator + + + + + + + + + + Header or Footer Type + + + + + + + + + + Header Reference + + + + + Footer Reference + + + + + + + + + + + + Section-Wide Footnote Properties + + + + + Section-Wide Endnote Properties + + + + + Section Type + + + + + Page Size + + + + + Page Margins + + + + + Paper Source Information + + + + + Page Borders + + + + + Line Numbering Settings + + + + + Page Numbering Settings + + + + + Column Definitions + + + + + Only Allow Editing of Form Fields + + + + + Vertical Text Alignment on Page + + + + + Suppress Endnotes In Document + + + + + Different First Page Headers and Footers + + + + + Text Flow Direction + + + + + Right to Left Section Layout + + + + + Gutter on Right Side of Page + + + + + Document Grid + + + + + Reference to Printer Settings Data + + + + + + + + Physical Section Mark Character Revision ID + + + + + Section Deletion Revision ID + + + + + Section Addition Revision ID + + + + + Section Properties Revision ID + + + + + + + + + + + + + + + + Revision Information for Section Properties + + + + + + + + Break Types + + + + + Page Break + + + + + Column Break + + + + + Line Break + + + + + + + Line Break Text Wrapping Restart Location + + + + + Restart On Next Line + + + + + Restart In Next Text Region When In Leftmost Position + + + + + Restart In Next Text Region When In Rightmost Position + + + + + Restart On Next Full Line + + + + + + + + Break Type + + + + + Restart Location For Text Wrapping Break + + + + + + Absolute Position Tab Alignment + + + + + Left + + + + + Center + + + + + Right + + + + + + + Absolute Position Tab Positioning Base + + + + + Relative To Text Margins + + + + + Relative To Indents + + + + + + + Absolute Position Tab Leader Character + + + + + No Leader Character + + + + + Dot Leader Character + + + + + Hyphen Leader Character + + + + + Underscore Leader Character + + + + + Centered Dot Leader Character + + + + + + + + Positional Tab Stop Alignment + + + + + Positional Tab Base + + + + + Tab Leader Character + + + + + + + Symbol Character Font + + + + + Symbol Character Code + + + + + + Proofing Error Type + + + + + Start of Region Marked as Spelling Error + + + + + End of Region Marked as Spelling Error + + + + + Start of Region Marked as Grammatical Error + + + + + End of Region Marked as Grammatical Error + + + + + + + + Proofing Error Anchor Type + + + + + + Range Permision Editing Group + + + + + No Users Have Editing Permissions + + + + + All Users Have Editing Permissions + + + + + Administrator Group + + + + + Contributors Group + + + + + Editors Group + + + + + Owners Group + + + + + Current Group + + + + + + + + Annotation ID + + + + + Annotation Displaced By Custom XML Markup + + + + + + + + + Editor Group For Range Permission + + + + + Single User For Range Permission + + + + + First Table Column Covered By Range Permission + + + + + Last Table Column Covered By Range Permission + + + + + + + + + + + Content Contains Significant Whitespace + + + + + + + + + + Break + + + + + Text + + + + + Deleted Text + + + + + Field Code + + + + + Deleted Field Code + + + + + Non Breaking Hyphen Character + + + + + Optional Hyphen Character + + + + + Date Block - Short Day Format + + + + + Date Block - Short Month Format + + + + + Date Block - Short Year Format + + + + + Date Block - Long Day Format + + + + + Date Block - Long Month Format + + + + + Date Block - Long Year Format + + + + + Comment Information Block + + + + + Footnote Reference Mark + + + + + Endnote Reference Mark + + + + + Footnote/Endnote Separator Mark + + + + + Continuation Separator Mark + + + + + Symbol Character + + + + + Page Number Block + + + + + Carriage Return + + + + + Tab Character + + + + + Inline Embedded Object + + + + + VML Object + + + + + Complex Field Character + + + + + Phonetic Guide + + + + + Footnote Reference + + + + + Endnote Reference + + + + + Comment Content Reference Mark + + + + + DrawingML Object + + + + + Absolute Position Tab Character + + + + + Position of Last Calculated Page Break + + + + + + + + + + + + Revision Identifier for Run Properties + + + + + Revision Identifier for Run Deletion + + + + + Revision Identifier for Run + + + + + + Font Type Hint + + + + + High ANSI Font + + + + + East Asian Font + + + + + Complex Script Font + + + + + + + Theme Font + + + + + Major East Asian Theme Font + + + + + Major Complex Script Theme Font + + + + + Major ASCII Theme Font + + + + + Major High ANSI Theme Font + + + + + Minor East Asian Theme Font + + + + + Minor Complex Script Theme Font + + + + + Minor ASCII Theme Font + + + + + Minor High ANSI Theme Font + + + + + + + + Font Content Type + + + + + ASCII Font + + + + + High ANSI Font + + + + + East Asian Font + + + + + Complex Script Font + + + + + ASCII Theme Font + + + + + High ANSI Theme Font + + + + + East Asian Theme Font + + + + + Complex Script Theme Font + + + + + + + + Referenced Character Style + + + + + Run Fonts + + + + + Bold + + + + + Complex Script Bold + + + + + Italics + + + + + Complex Script Italics + + + + + Display All Characters As Capital Letters + + + + + Small Caps + + + + + Single Strikethrough + + + + + Double Strikethrough + + + + + Display Character Outline + + + + + Shadow + + + + + Embossing + + + + + Imprinting + + + + + Do Not Check Spelling or Grammar + + + + + Use Document Grid Settings For Inter-Character Spacing + + + + + Hidden Text + + + + + Web Hidden Text + + + + + Run Content Color + + + + + Character Spacing Adjustment + + + + + Expanded/Compressed Text + + + + + Font Kerning + + + + + Vertically Raised or Lowered Text + + + + + Font Size + + + + + Complex Script Font Size + + + + + Text Highlighting + + + + + Underline + + + + + Animated Text Effect + + + + + Text Border + + + + + Run Shading + + + + + Manual Run Width + + + + + Subscript/Superscript Text + + + + + Right To Left Text + + + + + Use Complex Script Formatting on Run + + + + + Emphasis Mark + + + + + Languages for Run Content + + + + + East Asian Typography Settings + + + + + Paragraph Mark Is Always Hidden + + + + + Office Open XML Math + + + + + + + + + + Revision Information for Run Properties + + + + + + + + + + + + + + Run Properties + + + + + + + + + + Inserted Math Control Character + + + + + Deleted Math Control Character + + + + + + + + + + + + + + + + + + + + + + Revision Information for Run Properties on the Paragraph Mark + + + + + + + + + Inserted Paragraph + + + + + Deleted Paragraph + + + + + Move Source Paragraph + + + + + Move Destination Paragraph + + + + + + + + + External Content Import Properties + + + + + + Relationship to Part + + + + + + + + Keep Source Formatting on Import + + + + + + + Phonetic Guide Text Alignment + + + + + Center + + + + + Distribute All Characters + + + + + Distribute all Characters w/ Additional Space On Either Side + + + + + Left Aligned + + + + + Right Aligned + + + + + Vertically Aligned to Right of Base Text + + + + + + + + Phonetic Guide Text Alignment Value + + + + + + + + Phonetic Guide Text Alignment + + + + + Phonetic Guide Text Font Size + + + + + Distance Between Phonetic Guide Text and Phonetic Guide Base Text + + + + + Phonetic Guide Base Text Font Size + + + + + Language ID for Phonetic Guide + + + + + Invalidated Field Cache + + + + + + + + + Phonetic Guide Text Run + + + + + + + + + + + + + Phonetic Guide Properties + + + + + Phonetic Guide Text + + + + + Phonetic Guide Base Text + + + + + + + Locking Types + + + + + SDT Cannot Be Deleted + + + + + Contents Cannot Be Edited At Runtime + + + + + No Locking + + + + + Contents Cannot Be Edited At Runtime And SDT Cannot Be Deleted + + + + + + + + Locking Type + + + + + + + List Entry Display Text + + + + + List Entry Value + + + + + + Date Storage Format Types + + + + + Same As Display + + + + + XML Schema Date Format + + + + + XML Schema DateTime Format + + + + + + + + Date Storage Type + + + + + + Calendar Types + + + + + Gregorian + + + + + Hijri + + + + + Hebrew + + + + + Taiwan + + + + + Japanese Emperor Era + + + + + Thai + + + + + Korean Tangun Era + + + + + Saka Era + + + + + Gregorian transliterated English + + + + + Gregorian transliterated French + + + + + + + + Calendar Type Value + + + + + + + + Date Display Mask + + + + + Date Picker Language ID + + + + + Custom XML Data Date Storage Format + + + + + Date Picker Calendar Type + + + + + + Last Known Date in XML Schema DateTime Format + + + + + + + + Combo Box List Item + + + + + + Combo Box Last Saved Value + + + + + + + + Document Part Gallery Filter + + + + + Document Part Category Filter + + + + + Built-In Document Part + + + + + + + + + Drop-Down List Item + + + + + + Drop-down List Last Saved Value + + + + + + + + Document Part Reference + + + + + + + + Allow Soft Line Breaks + + + + + + + XML Namespace Prefix Mappings + + + + + XPath + + + + + Custom XML Data Storage ID + + + + + + + + Run Properties For Structured Document Tag Contents + + + + + Friendly Name + + + + + Locking Setting + + + + + Structured Document Tag Placeholder Text + + + + + Current Contents Are Placeholder Text + + + + + XML Mapping + + + + + Remove Structured Document Tag When Contents Are Edited + + + + + Unique ID + + + + + Programmatic Tag + + + + + + Equation Structured Document Tag + + + + + Combo Box Structured Document Tag + + + + + Date Structured Document Tag + + + + + Built-In Document Part Structured Document Tag + + + + + Document Part Gallery Structured Document Tag + + + + + Drop-Down List Structured Document Tag + + + + + Picture Structured Document Tag + + + + + Rich Text Structured Document Tag + + + + + Plain Text Structured Document Tag + + + + + Citation Structured Document Tag + + + + + Group Structured Document Tag + + + + + Bibliography Structured Document Tag + + + + + + + + + + Structured Document Tag End Character Run Properties + + + + + + + + + Inline-Level Custom XML Element + + + + + Inline-Level Smart Tag + + + + + Inline-Level Structured Document Tag + + + + + Text Run + + + + + + + + + + + + + Block-Level Custom XML Element + + + + + Block-Level Structured Document Tag + + + + + Paragraph + + + + + Table + + + + + + + + + + + + + Table Row + + + + + Row-Level Custom XML Element + + + + + Row-Level Structured Document Tag + + + + + + + + + + + + + Table Cell + + + + + Cell-Level Custom XML Element + + + + + Cell-Level Structured Document Tag + + + + + + + + + + + + + Structured Document Tag Properties + + + + + Structured Document Tag End Character Properties + + + + + Block-Level Structured Document Tag Content + + + + + + + + + Structured Document Tag Properties + + + + + Structured Document Tag End Character Properties + + + + + Inline-Level Structured Document Tag Content + + + + + + + + + Structured Document Tag Properties + + + + + Structured Document Tag End Character Properties + + + + + Cell-Level Structured Document Tag Content + + + + + + + + + Structured Document Tag Properties + + + + + Structured Document Tag End Character Properties + + + + + Row-Level Structured Document Tag Content + + + + + + + + Namespace + + + + + Name + + + + + Value + + + + + + + + Custom XML Element Properties + + + + + + + Custom XML Markup Namespace + + + + + Element name + + + + + + + + Smart Tag Properties + + + + + + + Smart Tag Namespace + + + + + Smart Tag Name + + + + + + + + Custom XML Element Properties + + + + + + + Custom XML Element Namespace + + + + + Custom XML Element Name + + + + + + + + Custom XML Element Placeholder Text + + + + + Custom XML Attribute + + + + + + + + + Custom XML Element Properties + + + + + + + Custom XML Element Namespace + + + + + Custom XML Element Name + + + + + + + + Custom XML Element Properties + + + + + + + Custom XML Element Namespace + + + + + Custom XML Element Name + + + + + + + + Smart Tag Property + + + + + + + + + + Simple Field + + + + + Hyperlink + + + + + Anchor for Subdocument Location + + + + + + + + + Paragraph Properties + + + + + + + Revision Identifier for Paragraph Glyph Formatting + + + + + Revision Identifier for Paragraph + + + + + Revision Identifier for Paragraph Deletion + + + + + Revision Identifier for Paragraph Properties + + + + + Default Revision Identifier for Runs + + + + + + Table Width Units + + + + + No Width + + + + + Width in Fiftieths of a Percent + + + + + Width in Twentieths of a Point + + + + + Automatically Determined Width + + + + + + + + Table Row Height + + + + + Table Row Height Type + + + + + + + Table Width Value + + + + + Table Width Type + + + + + + + Grid Column Width + + + + + + + + Grid Column Definition + + + + + + + + + + + Revision Information for Table Grid Column Definitions + + + + + + + + + + + Table Cell Top Border + + + + + Table Cell Left Border + + + + + Table Cell Bottom Border + + + + + Table Cell Right Border + + + + + Table Cell Inside Horizontal Edges Border + + + + + Table Cell Inside Vertical Edges Border + + + + + Table Cell Top Left to Bottom Right Diagonal Border + + + + + Table Cell Top Right to Bottom Left Diagonal Border + + + + + + + + + Table Cell Top Margin Exception + + + + + Table Cell Left Margin Exception + + + + + Table Cell Bottom Margin Exception + + + + + Table Cell Right Margin Exception + + + + + + + Merged Cell Type + + + + + Continue Merged Region + + + + + Start/Restart Merged Region + + + + + + + + Vertical Merge Type + + + + + + + Horizontal Merge Type + + + + + + + + Table Cell Conditional Formatting + + + + + Preferred Table Cell Width + + + + + Grid Columns Spanned by Current Table Cell + + + + + Horizontally Merged Cell + + + + + Vertically Merged Cell + + + + + Table Cell Borders + + + + + Table Cell Shading + + + + + Don't Wrap Cell Content + + + + + Single Table Cell Margins + + + + + Table Cell Text Flow Direction + + + + + Fit Text Within Cell + + + + + Table Cell Vertical Alignment + + + + + Ignore End Of Cell Marker In Row Height Calculation + + + + + + + + + + + Revision Information for Table Cell Properties + + + + + + + + + + + + + + + + + + + + Table Cell Properties + + + + + + + + Conditional Formatting Bitmask + + + + + + + + + + Conditional Formatting Bit Mask + + + + + + + + Table Row Conditional Formatting + + + + + Associated HTML div ID + + + + + Grid Columns Before First Cell + + + + + Grid Columns After Last Cell + + + + + Preferred Width Before Table Row + + + + + Preferred Width After Table Row + + + + + Table Row Cannot Break Across Pages + + + + + Table Row Height + + + + + Repeat Table Row on Every New Page + + + + + Table Row Cell Spacing + + + + + Table Row Alignment + + + + + Hidden Table Row Marker + + + + + + + + + + + Inserted Table Row + + + + + Deleted Table Row + + + + + Revision Information for Table Row Properties + + + + + + + + + + + Table-Level Property Exceptions + + + + + Table Row Properties + + + + + + + Revision Identifier for Table Row Glyph Formatting + + + + + Revision Identifier for Table Row + + + + + Revision Identifier for Table Row Deletion + + + + + Revision Identifier for Table Row Properties + + + + + + Table Layout Type + + + + + Fixed Width Table Layout + + + + + AutoFit Table Layout + + + + + + + + Table Layout Setting + + + + + + Table Overlap Setting + + + + + Floating Table Cannot Overlap + + + + + Floating Table Can Overlap + + + + + + + + Floating Table Overlap Setting + + + + + + + Distance From Left of Table to Text + + + + + (Distance From Right of Table to Text + + + + + Distance From Top of Table to Text + + + + + Distance From Bottom of Table to Text + + + + + Table Vertical Anchor + + + + + Table Horizontal Anchor + + + + + Relative Horizontal Alignment From Anchor + + + + + Absolute Horizontal Distance From Anchor + + + + + Relative Vertical Alignment from Anchor + + + + + Absolute Vertical Distance From Anchor + + + + + + + + Table Cell Top Margin Default + + + + + Table Cell Left Margin Default + + + + + Table Cell Bottom Margin Default + + + + + Table Cell Right Margin Default + + + + + + + + + Table Top Border + + + + + Table Left Border + + + + + Table Bottom Border + + + + + Table Right Border + + + + + Table Inside Horizontal Edges Border + + + + + Table Inside Vertical Edges Border + + + + + + + + + Referenced Table Style + + + + + Floating Table Positioning + + + + + Floating Table Allows Other Tables to Overlap + + + + + Visually Right to Left Table + + + + + Number of Rows in Row Band + + + + + Number of Columns in Column Band + + + + + Preferred Table Width + + + + + Table Alignment + + + + + Table Cell Spacing Default + + + + + Table Indent from Leading Margin + + + + + Table Borders + + + + + Table Shading + + + + + Table Layout + + + + + Table Cell Margin Defaults + + + + + Table Style Conditional Formatting Settings + + + + + + + + + + + Revision Information for Table Properties + + + + + + + + + + + Preferred Table Width Exception + + + + + Table Alignment Exception + + + + + Table Cell Spacing Exception + + + + + Table Indent from Leading Margin Exception + + + + + Table Borders Exceptions + + + + + Table Shading Exception + + + + + Table Layout Exception + + + + + Table Cell Margin Exceptions + + + + + Table Style Conditional Formatting Settings Exception + + + + + + + + + + + Revision Information for Table-Level Property Exceptions + + + + + + + + + + + + Table Properties + + + + + Table Grid + + + + + + + + Footnote Positioning Location + + + + + Footnotes Positioned at Page Bottom + + + + + Footnotes Positioned Beneath Text + + + + + Footnotes Positioned At End of Section + + + + + Footnotes Positioned At End of Document + + + + + + + + Footnote Position Type + + + + + + Endnote Positioning Location + + + + + Endnotes Positioned at End of Section + + + + + Endnotes Positioned at End of Document + + + + + + + + Endnote Position Type + + + + + + + Numbering Format Type + + + + + + Footnote/Endnote Numbering Restart Locations + + + + + Continue Numbering From Previous Section + + + + + Restart Numbering For Each Section + + + + + Restart Numbering On Each Page + + + + + + + + Automatic Numbering Restart Value + + + + + + + Suppress Footnote/Endnote Reference Mark + + + + + Footnote/Endnote ID Reference + + + + + + + Footnote/Endnote ID + + + + + + + + + + Footnote/Endnote Type + + + + + Footnote/Endnote ID + + + + + + + + Footnote and Endnote Numbering Starting Value + + + + + Footnote and Endnote Numbering Restart Location + + + + + + + + + Footnote Placement + + + + + Footnote Numbering Format + + + + + + + + + + Endnote Placement + + + + + Endnote Numbering Format + + + + + + + + + + + + Special Footnote List + + + + + + + + + + + + + Special Endnote List + + + + + + + + + + + Record Is Included in Mail Merge + + + + + Index of Column Containing Unique Values for Record + + + + + Unique Value for Record + + + + + + + + + Data About Single Data Source Record + + + + + + + Inclusion/Exclusion Data for Data Source + + + + + + + Merge Field Mapping + + + + + Data Source Name for Column + + + + + Predefined Merge Field Name + + + + + Index of Column Being Mapped + + + + + Merge Field Name Language ID + + + + + Use Country-Based Address Field Ordering + + + + + + + Mail Merge ODSO Data Source Types + + + + + Database Data Source + + + + + Address Book Data Source + + + + + Alternate Document Format Data Source + + + + + Alternate Document Format Data Source Two + + + + + Text File Data Source + + + + + E-Mail Program Data Source + + + + + Native Data Souce + + + + + Legacy Document Format Data Source + + + + + Aggregate Data Source + + + + + + + + Data Source Type Value + + + + + + + + UDL Connection String + + + + + Data Source Table Name + + + + + ODSO Data Source File Path + + + + + Column Delimiter for Data Source + + + + + ODSO Data Source Type + + + + + First Row of Data Source Contains Column Names + + + + + External Data Source to Merge Field Mapping + + + + + Reference to Inclusion/Exclusion Data for Data Source + + + + + + + + + Source Document Type + + + + + Query Contains Link to External Query File + + + + + Data Source Type + + + + + Data Source Connection String + + + + + Query For Data Source Records To Merge + + + + + Data Source File Path + + + + + Header Definition File Path + + + + + Remove Blank Lines from Merged Documents + + + + + Merged Document Destination + + + + + Column Containing E-mail Address + + + + + Merged E-mail or Fax Subject Line + + + + + Merged Document To E-Mail Attachment + + + + + View Merged Data Within Document + + + + + Record Currently Displayed In Merged Document + + + + + Mail Merge Error Reporting Setting + + + + + Office Data Source Object Settings + + + + + + + Target Screen Sizes for Generated Web Pages + + + + + Optimize for 544x376 + + + + + Optimize for 640x480 + + + + + Optimize for 720x512 + + + + + Optimize for 800x600 + + + + + Optimize for 1024x768 + + + + + Optimize for 1152x882 + + + + + Optimize for 1152x900 + + + + + Optimize for 1280x1024 + + + + + Optimize for 1600x1200 + + + + + Optimize for 1800x1440 + + + + + Optimize for 1920x1200 + + + + + + + + Target Screen Size Value + + + + + + + + Use Simplified Rules For Table Border Conflicts + + + + + Emulate WordPerfect 6.x Paragraph Justification + + + + + Do Not Create Custom Tab Stop for Hanging Indent + + + + + Do Not Add Leading Between Lines of Text + + + + + Add Additional Space Below Baseline For Underlined East Asian Text + + + + + Do Not Balance Text Columns within a Section + + + + + Balance Single Byte and Double Byte Characters + + + + + Do Not Center Content on Lines With Exact Line Height + + + + + Convert Backslash To Yen Sign When Entered + + + + + Underline All Trailing Spaces + + + + + Don't Justify Lines Ending in Soft Line Break + + + + + Only Expand/Condense Text By Whole Points + + + + + Emulate Word 6.0 Line Wrapping for East Asian Text + + + + + Print Body Text before Header/Footer Contents + + + + + Print Colors as Black And White without Dithering + + + + + Space width + + + + + Display Page/Column Breaks Present in Frames + + + + + Increase Priority Of Font Size During Font Substitution + + + + + Ignore Exact Line Height for Last Line on Page + + + + + Ignore Minimum and Exact Line Height for First Line on Page + + + + + Ignore Minimum Line Height for First Line on Page + + + + + Emulate WordPerfect 5.x Line Spacing + + + + + Do Not Use Space Before On First Line After a Page Break + + + + + Swap Paragraph Borders on Odd Numbered Pages + + + + + Treat Backslash Quotation Delimiter as Two Quotation Marks + + + + + Emulate WordPerfect 6.x Font Height Calculation + + + + + Emulate Word 5.x for the Macintosh Small Caps Formatting + + + + + Use Printer Metrics To Display Documents + + + + + Do Not Suppress Paragraph Borders Next To Frames + + + + + Line Wrap Trailing Spaces + + + + + Emulate Word 6.x/95/97 Footnote Placement + + + + + Emulate Word 97 Text Wrapping Around Floating Objects + + + + + Align Table Rows Independently + + + + + Ignore Width of Last Tab Stop When Aligning Paragraph If It Is Not Left Aligned + + + + + Add Document Grid Line Pitch To Lines in Table Cells + + + + + Emulate Word 95 Full-Width Character Spacing + + + + + Do Not Increase Line Height for Raised/Lowered Text + + + + + Use Fixed Paragraph Spacing for HTML Auto Setting + + + + + Ignore Space Before Table When Deciding If Table Should Wrap Floating Object + + + + + Allow Table Rows to Wrap Inline Objects Independently + + + + + Emulate Word 97 East Asian Line Breaking + + + + + Do Not Allow Floating Tables To Break Across Pages + + + + + Do Not Snap to Document Grid in Table Cells with Objects + + + + + Select Field When First or Last Character Is Selected + + + + + Use Legacy Ethiopic and Amharic Line Breaking Rules + + + + + Do Not Allow Hanging Punctuation With Character Grid + + + + + Do Not Compress Compressible Characters When Using Document Grid + + + + + Emulate Word 2002 Table Style Rules + + + + + Allow Tables to AutoFit Into Page Margins + + + + + Do Not Bypass East Asian/Complex Script Layout Code + + + + + Do Not Automatically Apply List Paragraph Style To Bulleted/Numbered Text + + + + + Ignore Hanging Indent When Creating Tab Stop After Numbering + + + + + Use Alternate Set of East Asian Line Breaking Rules + + + + + Allow Contextual Spacing of Paragraphs in Tables + + + + + Do Not Ignore Floating Objects When Calculating Paragraph Indentation + + + + + Do Not AutoFit Tables To Fit Next To Wrapped Objects + + + + + Allow Table Columns To Exceed Preferred Widths of Constituent Cells + + + + + Underline Following Character Following Numbering + + + + + Always Use Fixed Width for Hangul Characters + + + + + Always Move Paragraph Mark to Page after a Page Break + + + + + Don't Vertically Align Cells Containing Floating Objects + + + + + Don't Break Table Rows Around Floating Tables + + + + + Ignore Vertical Alignment in Textboxes + + + + + Use ANSI Kerning Pairs from Fonts + + + + + Use Cached Paragraph Information for Column Balancing + + + + + + + + Document Variable Name + + + + + Document Variable Value + + + + + + + + Single Document Variable + + + + + + + + + Original Document Revision Save ID + + + + + Single Session Revision Save ID + + + + + + + Character-Level Whitespace Compression Settings + + + + + Do Not Compress Whitespace + + + + + Compress Whitespace From Punctuation Characters + + + + + Compress Whitespace From Both Japanese Kana And Punctuation Characters + + + + + + + + Value + + + + + + + XSL Transformation Location + + + + + Local Identifier for XSL Transform + + + + + + + + Run Properties + + + + + + + + + Paragraph Properties + + + + + + + + + Default Run Properties + + + + + Default Paragraph Properties + + + + + + + Theme Color Reference + + + + + Dark 1 Theme Color Reference + + + + + Light 1 Theme Color Reference + + + + + Dark 2 Theme Color Reference + + + + + Light 2 Theme Color Reference + + + + + Accent 1 Theme Color Reference + + + + + Accent 2 Theme Color Reference + + + + + Accent 3 Theme Color Reference + + + + + Accent4 Theme Color Reference + + + + + Accent5 Theme Color Reference + + + + + Accent 6 Theme Color Reference + + + + + Hyperlink Theme Color Reference + + + + + Followed Hyperlink Theme Color Reference + + + + + + + + Background 1 Theme Color Mapping + + + + + Text 1 Theme Color Mapping + + + + + Background 2 Theme Color Mapping + + + + + Text 2 Theme Color Mapping + + + + + Accent 1 Theme Color Mapping + + + + + Accent 2 Theme Color Mapping + + + + + Accent3 Theme Color Mapping + + + + + Accent4 Theme Color Mapping + + + + + Accent5 Theme Color Mapping + + + + + Accent6 Theme Color Mapping + + + + + Hyperlink Theme Color Mapping + + + + + Followed Hyperlink Theme Color Mapping + + + + + + + Use Actual Pages, Not Virtual Pages + + + + + Virtual Page Width + + + + + Virtual Page Height + + + + + Font Size Scaling + + + + + + + Recommend Write Protection in User Interface + + + + + + + + + Write Protection + + + + + Document View Setting + + + + + Magnification Setting + + + + + Remove Personal Information from Document Properties + + + + + Remove Date and Time from Annotations + + + + + Do Not Display Visual Boundary For Header/Footer or Between Pages + + + + + Display Background Objects When Displaying Document + + + + + Print PostScript Codes With Document Text + + + + + Print Fractional Character Widths + + + + + Only Print Form Field Content + + + + + Embed TrueType Fonts + + + + + Embed Common System Fonts + + + + + Subset Fonts When Embedding + + + + + Only Save Form Field Content + + + + + Mirror Page Margins + + + + + Align Paragraph and Table Borders with Page Border + + + + + Page Border Excludes Header + + + + + Page Border Excludes Footer + + + + + Position Gutter At Top of Page + + + + + Do Not Display Visual Indication of Spelling Errors + + + + + Do Not Display Visual Indication of Grammatical Errors + + + + + Grammar Checking Settings + + + + + Spelling and Grammatical Checking State + + + + + Structured Document Tag Placeholder Text Should be Resaved + + + + + Attached Document Template + + + + + Automatically Update Styles From Document Template + + + + + Suggested Filtering for List of Document Styles + + + + + Suggested Sorting for List of Document Styles + + + + + Document Classification + + + + + Mail Merge Settings + + + + + Visibility of Annotation Types + + + + + Track Revisions to Document + + + + + Do Not Use Move Syntax When Tracking Revisions + + + + + Do Not Track Formatting Revisions When Tracking Revisions + + + + + Document Editing Restrictions + + + + + Allow Automatic Formatting to Override Formatting Protection Settings + + + + + Prevent Modification of Themes Part + + + + + Prevent Replacement of Styles Part + + + + + Distance Between Automatic Tab Stops + + + + + Automatically Hyphenate Document Contents When Displayed + + + + + Maximum Number of Consecutively Hyphenated Lines + + + + + Hyphenation Zone + + + + + Do Not Hyphenate Words in ALL CAPITAL LETTERS + + + + + Show E-Mail Message Header + + + + + Percentage of Document to Use When Generating Summary + + + + + Paragraph Style Applied to Automatically Generated Paragraphs + + + + + Default Table Style for Newly Inserted Tables + + + + + Different Even/Odd Page Headers and Footers + + + + + Reverse Book Fold Printing + + + + + Book Fold Printing + + + + + Number of Pages Per Booklet + + + + + Drawing Grid Horizontal Grid Unit Size + + + + + Drawing Grid Vertical Grid Unit Size + + + + + Distance between Horizontal Gridlines + + + + + Distance between Vertical Gridlines + + + + + Do Not Use Margins for Drawing Grid Origin + + + + + Drawing Grid Horizontal Origin Point + + + + + Drawing Grid Vertical Origin Point + + + + + Do Not Show Visual Indicator For Form Fields + + + + + Never Kern Punctuation Characters + + + + + Character-Level Whitespace Compression + + + + + Print Two Pages Per Sheet + + + + + Use Strict Kinsoku Rules for Japanese Text + + + + + Custom Set of Characters Which Cannot End a Line + + + + + Custom Set Of Characters Which Cannot Begin A Line + + + + + Generate Thumbnail For Document On Save + + + + + Do Not Validate Custom XML Markup Against Schemas + + + + + Allow Saving Document As XML File When Custom XML Markup Is Invalid + + + + + Ignore Mixed Content When Validating Custom XML Markup + + + + + Use Custom XML Element Names as Default Placeholder Text + + + + + Do Not Show Visual Indicator For Invalid Custom XML Markup + + + + + Only Save Custom XML Markup + + + + + Save Document as XML File through Custom XSL Transform + + + + + Custom XSL Transform To Use When Saving As XML File + + + + + Show Visual Indicators for Custom XML Markup Start/End Locations + + + + + Do Not Mark Custom XML Elements With No Namespace As Invalid + + + + + Automatically Recalculate Fields on Open + + + + + Default Properties for VML Objects in Header and Footer + + + + + Document-Wide Footnote Properties + + + + + Document-Wide Endnote Properties + + + + + Compatibility Settings + + + + + Document Variables + + + + + Listing of All Revision Save ID Values + + + + + properties of math in the document + + + + + Disable Features Incompatible With Earlier Word Processing Formats + + + + + Attached Custom XML Schema + + + + + Theme Font Languages + + + + + Theme Color Mappings + + + + + Do Not Include Content in Text Boxes, Footnotes, and Endnotes in Document Statistics + + + + + Do Not Automatically Compress Images + + + + + Upgrade Document on Open + + + + + Caption Settings + + + + + Freeze Document Layout + + + + + Supplementary Smart Tag Information + + + + + Custom XML Schema List + + + + + Default Properties for VML Objects in Main Document + + + + + Remove Smart Tags When Saving + + + + + Radix Point for Field Code Evaluation + + + + + List Separator for Field Code Evaluation + + + + + + + + + Root Frameset Definition + + + + + Information about HTML div Elements + + + + + Output Encoding When Saving as Web Page + + + + + Disable Features Not Supported by Target Web Browser + + + + + Utilize VML When Saving as Web Page + + + + + Allow PNG as Graphic Format + + + + + Do Not Rely on CSS for Font Face Formatting + + + + + Recommend Web Page Format over Single File Web Page Format + + + + + Do Not Place Supporting Files in Subdirectory + + + + + Do Not Use File Names Longer than 8.3 Characters + + + + + Pixels per Inch for Graphics/Images + + + + + Target Screen Size for Web Page + + + + + Save Smart Tag Data in XML Property Bag + + + + + + + Frame Scrollbar Visibility + + + + + Always Show Scrollbar + + + + + Never Show Scrollbar + + + + + Automatically Show Scrollbar As Needed + + + + + + + + Scrollbar Display Option Value + + + + + + + + Frame Size + + + + + Frame Name + + + + + Source File for Frame + + + + + Left and Right Margin for Frame + + + + + Top and Bottom Margin for Frame + + + + + Scrollbar Display Option + + + + + Frame Cannot Be Resized + + + + + Maintain Link to Existing File + + + + + + + Frameset Layout Order + + + + + Stack Frames Vertically + + + + + Stack Frames Horizontally + + + + + Do Not Stack Frames + + + + + + + + Frameset Layout Value + + + + + + + + Frameset Splitter Width + + + + + Frameset Splitter Color + + + + + Do Not Display Frameset Splitters + + + + + Frameset Splitter Border Style + + + + + + + + + Nested Frameset Size + + + + + Frameset Splitter Properties + + + + + Frameset Layout + + + + + + Nested Frameset Definition + + + + + Single Frame Properties + + + + + + + + + + Picture Numbering Symbol Properties + + + + + + Picture Numbering Symbol ID + + + + + + Content Between Numbering Symbol and Paragraph Text + + + + + Tab Between Numbering and Text + + + + + Space Between Numbering and Text + + + + + Nothing Between Numbering and Text + + + + + + + + Character Type Between Numbering and Text + + + + + + + Level Text + + + + + Level Text Is Null Character + + + + + + + Use Legacy Numbering Properties + + + + + Legacy Spacing + + + + + Legacy Indent + + + + + + + + Starting Value + + + + + Numbering Format + + + + + Restart Numbering Level Symbol + + + + + Paragraph Style's Associated Numbering Level + + + + + Display All Levels Using Arabic Numerals + + + + + Content Between Numbering Symbol and Paragraph Text + + + + + Numbering Level Text + + + + + Picture Numbering Symbol Definition Reference + + + + + Legacy Numbering Level Properties + + + + + Justification + + + + + Numbering Level Associated Paragraph Properties + + + + + Numbering Symbol Run Properties + + + + + + Numbering Level + + + + + Template Code + + + + + Tentative Numbering + + + + + + Numbering Definition Type + + + + + Single Level Numbering Definition + + + + + Multilevel Numbering Definition + + + + + Hybrid Multilevel Numbering Definition + + + + + + + + Abstract Numbering Definition Type + + + + + + + + Abstract Numbering Definition Identifier + + + + + Abstract Numbering Definition Type + + + + + Numbering Template Code + + + + + Abstract Numbering Definition Name + + + + + Numbering Style Definition + + + + + Numbering Style Reference + + + + + Numbering Level Definition + + + + + + Abstract Numbering Definition ID + + + + + + + + Numbering Level Starting Value Override + + + + + Numbering Level Override Definition + + + + + + Numbering Level ID + + + + + + + + Abstract Numbering Definition Reference + + + + + Numbering Level Definition Override + + + + + + Numbering Definition Instance ID + + + + + + + + Picture Numbering Symbol Definition + + + + + Abstract Numbering Definition + + + + + Numbering Definition Instance + + + + + Last Reviewed Abstract Numbering Definition + + + + + + + Conditional Table Style Formatting Types + + + + + Whole table formatting + + + + + First Row Conditional Formatting + + + + + Last table row formatting + + + + + First Column Conditional Formatting + + + + + Last table column formatting + + + + + Banded Column Conditional Formatting + + + + + Even Column Stripe Conditional Formatting + + + + + Banded Row Conditional Formatting + + + + + Even Row Stripe Conditional Formatting + + + + + Top right table cell formatting + + + + + Top left table cell formatting + + + + + Bottom right table cell formatting + + + + + Bottom left table cell formatting + + + + + + + + + Table Style Conditional Formatting Paragraph Properties + + + + + Table Style Conditional Formatting Run Properties + + + + + Table Style Conditional Formatting Table Properties + + + + + Table Style Conditional Formatting Table Row Properties + + + + + Table Style Conditional Formatting Table Cell Properties + + + + + + Table Style Conditional Formatting Type + + + + + + Style Types + + + + + Paragraph Style + + + + + Character Style + + + + + Table Style + + + + + Numbering Style + + + + + + + + + Primary Style Name + + + + + Alternate Style Names + + + + + Parent Style ID + + + + + Style For Next Paragraph + + + + + Linked Style Reference + + + + + Automatically Merge User Formatting Into Style Definition + + + + + Hide Style From User Interface + + + + + Optional User Interface Sorting Order + + + + + Hide Style From Main User Interface + + + + + Remove Semi-Hidden Property When Style Is Used + + + + + Primary Style + + + + + Style Cannot Be Applied + + + + + E-Mail Message Text Style + + + + + E-Mail Message Composition Style + + + + + E-Mail Message Reply Style + + + + + Revision Identifier for Style Definition + + + + + Style Paragraph Properties + + + + + Run Properties + + + + + Style Table Properties + + + + + Style Table Row Properties + + + + + Style Table Cell Properties + + + + + Style Conditional Table Formatting Properties + + + + + + Style Type + + + + + Style ID + + + + + Default Style + + + + + User-Defined Style + + + + + + + Primary Style Name + + + + + Latent Style Locking Setting + + + + + Override default sorting order + + + + + Semi hidden text override + + + + + Unhide when used + + + + + Latent Style Primary Style Setting + + + + + + + + Latent Style Exception + + + + + + Default Style Locking Setting + + + + + Default User Interface Priority Setting + + + + + Default Semi-Hidden Setting + + + + + Default Hidden Until Used Setting + + + + + Default Primary Style Setting + + + + + Latent Style Count + + + + + + + + Document Default Paragraph and Run Properties + + + + + Latent Style Information + + + + + Style Definition + + + + + + + Panose-1 Number + + + + + + + + + Value + + + + + + Font Family Value + + + + + Novelty Font + + + + + Monospace Font + + + + + Proportional Font With Serifs + + + + + Script Font + + + + + Proportional Font Without Serifs + + + + + No Font Family + + + + + + + + Font Family Value + + + + + + Font Pitch Value + + + + + Fixed Width + + + + + Proportional Width + + + + + Default + + + + + + + + Value + + + + + + + First 32 Bits of Unicode Subset Bitfield + + + + + Second 32 Bits of Unicode Subset Bitfield + + + + + Third 32 Bits of Unicode Subset Bitfield + + + + + Fourth 32 Bits of Unicode Subset Bitfield + + + + + Lower 32 Bits of Code Page Bit Field + + + + + Upper 32 Bits of Code Page Bit Field + + + + + + + + + Embedded Font Obfuscation Key + + + + + Embedded Font Is Subsetted + + + + + + + + + + Alternate Names for Font + + + + + Pansose-1 Typeface Classification Number + + + + + Character Set Supported By Font + + + + + Font Family + + + + + Raster or Vector Font + + + + + Font Pitch + + + + + Supported Unicode Subranges and Code Pages + + + + + Regular Font Style Embedding + + + + + Bold Style Font Style Embedding + + + + + Italic Font Style Embedding + + + + + Bold Italic Font Style Embedding + + + + + + Primary Font Name + + + + + + + + Properties for a Single Font + + + + + + + + + Top Border for HTML div + + + + + Left Border for HTML div + + + + + Bottom Border for HTML div + + + + + Right Border for HTML div + + + + + + + + + Data for HTML blockquote Element + + + + + Data for HTML body Element + + + + + Left Margin for HTML div + + + + + Right Margin for HTML div + + + + + Top Margin for HTML div + + + + + Bottom Margin for HTML div + + + + + Set of Borders for HTML div + + + + + Child div Elements Contained within Current div + + + + + + div Data ID + + + + + + + + Information About Single HTML div Element + + + + + + + + + + Rich Text Box Content Container + + + + + + + + + + + + + + + + + + + Anchor for Imported External Content + + + + + + + + + Proofing Error Anchor + + + + + Range Permission Start + + + + + Range Permission End + + + + + + Inserted Run Content + + + + + Deleted Run Content + + + + + Move Source Run Content + + + + + Move Destination Run Content + + + + + + + + + + + Document Final Section Properties + + + + + + + + + + + + + + Comment Content + + + + + + + Comments Collection + + + + + + + Footnote Content + + + + + + + Document Footnotes + + + + + + + Endnote Content + + + + + + + Document Endnotes + + + + + Header + + + + + Footer + + + + + + Smart Tag Namespace + + + + + Smart Tag Name + + + + + Smart Tag Supplementary URL + + + + + + Theme Color + + + + + Dark 1 Theme Color + + + + + Light 1 Theme Color + + + + + Dark 2 Theme Color + + + + + Light 2 Theme Color + + + + + Accent 1 Theme Color + + + + + Accent 2 Theme Color + + + + + Accent 3 Theme Color + + + + + Accent 4 Theme Color + + + + + Accent 5 Theme Color + + + + + Accent 6 Theme Color + + + + + Hyperlink Theme Color + + + + + Followed Hyperlink Theme Color + + + + + No Theme Color + + + + + Background 1 Theme Color + + + + + Text 1 Theme Color + + + + + Background 2 Theme Color + + + + + Text 2 Theme Color + + + + + + + Insertion Behavior Types + + + + + Insert Content At Specified Location + + + + + Ensure Entry Is In New Paragraph + + + + + Ensure Entry Is On New Page + + + + + + + + Insertion Behavior Value + + + + + + + + Entry Insertion Behavior + + + + + + + Entry Types + + + + + No Type + + + + + Normal + + + + + Automatically Replace Name With Content + + + + + AutoText User Interface Entry + + + + + AutoCorrect Entry + + + + + Form Field Help Text + + + + + Structured Document Tag Placeholder Text + + + + + + + + Type Value + + + + + + + + Entry Type + + + + + + Entry Is Of All Types + + + + + + Entry Gallery Types + + + + + Structured Document Tag Placeholder Text Gallery + + + + + All Galleries + + + + + No Gallery Classification + + + + + Document Parts Gallery + + + + + Cover Page Gallery + + + + + Equations Gallery + + + + + Footers Gallery + + + + + Headers Gallery + + + + + Page Numbers Gallery + + + + + Table Gallery + + + + + Watermark Gallery + + + + + AutoText Gallery + + + + + Text Box Gallery + + + + + Page Numbers At Top Gallery + + + + + Page Numbers At Bottom Gallery + + + + + Page Numbers At Margins Gallery + + + + + Table of Contents Gallery + + + + + Bibliography Gallery + + + + + Custom Quick Parts Gallery + + + + + Custom Cover Page Gallery + + + + + Custom Equation Gallery + + + + + Custom Footer Gallery + + + + + Custom Header Gallery + + + + + Custom Page Number Gallery + + + + + Custom Table Gallery + + + + + Custom Watermark Gallery + + + + + Custom AutoText Gallery + + + + + Custom Text Box Gallery + + + + + Custom Page Number At Top Gallery + + + + + Custom Page Number At Bottom Gallery + + + + + Custom Page Number At Margins Gallery + + + + + Custom Table of Contents Gallery + + + + + Custom Bibliography Gallery + + + + + Custom 1 Gallery + + + + + Custom 2 Gallery + + + + + Custom 3 Gallery + + + + + Custom 4 Gallery + + + + + Custom 5 Gallery + + + + + + + + Gallery Value + + + + + + + + Category Associated With Entry + + + + + Gallery Associated With Entry + + + + + + + + Name Value + + + + + Built-In Entry + + + + + + + + Entry Name + + + + + Associated Paragraph Style Name + + + + + Entry Categorization + + + + + Entry Types + + + + + Entry Insertion Behaviors + + + + + Description for Entry + + + + + Entry ID + + + + + + + + + Glossary Document Entry Properties + + + + + Contents of Glossary Document Entry + + + + + + + + + Glossary Document Entry + + + + + + + Document Settings + + + + + Web Page Settings + + + + + Font Table Root Element + + + + + Numbering Definitions + + + + + Style Definitions + + + + + Automatic Caption Positioning Values + + + + + Position Caption Above Object + + + + + Position Caption Below Object + + + + + Position Caption Left Of Object + + + + + Position Caption Right Of Object + + + + + + + + Caption Type Name + + + + + Automatic Caption Placement + + + + + Include Chapter Number in Field for Caption + + + + + Style for Chapter Headings + + + + + Do Not Include Name In Caption + + + + + Caption Numbering Format + + + + + Chapter Number/Item Index Separator + + + + + + + Identifier of Object to be Automatically Captioned + + + + + Caption Used for Automatic Captioning + + + + + + + + Single Automatic Captioning Setting + + + + + + + + + Single Caption Type Definition + + + + + Automatic Captioning Settings + + + + + + + + + Document Background + + + + + + + + + + + Document Body + + + + + + + + + + + + + List of Glossary Document Entries + + + + + + + + + Document + + + + + Glossary Document Root Element + + + \ No newline at end of file diff --git a/tests/resources/schema/ooxml/dml-chart.xsd b/tests/resources/schema/ooxml/dml-chart.xsd index 5f82ced4b..958a89763 100644 --- a/tests/resources/schema/ooxml/dml-chart.xsd +++ b/tests/resources/schema/ooxml/dml-chart.xsd @@ -214,19 +214,13 @@ - + - - - - - - diff --git a/tests/resources/schema/opendocument/1.0/OpenDocument-manifest-schema-v1.0-os.rng b/tests/resources/schema/opendocument/1.0/OpenDocument-manifest-schema-v1.0-os.rng new file mode 100644 index 000000000..97fe580ea --- /dev/null +++ b/tests/resources/schema/opendocument/1.0/OpenDocument-manifest-schema-v1.0-os.rng @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.0/OpenDocument-schema-v1.0-os.rng b/tests/resources/schema/opendocument/1.0/OpenDocument-schema-v1.0-os.rng new file mode 100644 index 000000000..cf4ee5174 --- /dev/null +++ b/tests/resources/schema/opendocument/1.0/OpenDocument-schema-v1.0-os.rng @@ -0,0 +1,17666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boolean + short + int + long + double + string + datetime + base64Binary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + simple + + + + + replace + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + date + + + + + + time + + + + + + boolean + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + none + + + + + condition + + + + + + + + + + + + + + + + + + + + + simple + + + + + embed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + footnote + endnote + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + current + next + + + + + + + + + + + + + + previous + next + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + plain-number-and-name + plain-number + + + + + + + + + + + + + + + + + + + full + path + name + name-and-extension + + + + + + + + + + + + + + + + + + full + path + name + name-and-extension + area + title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:page-count + text:paragraph-count + text:word-count + text:character-count + text:table-count + text:image-count + text:object-count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + table + text-box + image + object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:reference-ref + text:bookmark-ref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + chapter + direction + text + + + + + + + + + page + chapter + direction + text + category-and-value + caption + value + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + unit + gap + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + + + percentage + + + + + + + + currency + + + + + + + + + + + + + date + + + + + + + + time + + + + + + + + boolean + + + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + none + + + + + + + + + value + formula + none + + + + + + + + + value + formula + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:identifier + text:address + text:annote + text:author + text:booktitle + text:chapter + text:edition + text:editor + text:howpublished + text:institution + text:journal + text:month + text:note + text:number + text:organizations + text:pages + text:publisher + text:school + text:series + text:title + text:report-type + text:volume + text:year + text:url + text:custom1 + text:custom2 + text:custom3 + text:custom4 + text:custom5 + text:isbn + text:issn + + + + + + + + + + article + book + booklet + conference + custom1 + custom2 + custom3 + custom4 + custom5 + email + inbook + incollection + inproceedings + journal + manual + mastersthesis + misc + phdthesis + proceedings + techreport + unpublished + www + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + category-and-value + caption + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + separator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + right + + + + left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + collapse + filter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+ + + + + + ($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+)? + + + + + + + + + + + + + + + + + + + copy-all + copy-results-only + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + trace-dependents + remove-dependents + trace-precedents + remove-precedents + trace-errors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-another-table + to-another-table + from-same-table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enable + disable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + unsorted + sort-ascending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stop + warning + information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + print-range + filter + repeat-row + repeat-column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + self + cell-range + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + data + hidden + + + + + page + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-top + from-bottom + + + + + + + + + + + + + + data + + + + + + + + none + manual + name + + + + + + + + ascending + descending + + + + + + + + + + + + + tabular-layout + outline-subtotals-top + outline-subtotals-bottom + + + + + + + + + + + + + + + + + + + + + + + named + + + + + + + + previous + next + + + + + + + + none + member-difference + member-percentage + member-percentage-difference + running-total + row-percentage + column-percentage + total-percentage + index + + + + + + + + + + + + + + + + + + + + + + auto + + + + + + auto + + + + + + + + + + auto + + + + + + auto + + + + + + + + + + + + + seconds + minutes + hours + days + months + quarters + years + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + accepted + rejected + pending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + always + screen + printer + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + full + section + cut + arc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + standard + lines + line + curve + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + frame + paragraph + char + as-char + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom-right + + + + + + + auto + left + right + up + down + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + scale + scale-min + + + + + + + + scale + scale-min + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + onRequest + + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + nohref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + non-primitive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + segments + rectangle + + + + + + + + + + + + + + + + + + + + + normal + path + shape + + + + + + + + + path + shape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + title + outline + subtitle + text + graphic + object + chart + table + orgchart + page + notes + handout + header + footer + date-time + page-number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + fade + move + stripes + open + close + dissolve + wavyline + random + lines + laser + appear + hide + move-short + checkerboard + rotate + stretch + + + + + + + + + + + + none + from-left + from-top + from-right + from-bottom + from-center + from-upper-left + from-upper-right + from-lower-left + from-lower-right + to-left + to-top + to-right + to-bottom + to-upper-left + to-upper-right + to-lower-right + to-lower-left + path + spiral-inward-left + spiral-inward-right + spiral-outward-left + spiral-outward-right + vertical + horizontal + to-center + clockwise + counter-clockwise + + + + + + + + + + + + slow + medium + fast + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + on-click + with-previous + after-previous + timing-root + main-sequence + interactive-sequence + + + + + + + + + + + + + + + + + + + + + + + custom + entrance + exit + emphasis + motion-path + ole-action + media-call + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + previous-page + next-page + first-page + last-page + hide + stop + execute + show + verb + fade-out + sound + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + current-date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + top-start + bottom-start + top-end + bottom-end + + + + + + + + + + + + + wide + high + balanced + + + + + custom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + x + y + z + + + + + + + + + + + + + + + + + + + + + + + + + + + major + minor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + get + post + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + current + parent + + + + + + + + + + + + + + + + + + + records + current + page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unchecked + checked + unknown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + submit + reset + push + url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + 3d + + + + + + + + + center + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + sql + sql-pass-through + value-list + table-fields + + + + + + + + + + + + + + + + + + + + + + + + + + + void + + + + + + + + + + + + + + float + + + + + + + + + + + + percentage + + + + + + + + + + + + currency + + + + + + + + + + + + + + + + + date + + + + + + + + + + + + time + + + + + + + + + + + + boolean + + + + + + + + + + + + string + + + + + + + + + + + void + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + i + I + + + + + + + + a + A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + into-default-style-data-style + into-english-number + keep-text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + + + + + + + + + + + rgb + hsl + + + + + + + + + clockwise + counter-clockwise + + + + + + + + + + + + + + + + + + translate + scale + rotate + skewX + skewY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + forward + reverse + + + + + + + + + in + out + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + + + + + + + + + + + + + none + sum + + + + + + + + + replace + sum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + first + last + all + media + + + + + + + + + + + + + + + + + + + remove + freeze + hold + auto + default + transition + + + + + + + + + remove + freeze + hold + transition + auto + inherit + + + + + + + + + never + always + whenNotActive + default + + + + + + + + + never + always + whenNotActive + inherit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + left + right + mirrored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + ultra-condensed + extra-condensed + condensed + semi-condensed + semi-expanded + expanded + extra-expanded + ultra-expanded + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + language + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + medium + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gregorian + gengou + ROC + hanja_yoil + hanja + hijri + jewish + buddhist + + + + + + + + + text + + + + + + + + + + paragraph + + + + + + + + + + + + + section + + + + + + + + + + ruby + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + rigth + inner + outer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + page + + + + + + + + + text + page + section + document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + + + + + + + + + + table-column + + + + + + + + + + table-row + + + + + + + + + + table-cell + + + + + + + + + + + + + + + + + graphic + presentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + drawing-page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + linear + axial + radial + ellipsoid + square + rectangular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + objectBoundingBox + + + + + + + + + + + pad + reflect + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + single + double + triple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rect + round + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chart + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + + + portrait + landscape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + headers + grid + annotations + objects + charts + drawings + formulas + zero-values + + + + + + + + + + + ttb + ltr + + + + + + + + + + continue + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + both + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + + + + + + + + + + + + + + none + line + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + small-caps + + + + + + + none + lowercase + uppercase + capitalize + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + super + sub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + roman + swiss + modern + decorative + script + system + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + variable + + + + + + + + + + + + + [A-Za-z][A-Za-z0-9._\-]* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + latin + asian + complex + ignore + + + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + italic + oblique + + + + + + + none + embossed + engraved + + + + + + + + + + + + + + + none + + + + + + + + + + + + + + + none + single + double + + + + + + + + + + + + + none + solid + dotted + dash + long-dash + dot-dash + dot-dot-dash + wave + + + + + + + + + + + + + auto + normal + bold + thin + dash + medium + thick + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + normal + bold + 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 900 + + + + + + + + + + + + + continuous + skip-white-space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + letters + lines + + + + + + + + + + + + + + + + + + + + + none + + + none + accent + dot + circle + disc + + + above + below + + + + + + + + + + + + + + + + + + + + + + + + + fixed + line-height + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + none + + + + condition + + + none + + + + + + + + + + + + + + + + + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + start + end + left + right + center + justify + + + + + + + + + start + center + justify + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + char + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + page + + + + + + + + + no-limit + + + + + + + + + + + + + + + + + + + + + + word + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + column + page + + + + + + + auto + column + page + + + + + + + + + + + + + transparent + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + + + left + center + right + top + bottom + + + + + + + + + + + + + + + + left + center + right + + + + + top + center + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + none + ideograph-alpha + + + + + + + + + simple + hanging + + + + + + + + + normal + strict + + + + + + + + + top + middle + bottom + auto + + + + + + + + + + + + + lr-tb + rl-tb + tb-rl + tb-lr + lr + rl + tb + page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + above + below + + + + + + + + + left + center + right + distribute-letter + distribute-space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + solid + dotted + dashed + dot-dashed + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + margins + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + collapsing + separating + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + automatic + + + + + + + + + fix + value-type + + + + + + + + + + + + + ltr + ttb + + + + + + + + + auto + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-wrap + wrap + + + + + + + + + + + + + + + + + + + + none + bottom + top + center + + + + + + + + + none + hidden-and-protected + + + + protected + formula-hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + dash + solid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + miter + round + bevel + middle + none + inherit + + + + + + + + + none + solid + bitmap + gradient + hatch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom + bottom-right + + + + + + + + + + + + + + + + + + + + + + + + + + + + nonzero + evenodd + + + + + + + + + + + + + + + + none + scroll + alternate + slide + + + + + + + + + left + right + up + down + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + justify + + + + + + + + + left + center + right + justify + + + + + + + + + no-wrap + wrap + + + + + + + + + + + + + + greyscale + mono + watermark + standard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + below + above + + + + + + + + + + + + + + + + automatic + left-outside + inside + right-outside + + + + + + + automatic + above + below + center + + + + + + + + + automatic + mm + cm + m + km + pt + pc + inch + ft + mi + + + + + + + + + + + + + + + + + + + + + + + straight-line + angled-line + angled-connector-line + + + + + + + + + fixed + free + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + correct + attractive + + + + + + + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + standard + double-sided + + + + + + + + + object + flat + sphere + + + + + + + + + normal + inverse + + + + + + + + + object + parallel + sphere + + + + + + + object + parallel + sphere + + + + + + + + + luminance + intesity + color + + + + + + + + + enabled + disabled + + + + + + + + + replace + modulate + blend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + content + position + size + + + + + + + + + + + + left + center + right + from-left + inside + outside + from-inside + + + + + + + + + + + + + + page + page-content + page-start-margin + page-end-margin + frame + frame-content + frame-start-margin + frame-end-margin + paragraph + paragraph-content + paragraph-start-margin + paragraph-end-margin + char + + + + + + + + + + + + + top + middle + bottom + from-top + below + + + + + + + + + + + + + + + + + + page + page-content + frame + frame-content + paragraph + paragraph-content + char + line + baseline + text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + left + right + parallel + dynamic + run-through + biggest + + + + + + + + + + + + + + + + no-limit + + + + + + + + + + + + + + + + + full + outside + + + + + + + + + foreground + background + + + + + + + + + + + + + + + + clip + auto-create-new-frame + + + + + + + + + none + vertical + + + vertical + + + + + vertical + + + + + + + + + horizontal + horizontal-on-odd + horizontal-on-even + + + + + + + + + + + + + + + iterative + once-concurrent + once-successive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + automatic + + + + named-symbol + + + + square + diamond + arrow-down + arrow-up + arrow-right + arrow-left + bow-tie + hourglass + circle + star + x + plus + asterisk + horizontal-bar + vertical-bar + + + + + + image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + cubic-spline + b-spline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cuboid + cylinder + cone + pyramid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + side-by-side + stagger-even + stagger-odd + + + + + + + + + + + + + + + none + value + percentage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + variance + standard-deviation + percentage + error-margin + constant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + columns + rows + + + + + + + + + none + linear + logarithmic + exponential + power + + + + + + + + + manual + automatic + semi-automatic + + + + + + + + + none + fade-from-left + fade-from-top + fade-from-right + fade-from-bottom + fade-from-upperleft + fade-from-upperright + fade-from-lowerleft + fade-from-lowerright + move-from-left + move-from-top + move-from-right + move-from-bottom + move-from-upperleft + move-from-upperright + move-from-lowerleft + move-from-lowerright + uncover-to-left + uncover-to-top + uncover-to-right + uncover-to-bottom + uncover-to-upperleft + uncover-to-upperright + uncover-to-lowerleft + uncover-to-lowerright + fade-to-center + fade-from-center + vertical-stripes + horizontal-stripes + clockwise + counterclockwise + open-vertical + open-horizontal + close-vertical + close-horizontal + wavyline-from-left + wavyline-from-top + wavyline-from-right + wavyline-from-bottom + spiralin-left + spiralin-right + spiralout-left + spiralout-right + roll-from-top + roll-from-left + roll-from-right + roll-from-bottom + stretch-from-left + stretch-from-top + stretch-from-right + stretch-from-bottom + + vertical-lines + horizontal-lines + dissolve + random + vertical-checkerboard + horizontal-checkerboard + interlocking-horizontal-left + interlocking-horizontal-right + interlocking-vertical-top + interlocking-vertical-bottom + fly-away + open + close + melt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + forward + reverse + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + full + border + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + false + + + + + + + + + + + + + + + + + [A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})* + + + + + [A-Za-z0-9]{1,8} + + + + + [A-Za-z]{1,8} + + + + + 1 + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% + + + + + [0-9]+\* + + + + + + + + + + + #[0-9a-fA-F]{6} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _self + _blank + _parent + _top + + + + + + + float + time + date + percentage + currency + boolean + string + + + + + + -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* + + + + + + + + + \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) + + + + + + + [0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.0/OpenDocument-strict-schema-v1.0-os.rng b/tests/resources/schema/opendocument/1.0/OpenDocument-strict-schema-v1.0-os.rng new file mode 100644 index 000000000..aa761dc88 --- /dev/null +++ b/tests/resources/schema/opendocument/1.0/OpenDocument-strict-schema-v1.0-os.rng @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.1/OpenDocument-manifest-schema-v1.1.rng b/tests/resources/schema/opendocument/1.1/OpenDocument-manifest-schema-v1.1.rng new file mode 100644 index 000000000..4082d4ba9 --- /dev/null +++ b/tests/resources/schema/opendocument/1.1/OpenDocument-manifest-schema-v1.1.rng @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.1/OpenDocument-schema-v1.1.rng b/tests/resources/schema/opendocument/1.1/OpenDocument-schema-v1.1.rng new file mode 100644 index 000000000..3ba6a687c --- /dev/null +++ b/tests/resources/schema/opendocument/1.1/OpenDocument-schema-v1.1.rng @@ -0,0 +1,17891 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boolean + short + int + long + double + string + datetime + base64Binary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + simple + + + + + replace + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + date + + + + + + time + + + + + + boolean + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + none + + + + + condition + + + + + + + + + + + + + + + + + + + + + simple + + + + + embed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + footnote + endnote + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + current + next + + + + + + + + + + + + + + previous + next + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + plain-number-and-name + plain-number + + + + + + + + + + + + + + + + + + + full + path + name + name-and-extension + + + + + + + + + + + + + + + + + + full + path + name + name-and-extension + area + title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:page-count + text:paragraph-count + text:word-count + text:character-count + text:table-count + text:image-count + text:object-count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + table + text-box + image + object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:reference-ref + text:bookmark-ref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + chapter + direction + text + + + + + + + + + page + chapter + direction + text + category-and-value + caption + value + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + unit + gap + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + + + percentage + + + + + + + + currency + + + + + + + + + + + + + date + + + + + + + + time + + + + + + + + boolean + + + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + none + + + + + + + + + value + formula + none + + + + + + + + + value + formula + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:identifier + text:address + text:annote + text:author + text:booktitle + text:chapter + text:edition + text:editor + text:howpublished + text:institution + text:journal + text:month + text:note + text:number + text:organizations + text:pages + text:publisher + text:school + text:series + text:title + text:report-type + text:volume + text:year + text:url + text:custom1 + text:custom2 + text:custom3 + text:custom4 + text:custom5 + text:isbn + text:issn + + + + + + + + + + article + book + booklet + conference + custom1 + custom2 + custom3 + custom4 + custom5 + email + inbook + incollection + inproceedings + journal + manual + mastersthesis + misc + phdthesis + proceedings + techreport + unpublished + www + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + category-and-value + caption + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + separator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + right + + + + left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + collapse + filter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+ + + + + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)? + + + + + + + + + + + + + + + + + + + copy-all + copy-results-only + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + trace-dependents + remove-dependents + trace-precedents + remove-precedents + trace-errors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-another-table + to-another-table + from-same-table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enable + disable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + unsorted + sort-ascending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stop + warning + information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + print-range + filter + repeat-row + repeat-column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + self + cell-range + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + data + hidden + + + + + page + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-top + from-bottom + + + + + + + + + + + + + + data + + + + + + + + none + manual + name + + + + + + + + ascending + descending + + + + + + + + + + + + + tabular-layout + outline-subtotals-top + outline-subtotals-bottom + + + + + + + + + + + + + + + + + + + + + + + named + + + + + + + + previous + next + + + + + + + + none + member-difference + member-percentage + member-percentage-difference + running-total + row-percentage + column-percentage + total-percentage + index + + + + + + + + + + + + + + + + + + + + + + auto + + + + + + auto + + + + + + + + + + auto + + + + + + auto + + + + + + + + + + + + + seconds + minutes + hours + days + months + quarters + years + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + accepted + rejected + pending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + always + screen + printer + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + full + section + cut + arc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + standard + lines + line + curve + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + frame + paragraph + char + as-char + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom-right + + + + + + + + auto + left + right + up + down + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + scale + scale-min + + + + + + + + scale + scale-min + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + onRequest + + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + nohref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + non-primitive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + segments + rectangle + + + + + + + + + + + + + + + + + + + + + normal + path + shape + + + + + + + + + path + shape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + title + outline + subtitle + text + graphic + object + chart + table + orgchart + page + notes + handout + header + footer + date-time + page-number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + fade + move + stripes + open + close + dissolve + wavyline + random + lines + laser + appear + hide + move-short + checkerboard + rotate + stretch + + + + + + + + + + + + none + from-left + from-top + from-right + from-bottom + from-center + from-upper-left + from-upper-right + from-lower-left + from-lower-right + to-left + to-top + to-right + to-bottom + to-upper-left + to-upper-right + to-lower-right + to-lower-left + path + spiral-inward-left + spiral-inward-right + spiral-outward-left + spiral-outward-right + vertical + horizontal + to-center + clockwise + counter-clockwise + + + + + + + + + + + + slow + medium + fast + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + on-click + with-previous + after-previous + timing-root + main-sequence + interactive-sequence + + + + + + + + + + + + + + + + + + + + + + + custom + entrance + exit + emphasis + motion-path + ole-action + media-call + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + previous-page + next-page + first-page + last-page + hide + stop + execute + show + verb + fade-out + sound + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + current-date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + top-start + bottom-start + top-end + bottom-end + + + + + + + + + + + + + wide + high + balanced + + + + + custom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + x + y + z + + + + + + + + + + + + + + + + + + + + + + + + + + + major + minor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + get + post + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + current + parent + + + + + + + + + + + + + + + + + + + records + current + page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unchecked + checked + unknown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + submit + reset + push + url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + 3d + + + + + + + + + center + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + sql + sql-pass-through + value-list + table-fields + + + + + + + + + + + + + + + + + + + + + + + + + + + void + + + + + + + + + + + + + + float + + + + + + + + + + + + percentage + + + + + + + + + + + + currency + + + + + + + + + + + + + + + + + date + + + + + + + + + + + + time + + + + + + + + + + + + boolean + + + + + + + + + + + + string + + + + + + + + + + + void + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + i + I + + + + + + + + a + A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + into-default-style-data-style + into-english-number + keep-text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + + + + + + + + + + + rgb + hsl + + + + + + + + + clockwise + counter-clockwise + + + + + + + + + + + + + + + + + + translate + scale + rotate + skewX + skewY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + forward + reverse + + + + + + + + + in + out + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + + + + + + + + + + + + + none + sum + + + + + + + + + replace + sum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + first + last + all + media + + + + + + + + + + + + + + + indefinite + + + + + + + + + remove + freeze + hold + auto + default + transition + + + + + + + + + remove + freeze + hold + transition + auto + inherit + + + + + + + + + never + always + whenNotActive + default + + + + + + + + + never + always + whenNotActive + inherit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + left + right + mirrored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + ultra-condensed + extra-condensed + condensed + semi-condensed + semi-expanded + expanded + extra-expanded + ultra-expanded + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + language + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + medium + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gregorian + gengou + ROC + hanja_yoil + hanja + hijri + jewish + buddhist + + + + + + + + + text + + + + + + + + + + paragraph + + + + + + + + + + + + + section + + + + + + + + + + ruby + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + right + inner + outer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + page + + + + + + + + + text + page + section + document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + + + + + + + + + + table-column + + + + + + + + + + table-row + + + + + + + + + + table-cell + + + + + + + + + + + + + + + + + graphic + presentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + drawing-page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + linear + axial + radial + ellipsoid + square + rectangular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + objectBoundingBox + + + + + + + + + + + pad + reflect + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + single + double + triple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rect + round + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chart + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + + + portrait + landscape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + headers + grid + annotations + objects + charts + drawings + formulas + zero-values + + + + + + + + + + + ttb + ltr + + + + + + + + + + continue + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + both + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + + + + + + + + + + + + + + none + line + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + small-caps + + + + + + + none + lowercase + uppercase + capitalize + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + super + sub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + roman + swiss + modern + decorative + script + system + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + variable + + + + + + + + + + + + + + + + + + + + + + + [A-Za-z][A-Za-z0-9._\-]* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + latin + asian + complex + ignore + + + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + italic + oblique + + + + + + + none + embossed + engraved + + + + + + + + + + + + + + + none + + + + + + + + + + + + + + + none + single + double + + + + + + + + + + + + + none + solid + dotted + dash + long-dash + dot-dash + dot-dot-dash + wave + + + + + + + + + + + + + auto + normal + bold + thin + dash + medium + thick + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + normal + bold + 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 900 + + + + + + + + + + + + + continuous + skip-white-space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + letters + lines + + + + + + + + + + + + + + + + + + + + + none + + + none + accent + dot + circle + disc + + + above + below + + + + + + + + + + + + + + + + + + + + + + + + + fixed + line-height + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + none + + + + condition + + + none + + + + + + + + + + + + + + + + + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + start + end + left + right + center + justify + + + + + + + + + start + center + justify + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + char + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + page + + + + + + + + + no-limit + + + + + + + + + + + + + + + + + + + + + + word + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + column + page + + + + + + + auto + column + page + + + + + + + + + + + + + transparent + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + + + left + center + right + top + bottom + + + + + + + + + + + + + + + + left + center + right + + + + + top + center + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + none + ideograph-alpha + + + + + + + + + simple + hanging + + + + + + + + + normal + strict + + + + + + + + + top + middle + bottom + auto + baseline + + + + + + + + + + + + + lr-tb + rl-tb + tb-rl + tb-lr + lr + rl + tb + page + + + + + + + + + + + + + + + + + + + + + + + + + + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + above + below + + + + + + + + + left + center + right + distribute-letter + distribute-space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + solid + dotted + dashed + dot-dashed + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + margins + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + collapsing + separating + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + automatic + + + + + + + + + fix + value-type + + + + + + + + + + + + + ltr + ttb + + + + + + + + + auto + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-wrap + wrap + + + + + + + + + + + + + + + + + + + + none + bottom + top + center + + + + + + + + + none + hidden-and-protected + + + + protected + formula-hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + dash + solid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + miter + round + bevel + middle + none + inherit + + + + + + + + + none + solid + bitmap + gradient + hatch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom + bottom-right + + + + + + + + + + + + + + + + + + + + + + + + + + + + nonzero + evenodd + + + + + + + + + + + + + + + + none + scroll + alternate + slide + + + + + + + + + left + right + up + down + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + justify + + + + + + + + + left + center + right + justify + + + + + + + + + no-wrap + wrap + + + + + + + + + + + + + + greyscale + mono + watermark + standard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + below + above + + + + + + + + + + + + + + + + automatic + left-outside + inside + right-outside + + + + + + + automatic + above + below + center + + + + + + + + + automatic + mm + cm + m + km + pt + pc + inch + ft + mi + + + + + + + + + + + + + + + + + + + + + + + straight-line + angled-line + angled-connector-line + + + + + + + + + fixed + free + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + correct + attractive + + + + + + + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + standard + double-sided + + + + + + + + + object + flat + sphere + + + + + + + + + normal + inverse + + + + + + + + + object + parallel + sphere + + + + + + + object + parallel + sphere + + + + + + + + + luminance + intensity + color + + + + + + + + + enabled + disabled + + + + + + + + + replace + modulate + blend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + content + position + size + + + + + + + + + + + + left + center + right + from-left + inside + outside + from-inside + + + + + + + + + + + + + + page + page-content + page-start-margin + page-end-margin + frame + frame-content + frame-start-margin + frame-end-margin + paragraph + paragraph-content + paragraph-start-margin + paragraph-end-margin + char + + + + + + + + + + + + + top + middle + bottom + from-top + below + + + + + + + + + + + + + + + + + + page + page-content + frame + frame-content + paragraph + paragraph-content + char + line + baseline + text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + left + right + parallel + dynamic + run-through + biggest + + + + + + + + + + + + + + + + no-limit + + + + + + + + + + + + + + + + + full + outside + + + + + + + + + foreground + background + + + + + + + + + + + + + + + + clip + auto-create-new-frame + + + + + + + + + none + vertical + + + vertical + + + + + vertical + + + + + + + + + horizontal + horizontal-on-odd + horizontal-on-even + + + + + + + + + + + + + + + iterative + once-concurrent + once-successive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + automatic + + + + named-symbol + + + + square + diamond + arrow-down + arrow-up + arrow-right + arrow-left + bow-tie + hourglass + circle + star + x + plus + asterisk + horizontal-bar + vertical-bar + + + + + + image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + cubic-spline + b-spline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cuboid + cylinder + cone + pyramid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + side-by-side + stagger-even + stagger-odd + + + + + + + + + + + + + + + none + value + percentage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + variance + standard-deviation + percentage + error-margin + constant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + columns + rows + + + + + + + + + none + linear + logarithmic + exponential + power + + + + + + + + + manual + automatic + semi-automatic + + + + + + + + + none + fade-from-left + fade-from-top + fade-from-right + fade-from-bottom + fade-from-upperleft + fade-from-upperright + fade-from-lowerleft + fade-from-lowerright + move-from-left + move-from-top + move-from-right + move-from-bottom + move-from-upperleft + move-from-upperright + move-from-lowerleft + move-from-lowerright + uncover-to-left + uncover-to-top + uncover-to-right + uncover-to-bottom + uncover-to-upperleft + uncover-to-upperright + uncover-to-lowerleft + uncover-to-lowerright + fade-to-center + fade-from-center + vertical-stripes + horizontal-stripes + clockwise + counterclockwise + open-vertical + open-horizontal + close-vertical + close-horizontal + wavyline-from-left + wavyline-from-top + wavyline-from-right + wavyline-from-bottom + spiralin-left + spiralin-right + spiralout-left + spiralout-right + roll-from-top + roll-from-left + roll-from-right + roll-from-bottom + stretch-from-left + stretch-from-top + stretch-from-right + stretch-from-bottom + + vertical-lines + horizontal-lines + dissolve + random + vertical-checkerboard + horizontal-checkerboard + interlocking-horizontal-left + interlocking-horizontal-right + interlocking-vertical-top + interlocking-vertical-bottom + fly-away + open + close + melt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + full + border + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + false + + + + + + + + + + + + + + + + + + + + [A-Za-z0-9]{1,8} + + + + + [A-Za-z]{1,8} + + + + + 1 + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + ([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% + + + + + [0-9]+\* + + + + + + + + + + + #[0-9a-fA-F]{6} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _self + _blank + _parent + _top + + + + + + + float + time + date + percentage + currency + boolean + string + + + + + + -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* + + + + + + + + + \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) + + + + + + + [0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.1/OpenDocument-strict-schema-v1.1.rng b/tests/resources/schema/opendocument/1.1/OpenDocument-strict-schema-v1.1.rng new file mode 100644 index 000000000..e77fe4ba6 --- /dev/null +++ b/tests/resources/schema/opendocument/1.1/OpenDocument-strict-schema-v1.1.rng @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-dsig-schema.rng b/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-dsig-schema.rng new file mode 100644 index 000000000..baab69981 --- /dev/null +++ b/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-dsig-schema.rng @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + 1.2 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-manifest-schema.rng b/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-manifest-schema.rng new file mode 100644 index 000000000..af13a26c7 --- /dev/null +++ b/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-manifest-schema.rng @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + 1.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + edit + presentation-slide-show + read-only + + + + + + + + + + + + + + + + + + + + + + + + + + + SHA1/1K + + + + + + + + + + + + + + + + + + + Blowfish CFB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PBKDF2 + + + + + + + + + + + + + + + + + + + + + + + + + + + SHA1 + + + + + + + + + + + + + + + + [^:]+:[^:]+ + + + + + + + + + + + + diff --git a/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-schema.rng b/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-schema.rng new file mode 100644 index 000000000..538c335b3 --- /dev/null +++ b/tests/resources/schema/opendocument/1.2/OpenDocument-v1.2-os-schema.rng @@ -0,0 +1,18127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boolean + short + int + long + double + string + datetime + base64Binary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + + + + + + simple + + + + + + + replace + + + + + onLoad + + + + + + + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + date + + + + + + time + + + + + + boolean + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + none + + + + + condition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:page-count + text:paragraph-count + text:word-count + text:character-count + text:table-count + text:image-count + text:object-count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:reference-ref + text:bookmark-ref + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + unit + gap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:identifier + text:address + text:annote + text:author + text:booktitle + text:chapter + text:edition + text:editor + text:howpublished + text:institution + text:journal + text:month + text:note + text:number + text:organizations + text:pages + text:publisher + text:school + text:series + text:title + text:report-type + text:volume + text:year + text:url + text:custom1 + text:custom2 + text:custom3 + text:custom4 + text:custom5 + text:isbn + text:issn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + footnote + endnote + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + current + next + + + + + + + + + + previous + next + + + + + + + + + + + + + + name + number + number-and-name + plain-number-and-name + plain-number + + + + + + + + + + + + + full + path + name + name-and-extension + + + + + + + + + + + full + path + name + name-and-extension + area + title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + table + text-box + image + object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + number-no-superior + number-all-superior + number + + + + + + + + + + + + + + + + + + + + + + category-and-value + caption + value + + + + + + + page + chapter + direction + text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + + + percentage + + + + + + + + currency + + + + + + + + + + + + + date + + + + + + + + time + + + + + + + + boolean + + + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + none + + + + + + + + + value + formula + none + + + + + + + + + value + formula + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + article + book + booklet + conference + custom1 + custom2 + custom3 + custom4 + custom5 + email + inbook + incollection + inproceedings + journal + manual + mastersthesis + misc + phdthesis + proceedings + techreport + unpublished + www + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + category-and-value + caption + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + separator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + plain-number + plain-number-and-name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + right + + + + left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + collapse + filter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+ + + + + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)? + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+ + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+ + + + + + + Value is a space separated list of "cellRangeAddress" patterns + + + + + + + + + + + + + + copy-all + copy-results-only + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + trace-dependents + remove-dependents + trace-precedents + remove-precedents + trace-errors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-another-table + to-another-table + from-same-table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + date + + + + + + + + + + + + + + + + enable + disable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + unsorted + sort-ascending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stop + warning + information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + print-range + filter + repeat-row + repeat-column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alpha-numeric + integer + double + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + self + cell-range + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + data + hidden + + + + + page + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-top + from-bottom + + + + + + + + + + + + + + + + data + + + + + + + + none + manual + name + + + + + + ascending + descending + + + + + + + + + + + + + + + tabular-layout + outline-subtotals-top + outline-subtotals-bottom + + + + + + + + + + + + + + + + + + + + + named + + + + + + + + previous + next + + + + + + none + member-difference + member-percentage + member-percentage-difference + running-total + row-percentage + column-percentage + total-percentage + index + + + + + + + + + + + + + + + + + + + + + + auto + + + + + + auto + + + + + + + + auto + + + + + + auto + + + + + + + + + seconds + minutes + hours + days + months + quarters + years + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + accepted + rejected + pending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + always + screen + printer + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + full + section + cut + arc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + standard + lines + line + curve + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + frame + paragraph + char + as-char + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom-right + + + + + + auto + left + right + up + down + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + scale + scale-min + + + + + + + + scale + scale-min + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + new + replace + + + + + + + + + + + + nohref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + segments + rectangle + + + + + + + + + + + + + + + + + normal + path + shape + + + + + + + path + shape + + + + + + + + + + + + + + + + + + non-primitive + + + + + + \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\) + + + + + -0.5 + 0.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + title + outline + subtitle + text + graphic + object + chart + table + orgchart + page + notes + handout + header + footer + date-time + page-number + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + fade + move + stripes + open + close + dissolve + wavyline + random + lines + laser + appear + hide + move-short + checkerboard + rotate + stretch + + + + + none + from-left + from-top + from-right + from-bottom + from-center + from-upper-left + from-upper-right + from-lower-left + from-lower-right + to-left + to-top + to-right + to-bottom + to-upper-left + to-upper-right + to-lower-right + to-lower-left + path + spiral-inward-left + spiral-inward-right + spiral-outward-left + spiral-outward-right + vertical + horizontal + to-center + clockwise + counter-clockwise + + + + + slow + medium + fast + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + on-click + with-previous + after-previous + timing-root + main-sequence + interactive-sequence + + + + + + + + + + + + + + + + + custom + entrance + exit + emphasis + motion-path + ole-action + media-call + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + previous-page + next-page + first-page + last-page + hide + stop + execute + show + verb + fade-out + sound + last-visited-page + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fixed + current-date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + top-start + bottom-start + top-end + bottom-end + + + + + + + + + wide + high + balanced + + + + + custom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + x + y + z + + + + + + + + + + + + + + + + + + + + + + major + minor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + none + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + equal-integer + is-boolean + equal-boolean + equal-use-only-zero + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boolean + short + int + long + double + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + none + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-nulls + nullable + + + + + + + + + + + + + + + + + + + + bit + boolean + tinyint + smallint + integer + bigint + float + real + double + numeric + decimal + char + varchar + longvarchar + date + time + timestmp + binary + varbinary + longvarbinary + sqlnull + other + object + distinct + struct + array + blob + clob + ref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + primary + unique + foreign + + + + + + + + + + + + + cascade + restrict + set-null + no-action + set-default + + + + + + + + cascade + restrict + set-null + no-action + set-default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + get + post + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + current + parent + + + + + records + current + page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + selection + selection-indices + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unchecked + checked + unknown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + submit + reset + push + url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + 3d + + + + + + + + + center + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + sql + sql-pass-through + value-list + table-fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + + + + + + + + float + + + + + + + + + + + + percentage + + + + + + + + + + + + currency + + + + + + + + + + + + + + + + + date + + + + + + + + + + + + time + + + + + + + + + + + + boolean + + + + + + + + + + + + string + + + + + + + + + + + void + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + i + I + + + + + + + + a + A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + + To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + into-default-style-data-style + into-english-number + keep-text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + rgb + hsl + + + + + + + clockwise + counter-clockwise + + + + + + + + + translate + scale + rotate + skewX + skewY + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + + + + in + out + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + + + + + + + + + + + + + + none + sum + + + + + + + replace + sum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + first + last + all + media + + + + + + + + + + + + + + + + indefinite + + + + + + + 0.0 + + + + + + + remove + freeze + hold + auto + default + transition + + + + + + + + + remove + freeze + hold + transition + auto + inherit + + + + + + + + + never + always + whenNotActive + default + + + + + + + + + never + always + whenNotActive + inherit + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + left + right + mirrored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + ultra-condensed + extra-condensed + condensed + semi-condensed + semi-expanded + expanded + extra-expanded + ultra-expanded + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + medium + long + + + + + + + + + + + + + + + + + fixed + language + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gregorian + gengou + ROC + hanja_yoil + hanja + hijri + jewish + buddhist + + + + + + + + + + text + + + + + + + + paragraph + + + + + + + + + + + section + + + + + + + + ruby + + + + + + + + table + + + + + + + + table-column + + + + + + + + table-row + + + + + + + + table-cell + + + + + + + + + + + + + + + graphic + presentation + + + + + + + + + + + + + + + drawing-page + + + + + + + + chart + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + right + inner + outer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + page + + + + + + + text + page + section + document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + linear + axial + radial + ellipsoid + square + rectangular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + objectBoundingBox + + + + + + + + + + + pad + reflect + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + single + double + triple + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rect + round + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + portrait + landscape + + + + + + + + + + + + + + + + + + + + + + headers + grid + annotations + objects + charts + drawings + formulas + zero-values + + + + + + + + + ttb + ltr + + + + + + + + continue + + + + + + + + + + + + + + + + + horizontal + vertical + both + none + + + + + + + + + + + + + none + line + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + lowercase + uppercase + capitalize + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + super + sub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + latin + asian + complex + ignore + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + embossed + engraved + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + letters + lines + + + + + + + + + + + + + + + + + none + + + none + accent + dot + circle + disc + + + above + below + + + + + + + + + + + + + + + + + + + fixed + line-height + + + + + + + + + + + + + + + + + + + + + true + + + none + + + + condition + + + none + + + + + + + + + normal + small-caps + + + + + roman + swiss + modern + decorative + script + system + + + + + fixed + variable + + + + + [A-Za-z][A-Za-z0-9._\-]* + + + + + normal + italic + oblique + + + + + none + + + + + + none + single + double + + + + + none + solid + dotted + dash + long-dash + dot-dash + dot-dot-dash + wave + + + + + auto + normal + bold + thin + medium + thick + + + + + + + + normal + bold + 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 900 + + + + + continuous + skip-white-space + + + + + + + + + + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + start + center + justify + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + auto + page + + + + + + + no-limit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + ideograph-alpha + + + + + + + simple + hanging + + + + + + + normal + strict + + + + + + + top + middle + bottom + auto + baseline + + + + + + + + + + + + + + + + + + + + + + + start + end + left + right + center + justify + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + char + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + word + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + column + page + + + + + + + auto + column + page + + + + + + + + + transparent + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + left + center + right + top + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + top + center + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + lr-tb + rl-tb + tb-rl + tb-lr + lr + rl + tb + page + + + + + + + + + + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + above + below + + + + + + + left + center + right + distribute-letter + distribute-space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + solid + dotted + dashed + dot-dashed + + + + + + + + + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + margins + + + + + + + + + + + + + + + + + + + + collapsing + separating + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + automatic + + + + + + + fix + value-type + + + + + + + + auto + 0 + 0deg + 0rad + 0grad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-wrap + wrap + + + + + + + + none + bottom + top + center + + + + + + + none + hidden-and-protected + + + + protected + formula-hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ltr + ttb + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + label-width-and-position + label-alignment + + + + + + + + + + + + + + + + + + + + + listtab + space + nothing + + + + + + + + + + + + + + + + + + + + + + + + + none + dash + solid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + miter + round + bevel + middle + none + + + + + + + butt + square + round + + + + + + + + + + + + none + scroll + alternate + slide + + + + + + + left + right + up + down + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + justify + + + + + + + left + center + right + justify + + + + + + + no-wrap + wrap + + + + + + + + + + + + greyscale + mono + watermark + standard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + below + above + + + + + + + + + + + + automatic + left-outside + inside + right-outside + + + + + + + automatic + above + below + center + + + + + + + automatic + mm + cm + m + km + pt + pc + inch + ft + mi + + + + + + + + + + + + + + + + + straight-line + angled-line + angled-connector-line + + + + + + + fixed + free + + + + + + + + + + + + + + + + + horizontal + vertical + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + correct + attractive + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + standard + double-sided + + + + + + + object + flat + sphere + + + + + + + normal + inverse + + + + + + + object + parallel + sphere + + + + + + + object + parallel + sphere + + + + + + + luminance + intensity + color + + + + + + + enabled + disabled + + + + + + + replace + modulate + blend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + content + position + size + + + + + + + + + + left + center + right + from-left + inside + outside + from-inside + + + + + + + + + + + + page + page-content + page-start-margin + page-end-margin + frame + frame-content + frame-start-margin + frame-end-margin + paragraph + paragraph-content + paragraph-start-margin + paragraph-end-margin + char + + + + + + + + + + + + + + + + + none + left + right + parallel + dynamic + run-through + biggest + + + + + + + + + + + + no-limit + + + + + + + + + + + + + full + outside + + + + + + + foreground + background + + + + + + + + + + + + clip + auto-create-new-frame + + + + + + + none + vertical + + + vertical + + + + + vertical + + + + + + + + auto + + + + + + + + iterative + once-concurrent + once-successive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + content + thumbnail + icon + print-view + + + + + + + + + + + + + + + + none + solid + bitmap + gradient + hatch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom + bottom-right + + + + + + + + + horizontal + vertical + + + + + + + + + + + + + + + + + + nonzero + evenodd + + + + + + + + + + + + + + + + + + + top + middle + bottom + from-top + below + + + + + + + + + + + + + + page + page-content + frame + frame-content + paragraph + paragraph-content + char + line + baseline + text + + + + + + + + + + + + + + horizontal + horizontal-on-odd + horizontal-on-even + + + + + rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\) + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + automatic + + + + named-symbol + + + + square + diamond + arrow-down + arrow-up + arrow-right + arrow-left + bow-tie + hourglass + circle + star + x + plus + asterisk + horizontal-bar + vertical-bar + + + + + + image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + cubic-spline + b-spline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cuboid + cylinder + cone + pyramid + + + + + + + + + + + + + + + + + use-zero + leave-gap + ignore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + side-by-side + stagger-even + stagger-odd + + + + + + + + + none + value + percentage + value-and-percentage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + variance + standard-deviation + percentage + error-margin + constant + standard-error + cell-range + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + columns + rows + + + + + + + none + linear + logarithmic + exponential + power + + + + + + + start + end + + + + + + + + near-axis + near-axis-other-side + outside-start + outside-end + + + + + + + at-labels + at-axis + at-labels-and-axis + + + + + + + + + + + + + avoid-overlap + center + top + top-right + right + bottom-right + bottom + bottom-left + left + top-left + inside + outside + near-origin + + + + + + + + manual + automatic + semi-automatic + + + + + + + none + fade-from-left + fade-from-top + fade-from-right + fade-from-bottom + fade-from-upperleft + fade-from-upperright + fade-from-lowerleft + fade-from-lowerright + move-from-left + move-from-top + move-from-right + move-from-bottom + move-from-upperleft + move-from-upperright + move-from-lowerleft + move-from-lowerright + uncover-to-left + uncover-to-top + uncover-to-right + uncover-to-bottom + uncover-to-upperleft + uncover-to-upperright + uncover-to-lowerleft + uncover-to-lowerright + fade-to-center + fade-from-center + vertical-stripes + horizontal-stripes + clockwise + counterclockwise + open-vertical + open-horizontal + close-vertical + close-horizontal + wavyline-from-left + wavyline-from-top + wavyline-from-right + wavyline-from-bottom + spiralin-left + spiralin-right + spiralout-left + spiralout-right + roll-from-top + roll-from-left + roll-from-right + roll-from-bottom + stretch-from-left + stretch-from-top + stretch-from-right + stretch-from-bottom + vertical-lines + horizontal-lines + dissolve + random + vertical-checkerboard + horizontal-checkerboard + interlocking-horizontal-left + interlocking-horizontal-right + interlocking-vertical-top + interlocking-vertical-bottom + fly-away + open + close + melt + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + full + border + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + false + + + + + + + + + + + + + + + + + + + + [A-Za-z0-9]{1,8} + + + + + [A-Za-z]{1,8} + + + + + [A-Za-z0-9]{1,8} + + + + + 1 + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + ([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% + + + + + ([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)% + + + + + -?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)% + + + + + [0-9]+\* + + + + + + + + + + + #[0-9a-fA-F]{6} + + + + + + + + (([\i-[:]][\c-[:]]*)?:)?.+ + 1 + + + + + + + + + + + + \[(([\i-[:]][\c-[:]]*)?:)?.+\] + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _self + _blank + _parent + _top + + + + + + float + time + date + percentage + currency + boolean + string + + + + + -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* + + + + + + + + \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) + + + + + [^:]+:[^:]+ + + + + + An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3. + + + + + + + + + + + + + + + + + + + + +