Ich habe dieses ähnliche Thema schon einmal gesehen, aber ohne eine Lösung.Liquibase generiert Changelog XML - Fehler cvc-complex-type.2.3 bei der Migration von SQL Server
http://forum.liquibase.org/topic/liquibase-validation-can-we-turn-it-off
Das Problem ist ein Fehler bei der Überprüfung, dass nur "Migration" auf SQL Server geschieht mit. Die gleiche Datei kann zum Erstellen des Schemas in PostgreSQL verwendet werden. Warum hat es ein Problem mit SQL Server? Das Änderungsprotokoll wurde von SQL Server generiert, kann jedoch nicht zum Migrieren des Schemas in eine andere Datenbank auf demselben Host verwendet werden.
Bitte helfen Sie !!
Die kurze Version des Fehlers ist dies ...
cvc-complex-type.2.3: Element 'createTable' cannot have character [children], because the type's content type is element-only
Der vollständige Stack-Trace ist dies ...
SEVERE 7/27/16 6:14 PM: liquibase: cvc-complex-type.2.3: Element 'createTable' cannot have character [children], because the type's content type is element-only. liquibase.exception.ChangeLogParseException: Error parsing line 144 column 23 of mssql-confluencetest-changelog.xml: cvc-complex-type.2.3: Element 'createTable' cannot have character [children], because the type's content type is element-only. at liquibase.parser.core.xml.XMLChangeLogSAXParser.parseToNode(XMLChangeLogSAXParser.java:114) at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:17) at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:229) at liquibase.Liquibase.update(Liquibase.java:202) at liquibase.Liquibase.update(Liquibase.java:192) at liquibase.integration.commandline.Main.doMigration(Main.java:1126) at liquibase.integration.commandline.Main.run(Main.java:184) at liquibase.integration.commandline.Main.main(Main.java:103) Caused by: org.xml.sax.SAXParseException; lineNumber: 144; columnNumber: 23; cvc-complex-type.2.3: Element 'createTable' cannot have character [children], because the type's content type is element-only. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidComplexType(XMLSchemaValidator.java:3200) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(XMLSchemaValidator.java:3160) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(XMLSchemaValidator.java:3062) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleEndElement(XMLSchemaValidator.java:2140) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:859) at com.sun.org.apache.xerces.internal.impl.XML11NSDocumentScannerImpl.scanEndElement(XML11NSDocumentScannerImpl.java:814) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XML11NSDocumentScannerImpl.next(XML11NSDocumentScannerImpl.java:857) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648) at liquibase.parser.core.xml.XMLChangeLogSAXParser.parseToNode(XMLChangeLogSAXParser.java:106) ... 7 more
Das ist das Problem XML ...
<changeSet author="amartin (generated)" id="1469664903727-11" objectQuotingStrategy="QUOTE_ALL_OBJECTS">
<createTable tableName="AO_5FB9D7_AOHIP_CHAT_LINK">
<column name="ADDON_TOKEN_EXPIRY" type="datetime"/>
<column name="API_URL" type="nvarchar(255)"/>
<column name="CONNECT_DESCRIPTOR" type="ntext"/>
<column defaultValueNumeric="0" name="GROUP_ID" type="int"/>
<column name="GROUP_NAME" type="nvarchar(255)"/>
<column autoIncrement="true" name="ID" type="int">
<constraints primaryKey="true" primaryKeyName="pk_AO_5FB9D7_AOHIP_CHAT_LINK_ID"/>
</column>
<column name="OAUTH_ID" type="nvarchar(255)"/>
<column name="SECRET_KEY" type="nvarchar(255)"/>
<column name="SYSTEM_PASSWORD" type="nvarchar(255)"/>
<column name="SYSTEM_TOKEN_EXPIRY" type="datetime"/>
<column name="SYSTEM_USER" type="nvarchar(255)"/>
<column name="SYSTEM_USER_TOKEN" type="nvarchar(255)"/>
<column name="TOKEN" type="nvarchar(255)"/>
</createTable>
</changeSet>
Danke für die Antwort! Ich habe dies in Notepad ++ überprüft. An dieser Tabelle sieht im Vergleich zu anderen Dateien in derselben Datei nichts anders aus. Und wenn ich es herausziehe, funktioniert es gut. Das Merkwürdigste ist, dass ich diese Datei ohne Fehler in PostgreSQL migrieren kann. – adrock
Ich habe auch versucht, 'grep -P [\ x80- \ xFF]" ', die mir die Zeilennummern von Nicht-ASCII-Zeichen geben soll. Dies liefert keine Ergebnisse. – adrock
Welche Linie ist Nummer 144? Versuchen Sie, das betreffende Zeichen zu identifizieren. Welche xsd-Datei verwendest du in deinem XML? – orikosaki