我是XML的新手,我正在努力理解基础知识.我在"学习XML"中读到了以下这一行,但对我来说仍然不太清楚.有人能指出我的书或网站,清楚地解释这些基础知识吗?
从学习XML:
XML声明描述了文档的一些最常见的属性,告诉XML处理器它需要一个XML解析器来解释这个文档.
这是什么意思?
我理解这个xml version部分 - doc的doc和user都应该在同一版本的XML中"讨论".但那encoding部分呢?为什么这有必要?
我目前正在尝试编写一个通过Maven运行的测试,该测试专门针对包含UTF-8字符的字符串。如果我在IntelliJ中运行所说的测试,一切都很好,并且结果符合预期。如果我使用mvn test运行测试,则(仅)正在测试UTF-8字符的测试失败。
这是我的测试:
@Test
public void testWithUTF8() throws InvalidKeyException, NoSuchAlgorithmException {
String signature = NFLAuth.sign("Contains UTF-8: äüöööÕßÍÑð");
Assert.assertEquals("Signature=BSY4prbinpAgzJLv6ffGm+XJb1NTIbGY6gTj8RA3lsA=", signature);
}
Run Code Online (Sandbox Code Playgroud)
首先,是的,我阅读了有关在Maven中进行编码的问题,然后我做了一切。Theres属性,将其添加到编译器插件中,我什至用file.encoding设置了JAVA_TOOL_OPTIONS,但还是没有运气。我还不知道它使用的是什么编码,如果我在IntelliJ中尝试Windows-1252,则测试也会失败,但是签名与maven获得的签名不同。
这是POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>***</groupId>
<artifactId>***</artifactId>
<version>1.0</version>
<name>***</name>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency> …Run Code Online (Sandbox Code Playgroud)