OSDN Git Service

2.102.2版リリース準備 release-2.102.2
authorOlyutorskii <olyutorskii@users.osdn.me>
Sat, 16 Mar 2013 16:20:21 +0000 (01:20 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Sat, 16 Mar 2013 16:20:21 +0000 (01:20 +0900)
CHANGELOG.txt
pom.xml
src/main/java/jp/sourceforge/mikutoga/pmd/ModelFileType.java [deleted file]
src/main/java/jp/sourceforge/mikutoga/pmd/parser/PmdParserBase.java
src/main/java/jp/sourceforge/mikutoga/typical/I18nAlias.java
src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java
src/main/java/jp/sourceforge/mikutoga/xml/DomUtils.java
src/main/java/jp/sourceforge/mikutoga/xml/XmlResourceResolver.java
src/main/resources/jp/sourceforge/mikutoga/xml/resources/xml-2009-01.xsd [deleted file]
src/main/resources/jp/sourceforge/mikutoga/xml/resources/xmlspace.xsd [new file with mode: 0644]

index fc50b2f..344c172 100644 (file)
@@ -4,7 +4,7 @@
 TogaGem 変更履歴
 
 
-X.XXX.X (20XX-XX-XX)
+2.102.2 (2013-03-17)
     ・Maven3対応。
     ・JRE版数によって"0.001"や"0.0010"になるXML上の実数表記揺れを吸収。
 
diff --git a/pom.xml b/pom.xml
index f4d468d..81bb908 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
     <groupId>jp.sourceforge.mikutoga</groupId>
     <artifactId>togagem</artifactId>
 
-    <version>2.101.3-SNAPSHOT</version>
+    <version>2.102.2</version>
 
     <packaging>jar</packaging>
     <name>TogaGem</name>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <version>1.1.1</version>
+                <version>1.2</version>
                 <configuration>
                     <rules>
                         <requireMavenVersion>
-                            <version>[2.2,)</version>
+                            <version>[3.0,)</version>
                         </requireMavenVersion>
                         <requireJavaVersion>
                             <version>[1.6,)</version>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.12.4</version>
+                <version>2.13</version>
                 <configuration>
                     <skipTests>false</skipTests>
                     <enableAssertions>true</enableAssertions>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>2.7.1</version>
+                <version>2.7.1</version>  <!-- 3.0 is buggy -->
                 <configuration>
                     <targetJdk>${maven.compiler.target}</targetJdk>
                     <rulesets>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-report-plugin</artifactId>
-                <version>2.12.4</version>
+                <version>2.13</version>
                 <configuration>
                     <showSuccess>false</showSuccess>
                 </configuration>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>2.7.1</version>
+                <version>2.7.1</version>  <!-- 3.0 is buggy -->
                 <configuration>
                     <skip>false</skip>
                     <targetJdk>${maven.compiler.target}</targetJdk>
diff --git a/src/main/java/jp/sourceforge/mikutoga/pmd/ModelFileType.java b/src/main/java/jp/sourceforge/mikutoga/pmd/ModelFileType.java
deleted file mode 100644 (file)
index 06cf18c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * MMD model file types.
- *
- * License : The MIT License
- * Copyright(c) 2012 MikuToga Partners
- */
-
-package jp.sourceforge.mikutoga.pmd;
-
-/**
- * モデルファイル種別。
- */
-public enum ModelFileType {
-
-    /** 不明。 */
-    NONE,
-
-    /** MikuMikuDance ver7 前後で読み書きが可能なPMDファイル。 */
-    PMD,
-
-    /**
-     * スキーマ
-     * http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-101009.xsd
-     * で定義されたXMLファイル。
-     */
-    XML_101009,
-
-    ;
-
-}
index e92f0fa..a0eb060 100644 (file)
@@ -446,10 +446,10 @@ public class PmdParserBase extends CommonParser {
             int parentId = parseLeUShortAsInt();
             int tailId = parseLeUShortAsInt();
             byte boneKind = parseByte();
-            int ikId = parseLeUShortAsInt();
+            int srcId = parseLeUShortAsInt();
 
             this.boneHandler.pmdBoneInfo(boneName, boneKind);
-            this.boneHandler.pmdBoneLink(parentId, tailId, ikId);
+            this.boneHandler.pmdBoneLink(parentId, tailId, srcId);
 
             float xPos = parseLeFloat();
             float yPos = parseLeFloat();
index 69fdb8d..0f37ced 100644 (file)
@@ -114,8 +114,8 @@ class I18nAlias {
      * <li>「ボーン」は「ボーン」になる
      * <li>「ホ゛ーン9」は「ボーン9」になる
      * </ul>
-     * @param name
-     * @return
+     * @param name 正規化対象文字列
+     * @return 正規化済み文字列
      */
     protected static String normalize(CharSequence name){
         String result;
@@ -126,7 +126,7 @@ class I18nAlias {
 
     /**
      * オーダー番号を返す。
-     * @return
+     * @return オーダー番号
      */
     protected int getOrderNo(){
         return this.orderNo;
@@ -134,7 +134,7 @@ class I18nAlias {
 
     /**
      * オーダー番号を設定する。
-     * @param orderNo
+     * @param orderNo オーダー番号
      */
     protected void setOrderNo(int orderNo){
         this.orderNo = orderNo;
index 8e338b8..91be302 100644 (file)
@@ -47,18 +47,18 @@ public final class DomNsUtils {
      * @return ノードの名前空間およびローカル名が一致したらtrue
      */
     public static boolean hasNsLocalNameNode(Node node,
-                                             String nsuri,
-                                             String localName ){
+                                                String nsuri,
+                                                String localName ){
         String nodeLocalName = node.getLocalName();
         String nodeNsUri     = node.getNamespaceURI();
 
-        boolean needLocalCmp =
-                localName != null;
-        boolean needUriCmp =
-                nsuri != null && nodeNsUri != null;
+        if(localName != null){
+            if( ! localName.equals(nodeLocalName) ) return false;
+        }
 
-        if(needLocalCmp && ! localName.equals(nodeLocalName) ) return false;
-        if(needUriCmp   && ! nsuri.equals(nodeNsUri))          return false;
+        if(nsuri != null && nodeNsUri != null){
+            if( ! nsuri.equals(nodeNsUri) ) return false;
+        }
 
         return true;
     }
@@ -79,6 +79,28 @@ public final class DomNsUtils {
     }
 
     /**
+     * 親要素が指定された名前の子要素を持つか判定する。
+     * @param parent 親要素
+     * @param nsuri 名前空間URI
+     * @param localName ローカル名
+     * @return 指定名の子要素が存在すればtrue
+     */
+    public static boolean hasChild(Element parent,
+                                    String nsuri,
+                                    String localName ){
+        for(Node node = parent.getFirstChild();
+            node != null;
+            node = node.getNextSibling() ){
+
+            if(hasNsLocalNameElem(node, nsuri, localName)){
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
      * 指定された名前空間とローカル名に合致する最初の直下子要素を返す。
      * @param parent 親要素
      * @param nsuri 名前空間URI
index c516563..81a0e94 100644 (file)
@@ -151,7 +151,7 @@ public final class DomUtils {
             throw new TogaXmlException(message, e);
         }
 
-        result.replace("" + '\u00a5', "" + BS_CHAR);
+        result = result.replace("" + '\u00a5', "" + BS_CHAR);
 
         return result;
     }
index bed0634..4ea9167 100644 (file)
@@ -39,7 +39,7 @@ public class XmlResourceResolver
             "http://www.w3.org/2001/XMLSchema-instance";
 
     private static final String LOCAL_SCHEMA_XML =
-            "resources/xml-2009-01.xsd";
+            "resources/xmlspace.xsd";
 
     private static final URI EMPTY_URI = URI.create("");
 
@@ -68,7 +68,7 @@ public class XmlResourceResolver
         URI originalURI = URI.create(SCHEMA_XML);
         URI redirectURI = URI.create(redirectResName);
 
-        putURIMapImpl(originalURI, redirectURI);
+        putRedirectedImpl(originalURI, redirectURI);
 
         return;
     }
@@ -135,7 +135,7 @@ public class XmlResourceResolver
      * @param original オリジナルURI
      * @param redirect リダイレクトURI
      */
-    private void putURIMapImpl(URI original, URI redirect){
+    private void putRedirectedImpl(URI original, URI redirect){
         URI oridinalNorm = original.normalize();
         URI redirectNorm = redirect.normalize();
 
@@ -150,12 +150,43 @@ public class XmlResourceResolver
      * @param original オリジナルURI
      * @param redirect リダイレクトURI
      */
-    public void putURIMap(URI original, URI redirect){
-        putURIMapImpl(original, redirect);
+    public void putRedirected(URI original, URI redirect){
+        putRedirectedImpl(original, redirect);
         return;
     }
 
     /**
+     * 別リゾルバの登録内容を追加登録する。
+     * @param other 別リゾルバ
+     */
+    public void putRedirected(XmlResourceResolver other){
+        this.uriMap.putAll(other.uriMap);
+        return;
+    }
+
+    /**
+     * 登録済みリダイレクト先URIを返す。
+     * @param original オリジナルURI
+     * @return リダイレクト先URI。未登録の場合はnull
+     */
+    public URI getRedirected(URI original){
+        URI keyURI = original.normalize();
+        URI resourceURI = this.uriMap.get(keyURI);
+        return resourceURI;
+    }
+
+    /**
+     * 登録済みリダイレクト先URIを返す。
+     * @param original オリジナルURI
+     * @return リダイレクト先URI。未登録の場合はオリジナルを返す
+     */
+    public URI resolveRedirected(URI original){
+        URI result = getRedirected(original);
+        if(result == null) result = original;
+        return result;
+    }
+
+    /**
      * 登録済みリダイレクト先リソースの入力ストリームを得る。
      * @param originalURI オリジナルURI
      * @return 入力ストリーム。リダイレクト先が未登録の場合はnull
@@ -164,11 +195,8 @@ public class XmlResourceResolver
      */
     private InputStream getXMLResourceAsStream(URI originalURI)
             throws IOException{
-        URI keyURI = originalURI.normalize();
-        URI resourceURI = this.uriMap.get(keyURI);
-        if(resourceURI == null){
-            return null;
-        }
+        URI resourceURI = getRedirected(originalURI);
+        if(resourceURI == null) return null;
 
         URL resourceURL = resourceURI.toURL();
         InputStream is = resourceURL.openStream();
diff --git a/src/main/resources/jp/sourceforge/mikutoga/xml/resources/xml-2009-01.xsd b/src/main/resources/jp/sourceforge/mikutoga/xml/resources/xml-2009-01.xsd
deleted file mode 100644 (file)
index 9e56d2e..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-<?xml version='1.0'?>
-<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
-<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
-  xmlns:xs="http://www.w3.org/2001/XMLSchema"
-  xmlns   ="http://www.w3.org/1999/xhtml"
-  xml:lang="en">
-
- <xs:annotation>
-  <xs:documentation>
-   <div>
-    <h1>About the XML namespace</h1>
-
-    <div class="bodytext">
-     <p>
-      This schema document describes the XML namespace, in a form
-      suitable for import by other schema documents.
-     </p>
-     <p>
-      See <a href="http://www.w3.org/XML/1998/namespace.html">
-      http://www.w3.org/XML/1998/namespace.html</a> and
-      <a href="http://www.w3.org/TR/REC-xml">
-      http://www.w3.org/TR/REC-xml</a> for information
-      about this namespace.
-     </p>
-     <p>
-      Note that local names in this namespace are intended to be
-      defined only by the World Wide Web Consortium or its subgroups.
-      The names currently defined in this namespace are listed below.
-      They should not be used with conflicting semantics by any Working
-      Group, specification, or document instance.
-     </p>
-     <p>
-      See further below in this document for more information about <a
-      href="#usage">how to refer to this schema document from your own
-      XSD schema documents</a> and about <a href="#nsversioning">the
-      namespace-versioning policy governing this schema document</a>.
-     </p>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:attribute name="lang">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-
-      <h3>lang (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose value
-       is a language code for the natural language of the content of
-       any element; its value is inherited.  This name is reserved
-       by virtue of its definition in the XML specification.</p>
-
-    </div>
-    <div>
-     <h4>Notes</h4>
-     <p>
-      Attempting to install the relevant ISO 2- and 3-letter
-      codes as the enumerated possible values is probably never
-      going to be a realistic possibility.
-     </p>
-     <p>
-      See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
-       http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
-      and the IANA language subtag registry at
-      <a href="http://www.iana.org/assignments/language-subtag-registry">
-       http://www.iana.org/assignments/language-subtag-registry</a>
-      for further information.
-     </p>
-     <p>
-      The union allows for the 'un-declaration' of xml:lang with
-      the empty string.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-  <xs:simpleType>
-   <xs:union memberTypes="xs:language">
-    <xs:simpleType>
-     <xs:restriction base="xs:string">
-      <xs:enumeration value=""/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:union>
-  </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="space">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-
-      <h3>space (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose
-       value is a keyword indicating what whitespace processing
-       discipline is intended for the content of the element; its
-       value is inherited.  This name is reserved by virtue of its
-       definition in the XML specification.</p>
-
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-  <xs:simpleType>
-   <xs:restriction base="xs:NCName">
-    <xs:enumeration value="default"/>
-    <xs:enumeration value="preserve"/>
-   </xs:restriction>
-  </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
-   <xs:documentation>
-    <div>
-
-      <h3>base (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose value
-       provides a URI to be used as the base for interpreting any
-       relative URIs in the scope of the element on which it
-       appears; its value is inherited.  This name is reserved
-       by virtue of its definition in the XML Base specification.</p>
-
-     <p>
-      See <a
-      href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
-      for information about this attribute.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
- </xs:attribute>
-
- <xs:attribute name="id" type="xs:ID">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-
-      <h3>id (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose value
-       should be interpreted as if declared to be of type ID.
-       This name is reserved by virtue of its definition in the
-       xml:id specification.</p>
-
-     <p>
-      See <a
-      href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
-      for information about this attribute.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
- </xs:attribute>
-
- <xs:attributeGroup name="specialAttrs">
-  <xs:attribute ref="xml:base"/>
-  <xs:attribute ref="xml:lang"/>
-  <xs:attribute ref="xml:space"/>
-  <xs:attribute ref="xml:id"/>
- </xs:attributeGroup>
-
- <xs:annotation>
-  <xs:documentation>
-   <div>
-
-    <h3>Father (in any context at all)</h3>
-
-    <div class="bodytext">
-     <p>
-      denotes Jon Bosak, the chair of
-      the original XML Working Group.  This name is reserved by
-      the following decision of the W3C XML Plenary and
-      XML Coordination groups:
-     </p>
-     <blockquote>
-       <p>
-        In appreciation for his vision, leadership and
-        dedication the W3C XML Plenary on this 10th day of
-        February, 2000, reserves for Jon Bosak in perpetuity
-        the XML name "xml:Father".
-       </p>
-     </blockquote>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
-  <xs:documentation>
-   <div xml:id="usage" id="usage">
-    <h2><a name="usage">About this schema document</a></h2>
-
-    <div class="bodytext">
-     <p>
-      This schema defines attributes and an attribute group suitable
-      for use by schemas wishing to allow <code>xml:base</code>,
-      <code>xml:lang</code>, <code>xml:space</code> or
-      <code>xml:id</code> attributes on elements they define.
-     </p>
-     <p>
-      To enable this, such a schema must import this schema for
-      the XML namespace, e.g. as follows:
-     </p>
-     <pre>
-          &lt;schema . . .>
-           . . .
-           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
-                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-     </pre>
-     <p>
-      or
-     </p>
-     <pre>
-           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
-                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
-     </pre>
-     <p>
-      Subsequently, qualified reference to any of the attributes or the
-      group defined below will have the desired effect, e.g.
-     </p>
-     <pre>
-          &lt;type . . .>
-           . . .
-           &lt;attributeGroup ref="xml:specialAttrs"/>
-     </pre>
-     <p>
-      will define a type which will schema-validate an instance element
-      with any of those attributes.
-     </p>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
-  <xs:documentation>
-   <div id="nsversioning" xml:id="nsversioning">
-    <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
-    <div class="bodytext">
-     <p>
-      In keeping with the XML Schema WG's standard versioning
-      policy, this schema document will persist at
-      <a href="http://www.w3.org/2009/01/xml.xsd">
-       http://www.w3.org/2009/01/xml.xsd</a>.
-     </p>
-     <p>
-      At the date of issue it can also be found at
-      <a href="http://www.w3.org/2001/xml.xsd">
-       http://www.w3.org/2001/xml.xsd</a>.
-     </p>
-     <p>
-      The schema document at that URI may however change in the future,
-      in order to remain compatible with the latest version of XML
-      Schema itself, or with the XML namespace itself.  In other words,
-      if the XML Schema or XML namespaces change, the version of this
-      document at <a href="http://www.w3.org/2001/xml.xsd">
-       http://www.w3.org/2001/xml.xsd
-      </a>
-      will change accordingly; the version at
-      <a href="http://www.w3.org/2009/01/xml.xsd">
-       http://www.w3.org/2009/01/xml.xsd
-      </a>
-      will not change.
-     </p>
-     <p>
-      Previous dated (and unchanging) versions of this schema
-      document are at:
-     </p>
-     <ul>
-      <li><a href="http://www.w3.org/2009/01/xml.xsd">
-        http://www.w3.org/2009/01/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2007/08/xml.xsd">
-        http://www.w3.org/2007/08/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2004/10/xml.xsd">
-        http://www.w3.org/2004/10/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2001/03/xml.xsd">
-        http://www.w3.org/2001/03/xml.xsd</a></li>
-     </ul>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
-</xs:schema>
diff --git a/src/main/resources/jp/sourceforge/mikutoga/xml/resources/xmlspace.xsd b/src/main/resources/jp/sourceforge/mikutoga/xml/resources/xmlspace.xsd
new file mode 100644 (file)
index 0000000..a1f0cec
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<xsd:schema
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://www.w3.org/XML/1998/namespace"
+>
+
+    <xsd:annotation>
+        <xsd:documentation>
+            Only for using "xml:space" in XML schema definition.
+            See
+            http://www.w3.org/2001/xml.xsd
+            http://www.w3.org/2009/01/xml.xsd
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:attribute name="space">
+
+        <xsd:annotation>
+            <xsd:documentation>
+                about xml:space attribute
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:simpleType>
+            <xsd:restriction base="xsd:NCName">
+                <xsd:enumeration value="default"/>
+                <xsd:enumeration value="preserve"/>
+            </xsd:restriction>
+        </xsd:simpleType>
+
+    </xsd:attribute>
+
+</xsd:schema>
+
+
+<!-- EOF -->