@Test
    public void howToUseProjectionExpression() {
        Table table = dynamo.getTable(TABLE_NAME);
        ItemCollection<?> col = table.scan(
            // filter expression
              "myHashKey = :myHashKey AND " 
            + "#myRangeKey BETWEEN :lo and :hi AND " 
            + "intAttr > :intAttr",
            // projection expression
            "intAttr, #binary",
            // attribute name substitution
            new NameMap()
                .with("#myRangeKey", "myRangeKey")
                .with("#binary", "binary"),
            // attribute value substitution
            new ValueMap()
                .withString(":myHashKey", "foo")
                .withInt(":lo", 1).withInt(":hi", 10)
                .withInt(":intAttr", 1238)
        );
        int count = 0; 
        for (Item item: col) {
            Assert.assertTrue(item.getInt("intAttr") > 1238);
            System.out.println(item);
            count++;
        }
        Assert.assertTrue(count > 0);
        Assert.assertTrue(count < 10);
    }
Sample code to scan items from DynamoDB table.
src/samples/AmazonDynamoDBDocumentAPI/quick-start/com/amazonaws/services/dynamodbv2/document/quickstart/E_ScanTest.java